1:设置窗体的属性FormStyle为   fsStayOnTop  
注:窗体会闪动
2:SetWindowPos(Self.Handle,   HWND_TOPMOST,   0,   0,   0,   0,   SWP_NOMOVE   or   SWP_NOSIZE);
注:这种方法对模态窗口会失灵.谁知道还有好的方法啊

解决方案 »

  1.   

    1:设置窗体的属性FormStyle为  fsStayOnTop  
    注:窗体会闪动 
    我觉得这个没关系的
    我以前也遇到过这样的问题
    其实闪动的时间挺短的 不影响程序本身的效果
      

  2.   


    procedure TForm1.FormCreate(Sender: TObject);
    begin
      self.DoubleBuffered:=true;
    end;你在你的窗体事件里加上这句话就OK 了
      

  3.   

    窗体是这样创建的.为什么我用了上面两种方法,都不能让窗体在最上层呢?
     
    Application.CreateForm(Tform_gc_csd, form_gc_csd);
       with form_gc_csd do
        try
          ShowModal;
          finally
          free;
        end;
      

  4.   

    Application.CreateForm(Tform_gc_csd, form_gc_csd); 
      with form_gc_csd do 
        try 
          FormStyle := fsStayOnTop  
          ShowModal; 
          finally 
          free; 
        end;这样就可以了
    不过如果有其它的窗体也设置了在最上面的属性的话
    可能这个窗体就不能在最上面了 可能就被覆盖了
      

  5.   

    在onpaint事件中发消息,即可procedure Tform_gc_csd.FormPaint(Sender: TObject);
    begin
      SetWindowPos(self.Handle,  HWND_TOPMOST,  0,  0,  0,  0,  SWP_NOMOVE  or  SWP_NOSIZE);
    end;
      

  6.   

    为什么我在窗体中放个按键来设置
     FormStyle := fsStayOnTop  
    会失效呢
      

  7.   

    self.DoubleBuffered:=true;
    这个是啥作用呀