unit Upublic;interfaceUSES Controls;procedure Pronil(Sender: TObject); //退出nil
procedure Proenter(sender:Tobject;var Key:char); //回车implementation
procedure Pronil(Sender: TObject);
begin
sender:=nil;
end;procedure Proenter(sender:Tobject;var Key:char);
begin
if key=#13 then
begin
key:=#0;
sender.perform(Wm_Nextdlgctl,0,0);
end;end;
end.编译后提示错误:
[Error] Upublic.pas(23): Undeclared identifier: 'perform'
procedure Proenter(sender:Tobject;var Key:char); //回车implementation
procedure Pronil(Sender: TObject);
begin
sender:=nil;
end;procedure Proenter(sender:Tobject;var Key:char);
begin
if key=#13 then
begin
key:=#0;
sender.perform(Wm_Nextdlgctl,0,0);
end;end;
end.编译后提示错误:
[Error] Upublic.pas(23): Undeclared identifier: 'perform'
unit Upublic;interfaceUSES Controls,qforms,Messages;procedure Pronil(Sender: TObject); //退出nil
procedure Proenter(frm:Tform;var Key:char); //回车implementation
procedure Pronil(Sender: TObject);
begin
sender:=nil;
end;procedure Proenter(frm:Tform;var Key:char);
begin
if key=#13 then
begin
key:=#0;
frm.perform(Wm_Nextdlgctl,0,0);
end;end;
end.
^^^^^
procedure Proenter(sender:Tobject;var Key:char); //回车implementation
procedure Pronil(Sender: TObject);
begin
sender:=nil;
end;procedure Proenter(sender:Tobject;var Key:char);
begin
if key=#13 then
begin
key:=#0;
(sender as Tform).perform(Wm_Nextdlgctl,0,0); //这里注意转换类型。
end;end;
end.
PostMessage(HANDLE,WM_KEYDOWN,vk_TAB,0);
SendMessage(TForm(Ctrl).Handle, WM_NEXTDLGCTL, 0, 0);
if Key = #13 then SelectNext(ActiveControl, True, True);
他们之间的区别在哪里??