Это вам, батенька, надо ручками, ручками.
1. Выкинь свое окно авторизации из автосоздания. Далее в файле проекта это должно выглядеть примерно так:
Код:
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {DataModule1: TDataModule},
Unit2 in 'Unit2.pas' {Form2},
Unit3 in 'Unit3.pas' {Form3};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TDataModule1, DataModule1);
Form2 := TForm2.Create(Nil);
If Not Form2.Authorized Then Halt(0);
Form2.Free;
Application.Run;
end.
Теперь пишем фнукицю Authorized в форме логина (ну и правим тот код, что есть):
Код:
function TForm2.Authorized : Boolean;
begin
Result := ShowModal = mrOK;
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
ModalResult := mrCancel;
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
DataModule1.ADOQuery1.SQL.Clear;
DataModule1.ADOQuery1.SQL.Add('SELECT Password FROM Users WHERE login='+#39+Edit1.Text+#39);
DataModule1.ADOQuery1.Open;
if DataModule1.ADOQuery1.IsEmpty
then
ShowMessage('Ïîëüçîâàòåëü '+Edit1.Text+' íå íàéäåí!')
else
if DataModule1.ADOQuery1.FieldByName('Password').Value <> Edit2.Text
then
ModalResult := mrCancel
else
ModalResult := mrOK
end;
Вроде, так.