Главная страница
    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.033 c
3-1081404801
ev
2004-04-08 10:13
2004.05.16
Как передать текст из edit в SQL запрос?


3-1082468480
MakNik
2004-04-20 17:41
2004.05.16
Как освобождать память, занятую SQL-сервером?


3-1082385310
Sirruf
2004-04-19 18:35
2004.05.16
Parsing error в хранимой процедуре


1-1083070154
Goida
2004-04-27 16:49
2004.05.16
Почему ошибка при присвоении массива региону (VBA)?


1-1083487487
mr.Delphin
2004-05-02 12:44
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский