Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.046 c
14-1082946207
Думкин
2004-04-26 06:23
2004.05.16
С днем рождения! 26 апреля.


14-1082840890
NeyroSpace
2004-04-25 01:08
2004.05.16
Хотя я не ругаюсь, но нашел этот ресурс полезным для себя :-)


6-1080046976
Джек
2004-03-23 16:02
2004.05.16
Как отследить окно ошибки в TWebBrowser?


4-1080043988
Vova
2004-03-23 15:13
2004.05.16
как зделать щоб сервис работал при смене пользователя!!!!


14-1083135450
paul_k
2004-04-28 10:57
2004.05.16
Предлагаю улыбнутся





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский