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

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

При запуске приложения вызвать форму перед показом основной [D7, XP]


ka1n ©   (2006-12-20 16:14:00) 

Приложение бля базы данных.
Основное окно - MDI.
При запусе приложения, до вызова основной формы, нужно вызвать форму с диалогом выбора пользователя и пароля.
Если сделать основным форму с диалогом, то при запуске основной формы и попытке создать дочернее MDI-окно вылетает ошибка
First chance exception at $7C812A23. Exception class EInvalidOperation with message 'Cannot create form. No MDI forms arecurrently active'. Process ANTILope.exe (3584)


ka1n   (2006-12-25 14:55:00) [1]

Вот я ... не знаю кто....

это же очевидно ... аааа. (хватаясь за голову)


> > FormLogon.Show;
>
>
> всё-таки ShowModal.


Loginov Dmitry   (2006-12-22 15:42:00) [2]

Удалено модератором


Сергей М.   (2006-12-22 15:34:00) [3]

Application.Initialize;
FormLogon:=TFormLogon.Create( nil);
try
 ModResult := FormLogon.ShowModal;
finally
 FormLogon.Free;
end;
if ModResult = mrOk then begin
 Application.CreateForm(TMainForm, MainForm);
 Application.Run;
end;


Loginov Dmitry   (2006-12-22 15:32:00) [4]


FormLogon:=TFormLogon.Create(Application);
FormLogon.Show;
FormLogon.Update;

Application.Initialize;
Application.CreateForm(TMainForm, MainForm);

FormLogon.Free;

Application.Run;


tesseract   (2006-12-22 15:27:00) [5]


> FormLogon.Show;


всё-таки ShowModal.


ka1n   (2006-12-22 15:18:00) [6]

Так?
Но форма MainForm все равно запускается, а подней FormLogon

Application.Initialize;
FormLogon:=TFormLogon.Create(Application);
FormLogon.Show;
Application.CreateForm(TMainForm, MainForm);
Application.Run;


Loginov Dmitry   (2006-12-20 16:46:00) [7]

Используй Application.CreateForm() только для создания главной формы.
Остальные формы и модули данных - с помощью TForm.Create().


Сергей М.   (2006-12-20 16:33:00) [8]


> alex_*** ©   (20.12.06 16:30) [6]


Кто ж спорит ? Так оно и есть)


alex_***   (2006-12-20 16:32:00) [9]

[6] ну типа вдогонку. Сначала не осознал смысл поста [5] :)


alex_***   (2006-12-20 16:30:00) [10]


> Не делай ее основной - и проблемы не будет.
>

по мне как-то извращенно когда маленький диаложек - главная форма для большого проекта. Да и физически и логически это не так


Сергей М.   (2006-12-20 16:27:00) [11]


> Если сделать основным форму с диалогом


Не делай ее основной - и проблемы не будет.


Сергей М.   (2006-12-20 16:21:00) [12]


> до вызова основной формы, нужно вызвать форму


Вся соль в том, что ты подразумеваешь под "вызовом" формы ...

Есть созданиеобъекта-формы, есть визуализациясозданной формы, а что в дан.случае есть "вызов", "запуск" ?


Sergey13   (2006-12-20 16:21:00) [13]

> [0] ka1n   (20.12.06 16:14)

Вызывай ее перед подключением к БД.


tesseract   (2006-12-20 16:20:00) [14]

А нельзя после открытия главной формы вызвать диалог ввода пароля?


alex_***   (2006-12-20 16:20:00) [15]

Залезь в .dpr и перед стартом главной формы запусти нужный диалог


Наверх

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