Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Уничтожить форму из потока


Автор: malor 21.10.2012, 16:24
Пусть есть функция, в которой мы создаем поток и вслед за этим открываем какую-то форму:
Код
  InfoExist := false;

  with TMyThread.Create(False) do
  begin
    pFI := @FormInfo;
    FreeOnTerminate := True;
    Resume;
  end;

  FormInfo.ShowModal();

  if InfoExist then
    Result := true;


Что в функциях потока:
Код
procedure TMyThread.CloseFormInfo();
begin

  pFI.Close;

end;

procedure TMyThread.Execute;
begin
  inherited;

  sleep(5000);
  GetInfo();
  Synchronize(CloseFormInfo);

end;


Как правильно уничтожить форму FormInfo ?

Автор: rodnover 21.10.2012, 16:36
А где форма создается?

Автор: MetalFan 21.10.2012, 21:47
Цитата(malor @  21.10.2012,  16:24 Найти цитируемый пост)
Что в функциях потока:

Фигня в функции потока. и зачем вообще нужен поток? закрывай форму по таймеру, к примеру.

Автор: Frees 23.10.2012, 09:12
Цитата(malor @  21.10.2012,  19:24 Найти цитируемый пост)
Как правильно уничтожить форму FormInfo ?

Передайему сообщение из потока WM_CLOSE можно без синхронизации

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)