За критику, конечно, спасибо, но
вот код формы авторизации:
private
{ Private declarations }
public
class function Execute : boolean;
end;
var
Form6: TForm6;
implementation
{$R *.dfm}
class function TForm6.Execute: boolean;
begin
with TForm6.Create(nil) do
try
Result := ShowModal = mrOK;
finally
Free;
end;
end;
procedure TForm6.Button1Click(Sender: TObject);
begin
If (LoginEdit.Text<>'') and (PasswordEdit.Text<>'') then
begin
Query.Active:=false;
Query.Params.ParamByName('log').Value:=LoginEdit.Text;
Query.Active:=true;
If Query.RecordCount<>0 then
begin
If Query.FieldByName('PASSW').AsString=PasswordEdit.Text then
begin ModalResult := mrOK
end
else ModalResult := mrAbort;
end
else Application.MessageBox('Не верный логин', 'Ошибка');
end
else Application.MessageBox('Введите логин и пароль', 'Ошибка');
end;
И если я здесь в интерфейсной части объявляю глобальную переменную, то при попытке обращения к ней получаю "Access Violation...".
А вот так происходит запуск приложения если авторизация прошла успешно.
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {DataModule2: TDataModule},
Unit3 in 'Unit3.pas' {Form3},
Unit4 in 'Unit4.pas' {Form4},
Unit5 in 'Unit5.pas' {Form5},
Unit7 in 'Unit7.pas' {Form7},
Unit6 in 'Unit6.pas' {Form6};
{$R *.res}
begin
if TForm6.Execute then
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TDataModule2, DataModule2);
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm4, Form4);
Application.CreateForm(TForm5, Form5);
Application.CreateForm(TForm7, Form7);
Application.Run;
end
else
begin
Application.MessageBox('Вы не авторизованы.', 'Ошибка') ;
end;
end.