Q&A

  • 델파이 keypress좀 알려주세요.~
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;
1  COMMENTS
  • Profile
    서기원 2004.08.10 20:55
    첫번째로, Edit1과 Edit2에 각각 OnKeyPress이벤트를 따로 주시면 구분이가능하고,

    두번째로는 프로시져의 인자에 보시면 Sender가 있는데 이 인자로 누가 OnKeyPress를 발생했는지 알수 있습니다.

      if (Sender as TEdit) = Edit1 then
      ...
    이렇게 하시면 됩니다.