![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вывод диалога после загрузки главного окна [D6, Win2k]
Андрусь © (2002-08-19 18:27:00)Привет всем! Созрел вот такой вопрос:такая задачка - при полном отображении формы главной формы после запуска программы нужно вывести диалоговое окно. Подскажите как это реализовать без использования таймера(с ним несерьёзно).
Зараннее всем большое спасибо!
Юрий Зотов (2002-08-19 22:08:00) [1]> А месседжа о том,что приложение готово реагировать на юзера нету?
Есть событие - см. TApplication.OnIdle. Для однократного срабатывания можно ввести логическую переменную.
Андрусь (2002-08-19 21:01:00) [2]Извини,
MainForm.Show;просмотрел.
Mikhail (2002-08-19 20:43:00) [3]Да в том-то и дело, что работает - иначе бы не советовал...
Просто удивительно...
Андрусь (2002-08-19 20:31:00) [4]А ты попробуй сам. Форма отображается на Application.Run.
Mikhail (2002-08-19 20:25:00) [5]Так она и будет отображена, а поверх нее окно диалога 8(
Андрусь (2002-08-19 20:23:00) [6]>Mikhail ©
Ну не совсем так,надо чтобы главная форма была отображена.
>Sedunov Vitaly,-= Like =-
Что-то главная форма не успевает перерисовываться.
Mikhail (2002-08-19 20:10:00) [7]
begin
Application.Initialize;
Application.CreateForm(TMainForm, MainForm);
Application.CreateForm(TData, Data);
MainForm.Show;
if Data.DoLogin then Application.Run
else Application.Terminate;
end.
...
function TData.DoLogin: Boolean;
var
wLogonForm: TLogonForm;
begin
Result := False;
wLogonForm := TLogonForm.Create(nil);
if wLogonForm.ShowModal = 1 then
try
....
except
....
Result := DoLogin;
end;
end;
Так что-ли?
Андрусь (2002-08-19 19:40:00) [8]А месседжа о том,что приложение готово реагировать на юзера нету?
-= Like =- (2002-08-19 18:52:00) [9]Нужно обрабатывать свойство формы OnActivate. Помести туда свой код.
Sedunov Vitaly (2002-08-19 18:50:00) [10]Вариант навскидку: в OnCreate - создаешь переменную Show, присваиваешь True. В OnActivate if Show then <Dialog>.После показа диалога Show:=False.