我设了一个窗体,想把他始终在最前显示,关闭时为隐藏,之前我把FormStyle属性设为fsStayOnTop,没什么问题,但是后来我把其它窗体做成主窗体和子窗体的关系后,就没用了,显示子窗体或者点在主窗体或子窗体上时那个弹出窗体就会不见了,请问这样如何解决,不能用showmodal,因为要求他在最前时仍可对其它窗体进行操作,请高手指教!?

解决方案 »

  1.   

    private
        { Private declarations }
        procedure Createparams(Var Params:TCreateParams);override;
        procedure EnableChanged(var Msg: TMessage); message WM_ENABLE;
    procedure TForm1.Createparams(var Params:TCreateParams);
    var
    wndParnet:THandle;
    begin
      Inherited CreateParams(Params);
      With Params do
      begin
       EXStyle:=ExStyle or WS_EX_TOPMOST;
       wndParnet:=GetDesktopWindow;
      end;
    end;procedure TForm1.EnableChanged(var Msg: TMessage);
    begin
      EnableWindow(handle, true);
      inherited;
    end;
      

  2.   

    在主窗体的ONShow事件中加入  frmStayOnTop.show;//总在最前的窗体
      

  3.   

    TO cuilj(一云忆水)
    frmStayOnTop.show;//总在最前的窗体
    这句怎么用的啊?我编译不通过啊!555~~
      

  4.   

    在OnShow事件中:
      SetWindowPos(self.Handle ,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE+SWP_NOSIZE);