хочу реализовать задачку: на форме расположены компоненты TEdit, TButton, TLabel. В поле TEdit вводят нестандартные символы / \ + - 0 1. При правильном вводе этой комбинации и нажатии кнопки Button - выводится утвердительное сообщение. Если комбинация приведена неправильно - выводится отрицательное сообщение на Label.
Реализовала подобную задачку с помощью процедур ButtonClick и EditKeypress ( для численных комбинаций). Но для ввода нестандартных символов EditKeypress и переменная integer не подойдут. Вроде бы необходимо использовать переменную string, но возникают вопросы:
1) Какую процедуру использовать вместо EditKeypress?
2) чему присваивать x? (StrToInt не подойдет)
3) в программе прописывать нестандартные символы виртуальным кодом клавиш? Например \ как #220:
4)условие if (x=/ \ + - 0 1 ) then прописывать тоже в виде виртуального кода?
Надеюсь на ответ :-)
Код:
unit wind3_;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Jpeg, ExtCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
x: integer;
begin
if Length(Form1.Edit1.Text) = 0 then
begin
ShowMessage('No! ');
exit;
end;
x := StrToInt(Form1.Edit1.Text);
if (x=132) then
begin
Form1.Label1.Caption :=' Yes!' ;
end
else
Form1.Label1.Caption :='No! ';
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
// #8 - <Backspace>
// #13 - <Enter>
case Key of
'0'..'9',#8: ;
else Key := Chr(0);
end;
end;
end.