Показать сообщение отдельно
  #2  
Старый 09.07.2017, 21:10
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Это вам, батенька, надо ручками, ручками.
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;

Вроде, так.
Ответить с цитированием