if Self.FormStyle = fsStayOnTop then
    Self.FormStyle := fsNormal
  else
    Self.FormStyle := fsStayOnTop;这样让窗体置顶,整个窗体会闪一下,有别的办法吗?

解决方案 »

  1.   

    使用api函数:setWindowPos(hwnd,HWND_NOTOPMOST,0,0,0,0,SWP_SHOWWINDOW or SWP_NOSIZE or SWP_NOMOVE);
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      if Tag=0 then
      begin
        SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE);
        Tag := 1;
      end
      else
      begin
        SetWindowPos(Handle, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE);
        Tag := 0;
      end;
    end;