Форум: "Основная";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];
ВнизНаписание обработчика OnTerminate Найти похожие ветки
← →
_Freshman_ (2004-11-18 14:32) [0]Добрый день, Мастера!
Подскажите, как определить обработчик для OnTerminate?
Ниже мой неправильный код, заранее спасибо.
...
TMyThread = class(TThread)
private
procedure OnTerminate(Sender: TObject);
...
constructor MyThread.Create;
begin
inherited Create(false);
FreeOnTerminate := true;
inherited OnTerminate := OnTerminate;
end;
...
procedure TMyThread.OnTerminate(Sender: TObject);
begin
ShowMessage("Сработало!");
end;
...
← →
Digitman © (2004-11-18 14:46) [1]TMyThread = class(TThread)
private
procedure DoSomethingOnTerminate(Sender: TObject);
public
constructor Create(CreateSuspended: Boolean);
...
constructor TMyThread.Create;
begin
//создание ПРИОСТАНОВЛЕННОГО потока (ВАЖНО !!!)
inherited Create(True);
//нехай объект сам себя по завершению уничтожает
FreeOnTerminate := true;
//назначим обработчик
OnTerminate := DoSomethingOnTerminate;
//а вот теперь, если конструктор был вызван с опцией немедленного старта потока после его создания,
//стартуем его.. в этот момент обработчик OnTerminate уже назначен и актуален
if not CreateSuspended then
Resume;
end;
...
procedure TMyThread.DoSomethingOnTerminate(Sender: TObject);
begin
ShowMessage("Сработало!");
end;
← →
_Freshman_ (2004-11-18 14:58) [2]Спасибо!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.035 c