Привязка к клавишам
Добавлено: 29 янв 2007, 12:20
Допустим у меня имеется форма авторизации, надо чтобы при нажатии на клавишу Esc(#27) форма закрылась. в Events`ах я покопался и поле OnKeyPress набил закрытие формы, но клавиша реагирует только когда вводишь неверный пароль.
сразу приведу код программы:
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
BitBtn1.Enabled:=True;
BitBtn2.Enabled:=True;
Edit1.Enabled:=True;
Edit2.Enabled:=True;
Label4.Caption:='';
Timer1.Interval:=3000;
end;
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=#27 then Form1.Close;
end;
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then Form1.BitBtn1Click(Sender);
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
const name = 'Oleg_Rus';
pass = '1990,fnj';
begin
if (name = Edit1.Text) and (pass = Edit2.Text) then
begin
Label4.Font.Color:=clWindowText;
Label4.Caption:='Спасибо за пользование нашим продуктом';
Form1.Hide;
Form2.Show;
end else
begin
Label4.Font.Color:=clRed;
if (name <> Edit1.Text) and (pass = Edit2.Text) then Label4.Caption:='Неверный пользователь'
else if (pass <> Edit2.Text) and (name = Edit1.Text) then Label4.Caption:='Неверный пароль'
else Label4.Caption:='Некорректный ввод';
Edit1.Text:='';
Edit2.Text:='';
Edit1.Enabled:=False;
Edit2.Enabled:=False;
BitBtn1.Enabled:=False;
BitBtn2.Enabled:=False;
Timer1.Enabled:=True;
end;
end;
сразу приведу код программы:
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
BitBtn1.Enabled:=True;
BitBtn2.Enabled:=True;
Edit1.Enabled:=True;
Edit2.Enabled:=True;
Label4.Caption:='';
Timer1.Interval:=3000;
end;
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=#27 then Form1.Close;
end;
procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then Form1.BitBtn1Click(Sender);
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
const name = 'Oleg_Rus';
pass = '1990,fnj';
begin
if (name = Edit1.Text) and (pass = Edit2.Text) then
begin
Label4.Font.Color:=clWindowText;
Label4.Caption:='Спасибо за пользование нашим продуктом';
Form1.Hide;
Form2.Show;
end else
begin
Label4.Font.Color:=clRed;
if (name <> Edit1.Text) and (pass = Edit2.Text) then Label4.Caption:='Неверный пользователь'
else if (pass <> Edit2.Text) and (name = Edit1.Text) then Label4.Caption:='Неверный пароль'
else Label4.Caption:='Некорректный ввод';
Edit1.Text:='';
Edit2.Text:='';
Edit1.Enabled:=False;
Edit2.Enabled:=False;
BitBtn1.Enabled:=False;
BitBtn2.Enabled:=False;
Timer1.Enabled:=True;
end;
end;