把窗口的FormStyle设置为fsStayOnTop。

解决方案 »

  1.   

    我想是你的主窗体的设置有问题吧,如把FormStyle设置为fsStayOnTop话,那个窗体会一直在最上面,你也可以用MDI试试看吧!
      

  2.   

    我的窗口都是一般的窗口,只是当程序执行到一定的时候要显示另外一个chatform窗口,他第一次出现要出现在原来窗口的前面,以后我可以把它隐藏在原始窗口的后面,在需要时按某个健让他
    出来,就像delphi中按F11就出现属性窗口一样。但现在我的问题是:chatform的visible开始时是false,当程序执行到一定时候,我设chatform.visible:=true;chatform.show;这时chatform出现了,但他在原来窗口的后面(原来窗口比chatform大)所以看不见,我用了chatform.bringtofront,还是没用,chatform不能获得焦点到原来窗口的前面,不知道为什么?
      

  3.   

    chatform.visible:=true;chatform.show;
    改为
    chatform.showmodal;
      

  4.   

    不好意思,这样也不行,用这种方法虽然可以让chatform出现在窗口的前面,但是这样主窗口就不可以用了,只有等到chatform退出后才可以用。我的目的是要让chatform和主窗口都同时可以操作,只是同时只有一个窗口获得焦点而已(刚开始出现时有chatform获得焦点),就像delphi中属性窗口,代码窗口之间的关系那样。
      

  5.   

    setforegroundwindow(handw) 如何?
      

  6.   

    setforegroundwindow(handw) 如何?
      

  7.   

    chatform.show;
    chatform.setfocus;
      

  8.   

    还是不行,chatform闪一下就躲到主窗口的后面去了,把这两句话放在其他事件中是对的,不知为什么放在treeviewonchange事件中就不行了,改事件的代码如下:
    procedure Teditform.TreeViewChange(Sender: TObject; Node: TTreeNode);
    var
    //    editnode            :Ttreenode;
        i                   :integer;
    begin
       if (treeview.Selected.Text ='Editing')  then
       begin
         editselect:=true;
       end;
       if (treeview.Selected.Text ='Chat') then
       begin
         chatselect:=true;
         chatform.Show;   //关键是这两句
         chatform.SetFocus ;
       end;
       if (editselect and (not chatselect)) or ((not editselect) and chatselect) then
       begin
         newsession.Enabled :=true;
         speedbutton1.Enabled :=true;
       end;
       for i:=0 to loginform.sessionnum -1 do
       begin
          if (not jionclick) and (treeview.Selected.Text =loginform.sessionarr[i].theme) then
          begin
             select:=true;
          end;
       end;
       if chatselect then
       begin
         chatform.Visible :=true;
         statusbar1.Panels[0].Text :='If you want to see whiteboard,please press f2!';
       end;
       chatselect:=false;
       editselect:=false;end;
    大家给我看看到底是为什么?为什么把这两句放在这个事件中就不行?谢谢!
      

  9.   

    把子窗体的parent设置为主窗体就行了
      

  10.   

    在chatform窗体创建时设置parent为主窗体
    然后在需要显视时设置chatform.Visible为true
    反之则chatform.Visible为false
      

  11.   

    如果主窗体是fsMDIForm则chatform须是fsMDIChild,否则可能出现你这样的情况。