![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вывод на экран модального окна сразу после открытия главного окна [D6, Win2k]
Nikolai_S © (2002-11-12 12:00:00)Как вывести на экран модальное окна сразу после открытия главного окна? Если использовать событие OnShow, то модальное окно появляется до открытия главной формы.
_Nicola_ (2002-11-12 18:23:00) [1]2Reindeer Moss Eater (12.11.02 17:07)
А где гарантия, что модальная форма уже создалась?
Александр Спелицин (2002-11-12 17:52:00) [2]Пошлите форме сообщение через PostMessage. А в процедуре обработки этого сообщения выводите модальную форму.
Reindeer Moss Eater (2002-11-12 17:07:00) [3]>_Nicola_
На самом деле все еще проще:
procedure TForm1.FormCreate(Sender: TObject);
begin
Show;
ShowMessage("Bla Bla Bla");
end;
_Nicola_ (2002-11-12 16:21:00) [4]Да нет, все проще.
Есть такая штука Application.OnIdle.
Пишешь в private формы:
procedure MyIdleHandler(Sender: TObject; var Done: Boolean);
Потом в implementation
procedure MyIdleHandler(Sender: TObject; var Done: Boolean);
begin
Application.OnIdle := nil;// <-- _ОБЯЗАТЕЛЬНО_ И ПЕРВОЙ СТРОКОЙ
...
ModalForm.ShowModal;
...
end;
И, например, в OnShow главной формы:
Application.OnIdle := MyIdleHandler;
И усе!
Есть более простой путь - использовать AppEvent из RxLib, но там тоже не без премудростей.
А еще этот вопрос есть в куче FAQ.
IDKFA (2002-11-12 12:53:00) [5]Советую прописать вызов модальной формы в OnPaint главной!
Dmitriy Polskoy (2002-11-12 12:38:00) [6]В OnActivate все отлично работает
Reindeer Moss Eater (2002-11-12 12:34:00) [7]Просто перед показом модального окна надо дать успеть главной форме отрисоваться.
Юрий Федоров (2002-11-12 12:26:00) [8]думаю, что на OnShow нужно отправить PostMessage главному окну, на обработку сообщения уже вызвать Form2.ShowModal
stone (2002-11-12 12:15:00) [9]можно навесить таймер и по OnTimer показывать модальное окно
Nikolai_S (2002-11-12 12:12:00) [10]Нет, то же самое выходит. Моадльное окно загружается раньше
Skier (2002-11-12 12:09:00) [11]>Nikolai_S
OnActivate() ?