小弟想单独做个函数放在DLL中供各模块调用,代码如下:library Project2;uses
  SysUtils,  Classes,Controls;
{$R *.res}
procedure Tab(var actctrl:TWincontrol; key:char);
begin
  actctrl.Create(nil);
  if key=#13 then
     FindNextControl(actctrl,True,False,False);
end;exports
Tab;begin
end.但是编译时出现如下错误: Undeclared identifier:'FindNextControl'
该如何解决? 我uses了 controls单元,怎么还出现这样的错误?

解决方案 »

  1.   

    procedure Tab(Handle;THandle; key:char);
    begin
      
      if key=#13 then
         SendMessage(handle,WM_NEXTDLGCTL,0,0);
    end;
      

  2.   

    procedure Tab(Handle:THandle; key:char);
    begin
      
      if key=#13 then
         SendMessage(handle,WM_NEXTDLGCTL,0,0);
    end;
      

  3.   

    因为 FindNextControl是TWinControl的一个方法,而不是单独的一个函数
      

  4.   

    若在DLL中用FindNextControl来切换焦点该怎么写呢,我记得以前写过一个,但是 记不起来了
      

  5.   

    procedure TransEnter2TabOnKeyPress(var Key: char);
    begin
        if Key = #13 then
        begin
            keybd_event(VK_TAB, 0, 0, 0);
            keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP, 0);
        end;end;