下面的代码是错误的怎么能实现下面的代码呢?
procedure edshow(eda,edb:tedit);
procedure EdaKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_return then
showmessage('enter');
end;
procedure EdbKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_down then
showmessage('down');
end;
begin
eda.OnKeyDown:=edakeydown;
edb.OnKeyDown:=edbkeydown;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
edshow(edit1,edit2);
end;
procedure edshow(eda,edb:tedit);
procedure EdaKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_return then
showmessage('enter');
end;
procedure EdbKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_down then
showmessage('down');
end;
begin
eda.OnKeyDown:=edakeydown;
edb.OnKeyDown:=edbkeydown;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
edshow(edit1,edit2);
end;
TForm1 = class(TForm)
...
private
...
procedure edshow(eda,edb:tedit);
procedure EdaKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure EdbKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
...
end;procedure TForm1.EdaKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_return then
showmessage('enter');
end;
procedure TForm1.EdbKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_down then
showmessage('down');
end; procedure TForm1.edshow(eda,edb:tedit); begin
eda.OnKeyDown:=edakeydown;
edb.OnKeyDown:=edbkeydown;
end; procedure TForm1.Button1Click(Sender: TObject);
begin
edshow(edit1,edit2);
end;
Shift: TShiftState);
begin
if key=vk_down then
showmessage('down');
end;var
Event: TMethod;
begin
Event.Code := @EdbKeyDown;
Event.Data := Edit1;
Edit1.OnKeyDown := TKeyEvent(Event);
end;