![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Итак есть три формы MDIForm - fm1, MDIChild - fm2
на fm3 находится авторизация, как сделать чтоб она появлялась перед fm1 и надо ли в fm3 FormStyle ставить свойство MDIchild? |
|
#2
|
||||
|
||||
|
Цитата:
Код:
... begin Application.ShowMainForm:= false; Application.Initialize; Application.CreateForm(Tfm1, fm1); Application.CreateForm(Tfm2, fm2); Application.CreateForm(Tfm3, fm3); Application.Run; end. fm1 > FormStyle = fsMDIForm, Visible = false fm2 > FormStyle = fsMDIChild fm3 > FormStyle = fsNormal сперва появится fm3, но здесь может быть косяк - если её закрыть (она не главная), сборка останется висеть запущенной, нужно за этим следить |
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Ekler1 (05.03.2018)
| ||
|
#3
|
|||
|
|||
|
Цитата:
Не хочет... Ошибка вылетает. |
|
#4
|
||||
|
||||
|
Цитата:
|
|
#5
|
|||
|
|||
|
Да не заметил(
Но все равно не работает, если я ставлю fm1 Visible = false То после запуска приложение просто в процессах повисает и все( почему так? |
|
#6
|
||||
|
||||
|
Цитата:
|
|
#7
|
|||
|
|||
|
Да проще все.
В файле проекта делам так: Код:
begin
Application.Initialize;
fm3 := Tfm3.Create(Nil);
Try
if frm.ShowModal <> mrOK Then Halt(1);
Finally
fm2.Free;
End;
Application.CreateForm(Tfm1, fm1);
Application.CreateForm(Tfm2, fm2);
Application.Run;
end.Соответсенно, если авторизация прошла, то форма должна вернуть mrOK. Например так: Код:
procedure Tfm2.Button1Click(Sender: TObject);
begin
If (Edit1.Text = 'user' and Edit2.Text = 'pwd') // тут проверка авторизации, для простоты просто сравнил с константами
Then ModalResult := mrOK
Else
Begin
ShowMessage('Непрвильные логин/пароль.');
ModalResult := mrCancel;
End;
end;PS. Еще можно "воткнуться" в OnCreate главной формы и в случае неправильной авторизации закрывть приложение через Halt(); Последний раз редактировалось lmikle, 04.03.2018 в 22:15. |
| Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Ekler1 (05.03.2018)
| ||