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

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

MessageDlg [D6, XP]


Sonic90 ©   (2007-03-24 20:40:00) 

Подскажите пожалуйста как показать MessageDialog в течении какого-то отрезка времени.


Leonid Troyanovsky   (2007-03-27 00:26:00) [1]


> TRUNK ©   (26.03.07 23:51) [8]

> MyDialog.ModalResult := mrOK;

Тогда уж mrTimeout.

--
Regards, LVT.


Kolan   (2007-03-26 23:55:00) [2]

> Или можно попробовать так

Так правильнее имхо.


TRUNK   (2007-03-26 23:51:00) [3]

> [3] Belorus ©   (26.03.07 09:58)
> Kolan и что же ты предлагаешь ему вставить в обработчик ?

Или можно попробовать так (при условии, что для показа использовался ShowModal):

procedure TForm1.Timer1Timer(Sender: TObject);
begin
MyDialog.ModalResult := mrOK;
(Sender as TTimer).Enabled := false;
end;


Kolan   (2007-03-26 23:41:00) [4]

> Kolan и что же ты предлагаешь ему вставить в обработчик
> ?

Пользуясь твоим примером (хотя я его не проверял).
1. Сделать поле FMyDialog : TForm;
2. Таймер на 5 сек.
3. Тело:
 
 if Assigned(FMyDialog) then
 begin
   FMyDialog.Close;
   FMyDialog := nil;
 end;  
(Sender as TTimer).Enabled := False;


Примерно так.


Leonid Troyanovsky   (2007-03-26 23:35:00) [5]


> Belorus ©   (26.03.07 09:58) [3]

> Kolan и что же ты предлагаешь ему вставить в обработчик ?

Например:

procedure TForm1.Timer1Timer(Sender: TObject);
var
 df : TForm;
begin
 df :=  Screen.ActiveForm;
 if df.ClassNameIs('TMessageForm') then
   begin
      df.Close;
      (Sender as TTimer).Enabled := False;
   end;
end;

--
Regards, LVT.


Belorus   (2007-03-26 21:56:00) [6]

Бред :) Товарищу нужно на 5 секунд показать этот диалог....


eXPell   (2007-03-26 10:57:00) [7]

Думаю что что-то типо этого:)


i:=i+timer1.Interval;
if i=5000 then
begin
MessageDlg('Hello world',mtInformation,[mbOk],0);
i:=0;
end;


Belorus   (2007-03-26 09:58:00) [8]

Kolan и что же ты предлагаешь ему вставить в обработчик ?


Kolan   (2007-03-24 21:17:00) [9]

> в течении какого-то отрезка времени

Используй TTimer


Belorus   (2007-03-24 21:10:00) [10]

var MyDialog : TForm;
begin
 MyDialog := Dialogs.CreateMessageDialog('Hello world',mtInformation,[mbOk]);
 MyDialog.Showmodal;

//  MyDialog.Close; - думаю не нужно объяснять в какой момент нужно вызвать эту процедуру
end;


Наверх

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