Да проще все.
В файле проекта делам так:
Код:
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();