keypress하다가 이해가 안가는 초보 입니다.
edit box두개가 있는데여 한군데요 keypress 프로시저를 사용했습니다.
다른 한곳은 keydown 그런데.. 소스코드를 보니깐..onkeypress프로시저 명이 edit1,edit2인지를 명시하지 않고 있는것 같습니다. 그렇다면 이 프로시저는 어떻게 edit1,edit2를 선별하는 것인가요?
onkeypress 프로시저명은 edit1keypress라고 제가 마음대로 정했습니다.
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
procedure edit1keypress(Sender: TObject; var Key: Char);
procedure edit2keydown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.nfm}
procedure TForm1.edit1keypress(Sender: TObject; var Key: Char);
begin
showmessage('keypress');
end;
procedure TForm1.edit2keydown(Sender: TObject; var Key: Word; Shift: TShiftState);
var tempstr:string;
begin
showmessage('keydown');
end;
end;
두번째로는 프로시져의 인자에 보시면 Sender가 있는데 이 인자로 누가 OnKeyPress를 발생했는지 알수 있습니다.
if (Sender as TEdit) = Edit1 then
...
이렇게 하시면 됩니다.