我把一个panel弄成浮动的了,然后点panel右上角的X关闭后产生什么事件呢?
  我想把它关闭后放到窗体上去,应该怎么做,谢谢

解决方案 »

  1.   

    ONCLOSE事件中action := canone,然后再把它放在FORM上
      

  2.   

    不是窗体,我说的是关闭被拖出的panel时发生什么事件,没有onclose
      

  3.   

    wywry(Wyatt) 能不能给一个例子啊,谢谢
      

  4.   

    楼主说得不清楚,所以别人也帮不了忙。我怎么就没见过Panel还有个右上角的X?先说说你怎么“把一个panel弄浮动了?”?
      

  5.   

    "把一个panel弄浮动了"应该是指Dock,但关闭会发生什么事件,我就不懂了,关注。
      

  6.   

    就像楼上说的,将panel的DragKind属性设置为dkDock,DragMode 属性设置为dmAutomatic,然后像拖动工具栏一样把panel拉出来,就能看到右上角的X了,点击这个地方会关闭Panel,我想在点击这个X时将panel放回原来的位置
      

  7.   

    http://hubdog.csdn.net/Hubdog/dock.htm
      

  8.   

    //...
      private
        FPanelWindowProc: TWndMethod;
        procedure PanelWindowProc(var Message: TMessage);
    //...const
      WM_DOCKSHOW = 45073;
      WM_DOCKCLOSE = 45067;procedure TForm1.PanelWindowProc(var Message: TMessage);
    begin
      case Message.Msg of
        WM_DOCKSHOW: ;
        WM_DOCKCLOSE:
        begin
          Panel1.Dock(Self, Rect(0, 0, Panel1.Width, Panel1.Height));
          Panel1.Show;
        end;
      end;
      if Assigned(FPanelWindowProc) then FPanelWindowProc(Message);
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      FPanelWindowProc := Panel1.WindowProc;
      Panel1.WindowProc := PanelWindowProc;
    end;