Вниз
Скачать: CL | DM;

Не совсем уверен в своем коде   Найти похожие ветки 

← →
Style ©   (2004-04-28 09:48) [0]

Создаю системное модальное сообщение MB_SYSTEMMODAL и у меня тормозится вся нить, поэтому решил запихать MessageBox в отдельный TThread

type
 TMsgThread = class(TThread)
 private
   FCaption, FText: string;
   FFlags: integer;
 protected
   procedure Execute; override;
 public
   constructor Create(Text,Caption: string; Flags: integer);
 end;

implementation

{ TMsgThread }

constructor TMsgThread.Create(Text,Caption: string; Flags: integer);
begin
 inherited Create(false);
 FCaption := Caption;
 FText := Text;
 FFlags := Flags;
end;

procedure TMsgThread.Execute;
begin
 MessageBox(0,pchar(FText),pchar(FCaption),FFlags);
 inherited Destroy;
end;


И показываю теперь сообщение вот так:

TMsgThread.Create(
     "Получено сообщение от " + From + ": "#13#10 + Text,"Внимание!",MB_OK or MB_SYSTEMMODAL or     MB_ICONINFORMATION);


т.е. реально я пользуюсь только классовым методом.
Ни чем мне не грозит такая конструкция?


← →
pasha_golub ©   (2004-04-28 09:58) [1]

procedure TMsgThread.Execute;
begin
MessageBox(0,pchar(FText),pchar(FCaption),FFlags);
inherited Destroy;
end;

А с каких это пор деструктор начали отсюда вызывать?


← →
pasha_golub ©   (2004-04-28 10:00) [2]

Удалено модератором
Примечание: Дубль


← →
Style ©   (2004-04-28 10:04) [3]

>> inherited Destroy;
А мне нить больше и дальше не нужна..

Вот собственно и интересно все ли корректно или могут быть проблеммы, после такого вызова?


← →
clickmaker ©   (2004-04-28 10:07) [4]


> Style ©   (28.04.04 10:04) [3]
> >> inherited Destroy;
> А мне нить больше и дальше не нужна..

А зачем вообще явно деструктор вызывать? Поток и так умрет после выхода из Execute


← →
pasha_golub ©   (2004-04-28 10:08) [5]

clickmaker ©   (28.04.04 10:07) [4]
Вот и я про тоже, достаточно FreeOnTerminate := True;


← →
Style ©   (2004-04-28 10:10) [6]

>>А зачем вообще явно деструктор вызывать? Поток и так умрет
>>после выхода из Execute


т.е. его вообще можно убрать..

Спасибо..

А если я его явно указал, от этого хуже не будет???


← →
Игорь Шевченко ©   (2004-04-28 11:27) [7]


> А если я его явно указал, от этого хуже не будет???


Сура 18 Корана гласит: не вызывайте деструкторы явно.


← →
Style ©   (2004-04-28 11:29) [8]

Всем спасибо
FreeOnTerminate := True;

сделал...



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.035 c
4-1080324764
DelphiN!
2004-03-26 21:12
2004.05.16
Как считать информацию из буфера обмена Windows?


3-1082227236
XAdmin
2004-04-17 22:40
2004.05.16
Сохранение изображения в БД с помощью SQL запроса


3-1082370020
}|{yk
2004-04-19 14:20
2004.05.16
А с таким запросом как?


3-1082201535
Error
2004-04-17 15:32
2004.05.16
Index is a ReadOnly


3-1082077335
rosl
2004-04-16 05:02
2004.05.16
запрос SQL




   Наверх