Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

showmessage [D7, Win2k]


bang ©   (2004-08-31 18:47:00) 

Ув. мастера, как окно вызванное функцией showmessage() программно закрыть? Заранее спасибо! Извините если некорректно задан вопрос.


GuAV   (2004-08-31 20:35:00) [1]

procedure TForm1.TimerTimer(Sender: TObject);
begin
 ((Sender as TTimer).Owner as TForm).Close;
end;

procedure TForm1.Button1Click(Sender: TObject);
var DisappearingMessage: TForm;
begin
 DisappearingMessage := CreateMessageDialog(
   'не закрывай - сам ищезну',mtCustom,[mbOk]);
 try
   with TTimer.Create(DisappearingMessage) do
   begin
     OnTimer:=TimerTimer;
     Interval:=3*1000;
   end;
   DisappearingMessage.ShowModal;
 finally
   DisappearingMessage.Free;
 end;
end;


OSokin   (2004-08-31 20:20:00) [2]

Если через MessageBox, то можно послать сообщение на закрытие (WM_CLOSE) через хэндл, определяемый по FindWindow.


serg128   (2004-08-31 19:35:00) [3]

Так оно тоже результата пользователя будет ждать. Если сильно нада -> пишите своё окно, которое по интерфейсу сходно с ShowMessage(), а в нём творите что хотите.


bang   (2004-08-31 19:30:00) [4]

А как насчет MessageDlg()?


Synochka   (2004-08-31 19:24:00) [5]

Перед ShowMessage включаешь таймер, который через 3 секунды закроет окно. Правда придётся повозиться с тем, чтобы определить его Handle. Но если найдёшь, то посылаешь WM_CLOSE, и  задача решена.


serg128   (2004-08-31 19:24:00) [6]

Никак. Т.к. оно открывается модально, а пока оно не закроется, программа дальше не пойдёт!


Gero   (2004-08-31 19:23:00) [7]

Написать свой ShowMessage.


bang   (2004-08-31 19:10:00) [8]

Надо чтоб окно вызванное showmessage() через, скажем, секунды три закрылось


GuAV   (2004-08-31 19:05:00) [9]

точнее, никакого результата не вернёт она, т к это не функция, а процедура


GuAV   (2004-08-31 19:04:00) [10]


>  вызванное функцией showmessage() программно закрыть?

Когда showmessage вернёт результат, окно уже будет закрыто.


> Извините если некорректно задан вопрос.

Может и корректно, но я не понял что надо.


Наверх

Титульная страница Поиск, карта сайта Написать письмо