Цитата:
Сообщение от Rat
Asinkrit Покажи как надо.
|
Легко)
Вырезки из одного проекта (база ms access):
во первых, перед запуском приложения, надо вывести сплеш окно для ввода логина и пароля, и если в базе таковые имеются, то приложение стартует, иначе нет.
Файл проекта:
Код:
Application.Initialize;
Application.CreateForm(TDM, DM);
DM.DBPath:=ExtractFilePath(Application.ExeName)+'_Garanties.mdb';
FKSplash := TFKSplash.Create(Application);
FKSplash.Show;
FKSplash.Update;
while not FKSplash.Going do Application.ProcessMessages;
if FKSplash.Stop then
begin
DM.Free;
FKSplash.Hide;
FKSplash.Free;
end
else
begin
FKSplash.Hide;
FKSplash.Free;
// в этом месте создание форм и модулей
Application.Run;
end;
В дата модуле, подключение и проверка на наличие юзера:
Код:
function TDM.ConnectToDB: boolean;
begin
try
ABase.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+
FDBPath+';Mode=ReadWrite;Persist Security Info=False;Jet OLEDB:Database Password=19473396';
ABase.Connected:=true;
finally
Result:=ABase.Connected;
end;
end;
function TDM.GetUserID(const aLogin, aPassword: TStr50): Integer;
begin
with QuerrySQL do
try
if active then close;
SQL.Text:='select user_id, user_FIO, user_is_admin from users '+
'where user_login = '+QuotedStr(aLogin)+' and user_password = '+
QuotedStr(aPassword);
Open;
Last;
First;
if FieldByName('user_id').AsInteger > 0 then
begin
Result:=FieldByName('user_id').AsInteger;
FUserFIO:=FieldByName('user_FIO').AsString;
FIsAdmin:=FieldByName('user_is_admin').AsBoolean;
end
else
begin
Result:=0;
FUserFIO:='';
end;
if active then close;
except
Result:=0;
FUserFIO:='';
end;
FUserID:=Result;
end;
В сплеш форме, проверяем на введенные данные:
Код:
if DM.GetUserID(dxEdit1.Text,dxMaskEdit1.Text) = 0 then
StatusLabel.Caption:='Неверный логин или пароль...'
else
begin
FGoing := true;
FStop := false;
end;
Или если нажата кнопка отмена, то
Код:
FStop:=true;
FGoing:=true;
Вообщем то все просто)