Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.16;
Скачать: 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 вся ветка

Текущий архив: 2004.05.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.029 c
3-1082385310
Sirruf
2004-04-19 18:35
2004.05.16
Parsing error в хранимой процедуре


14-1083131335
Style
2004-04-28 09:48
2004.05.16
Не совсем уверен в своем коде


14-1082878046
Daniel
2004-04-25 11:27
2004.05.16
Локальная и глобальная сеть. Безопасон ли?


14-1082720498
Андрей Сенченко
2004-04-23 15:41
2004.05.16
Так кто же ты ?


6-1079968492
AlexDeQuick
2004-03-22 18:14
2004.05.16
ip-адрес