procedure TFrmOperate.CbOnTopClick(Sender: TObject);
begin
  if CbOnTop.Checked then
  begin
    Self.FormStyle := fsStayOnTop;
  end else
  begin
    Self.FormStyle := fsNormal;
  end;
end;我想让用户能通过一个 CheckBox来选择是否让窗体一直在最上方,但我如上的代码不能实现,当选择一直在上时,还是能被其他的窗体挡住。不知道为什么?

解决方案 »

  1.   

    要实现窗体一直在最上方好像这样不行!估计设计到API方面的编程! 和楼主共同关注!
      

  2.   

    调用setwidowfront...什么的,具体计不得了,是个api函数,可以看看帮助
    还有,好像如果在你的窗口建立(显示)以后,再改变这个fsStayOnTop就没有意义了,不知道对不对,你可以试试其它方法阿。
      

  3.   

    SetWindowPos(Handle,HWND_TOPMOST,Self.Left,Self.Top,Self.Width,Self.Height,SWP_SHOWWINDOW)
      

  4.   

    SetWindowPos(Handle,HWND_TOPMOST,Self.Left,Self.Top,Self.Width,Self.Height,SWP_SHOWWINDOW)万一步
      

  5.   

    我又试了,如果是主窗体的话没有问题,但我是主窗体运行后又创建了一个新的窗体 form2 然后就不能实现功能了。知道是为什么吗 ?
      

  6.   

    新建的form2也用SetWindowPos(Handle,HWND_TOPMOST,Self.Left,Self.Top,Self.Width,Self.Height,SWP_SHOWWINDOW),效果没有。