-
База данных сделана в MS ACCESS. Оболочка под нее в Дельфи. При запуске происходит запрос на авторизацию. Выбирается режим входа в систему и в зависимости от этого-либо пользовательский режим или администратора. В пользовательском только просмотр.
Код программы: procedure TForm1.Button1Click(Sender: TObject); var log,pass:string[20]; begin log:=ComboBox1.Text; pass:=Edit2.Text; with Form1.ADOQuery1 do begin close; SQL.Clear; SQL.Add('Select *'); SQL.Add('FROM users'); SQL.Add('WHERE ((log='''+log+''') AND (pass='''+pass+'''))'); Open; end; if ADOQuery1.RecordCount<>0 then begin if ADOQuery1.FieldByName('log').AsString = 'admin' then Form2.Show else if ADOQuery1.FieldByName('log').AsString = 'user' then Form3.Show; end else begin ShowMessage('Неправильно введено имя пользователя или пароль'); ComboBox1.Text:=''; Edit2.Text:=''; end; end; procedure TForm1.Button2Click(Sender: TObject); begin Application.Terminate; end;
procedure TForm1.FormCreate(Sender: TObject); var i:integer; begin ComboBox1.Items.Clear; ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select log from users'); ADOQuery1.Open; ADOQuery1.First; for i := 0 to ADOQuery1.RecordCount - 1 do begin ComboBox1.Items.Add(ADOQuery1.FieldByName('log').AsString); ADOQuery1.Next; end; ADOQuery1.Close;
end;
end.
Может немного коряво. Но прошу заранее извинить-только учусь программировать. Вопрос такой. Даже два. 1. Как сделать, чтобы при вводе правильного логина и пароля-окно авторизации закрывалось и оставалось только форма с базой данных. 2. Как сделать, чтобы вместо вводимого пароля высвечивались звездочки.
-
> 2. Как сделать, чтобы вместо вводимого пароля высвечивались звездочки.
TEdit.PasswordChar
> 1. Как сделать, чтобы при вводе правильного логина и пароля- > окно авторизации закрывалось и оставалось только форма с > базой данных.
Сделай модальную форму с проверкой, и дальше либо создавай главную форму, либо выходи.
-
1. Как сделать, чтобы при вводе правильного логина и пароля-окно авторизации закрывалось и оставалось только форма с базой данных.
Типа как отпилить сук на котором сидишь?
С учетом того, что первая форма - это application.mainform, то открыть вторую или третью а затем закрыть первую = завершить работу приложения.
-
Аутентификацию сначала бы пройти.
-
>> Медвежонок Пятачок © (20.02.13 22:15) [2] зачем?
program Project1;
uses Forms, Unit1 in 'Unit1.pas' {frmLogin}, Unit2 in 'Unit2.pas' {frmWork};
{$R *.res}
var frmLogin: TfrmLogin; begin frmLogin := TfrmLogin.Create(nil); if frmLogin.ShowModal <> 1 then Exit;
Application.Initialize; //Application.CreateForm(TfrmLogin, frmLogin); Application.CreateForm(TfrmWork, frmWork); Application.Run
-
>зачем?
Чего зачем?
Или ты мне показываешь как надо?
-
Чего зачем?
> а затем закрыть первую = завершить работу приложения
> ты мне показываешь как надо?
автору
-
http://www.programmersforum.ru/showthread.php?t=228422я бы в users завел бульеновое поле Admin и будет if ADOQuery1.FieldByName('Admin').AsBo olean then и кстати универсальный пароль будет ")) or((""=" подумай сам почему это называется SQLInject и фиксится использованием параметров
|