我用的是Delphi7,当我把一个窗体设置为StayOnTop,在Win2K环境下,运行过程中弹出的对话框会被窗体盖住,无法点击。但是在WinXP下,对话框可以显示在最上方。
请问这个怎么解决?

解决方案 »

  1.   

    这个是要设置父窗体,一般做法是使用Windows.SetParent,或者在CreateParams指定,具体代码:unit Modal;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, Base, RzCommon;type
      TFmModal = class(TFmBase)
      private
        { Private declarations }
        FParHandle: THandle;
      public
        { Public declarations }
        constructor Create(AOwner: TComponent; AParHandle: THandle = 0); reintroduce;
        procedure CreateParams(var Params: TCreateParams); override;
      end;implementation{$R *.dfm}{ TFmModal }constructor TFmModal.Create(AOwner: TComponent; AParHandle: THandle);
    begin
      if AParHandle = 0 then
        FParHandle := Application.MainFormHandle
      else
        FParHandle := AParHandle;
      inherited Create(AOwner);
    end;procedure TFmModal.CreateParams(var Params: TCreateParams);
    begin
      inherited;
      Params.WndParent := FParHandle;
    end;end.
      

  2.   

    换个方法,用个PANLE,设置下。
      

  3.   

    感谢大家,最终用了Application.MessageBox解决问题,最快