谢谢顺便问一声大家在开发的时候那么多的窗体都是怎样处理的,我的意思是都写在同一个exe里面吗?!晴推荐一种方法

解决方案 »

  1.   

    Tab在dll不能用是经常碰到的
    窗体多,做成Mdi了,sdi在dll中的模式
      

  2.   

    procedure ApplicationMessage(var Msg: TMsg; var Handled: Boolean);
    begin
      //处理TAB键
      if (Msg.message = wm_KeyDown) and (Msg.wParam = VK_TAB) then
      begin
        Handled := True;
        if GetKeyState(VK_SHIFT) < 0 then
          SubForm.Perform(WM_NEXTDLGCTL, 1, 0)  //上一个
        else
          SubForm.Perform(WM_NEXTDLGCTL, 0, 0); //下一个
      end;
    end;使用方法:
    在调用Dll的窗体的FormCreate事件里面
    Application.OnMessage := ApplicationMessage;
      

  3.   

    忘了告诉你了,SubForm为Dll里面返回的子窗体