Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Закрытие диалога ShowMessage


Автор: MacTep 24.5.2005, 12:49
Как можно закрыть программно диалог ShowMessage?

Автор: _hunter 24.5.2005, 13:08
ищем тему нажатие ентера в чужом окне. читаем.
ищем тему как найти окно
совмещаем

Автор: Dynamic 24.5.2005, 13:36
Твое окно? Или чье-то?

Автор: MacTep 24.5.2005, 16:09
Окно мое. Я просто вызываю ShowMessage, а потом мне его надо через некоторое время закрыть! Подскажите!

Автор: Yanis 24.5.2005, 16:11
Цитата(MacTep @ 24.5.2005, 12:49)
Как можно закрыть программно диалог ShowMessage?

Ну например свой Message можно закрыть по таймеру через определённое время:
Код

SendMessage(FindWindow(PChar('TMessageForm'), PChar(ChangeFileExt(ExtractFileName(Application.ExeName), ''))), WM_CLOSE, 0, 0);

Автор: Dynamic 24.5.2005, 16:33
Примерно, так:
Код

type
  TForm1 = class(TForm)
    Button1: TButton;
    Timer1: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  end;

// ........................................

procedure TForm1.Button1Click(Sender: TObject);
begin
     Timer1.Enabled := true;
    ShowMessage('My message');
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var h: THandle;
begin
      h := FindWindow(nil, PChar(Application.Title));
      if h <> 0 then
      begin
        Timer1.Enabled := false;
        SendMessage(h, WM_CLOSE, 0, 0);
      end;
end;

Автор: Yanis 24.5.2005, 16:37
Цитата(Dynamic @ 24.5.2005, 16:33)
Примерно, так:

С этим я тоже согласен =) Но Title может и меняться, а заголовок Message будет тотже, что и имя проекта! Так что 24.5.2005, 16:11

Автор: MacTep 24.5.2005, 18:52
Yanis, Dynamic - преогромнейшее спасибо! smile

Автор: Dynamic 25.5.2005, 06:14
Цитата(Yanis @ 24.5.2005, 16:37)
Но Title может и меняться

Пусть себе меняется, в
Код

FindWindow(nil, PChar(Application.Title))
у нас всегда будет актуальный текст.

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