还要将欲停靠的窗体的DOCKSITE设为TRUE

解决方案 »

  1.   

        本人在写一个程序的界面要求和delphi的IDE界面差不多.但在写的过程中遇到不少的问题。窗体描述如下。 form运行开始时,不能拖着panel2的头拖动和click panel2的关闭按钮。必须click一下panel2后才可以拖着panel2的头拖动和click panel2的关闭按钮。还有,拖着panel2向controlbar1拖。不成功后,又不能拖着panel2的头拖动和click panel2的关闭按钮。又需click一下panel2或拖着panel2才可以拖动。
       
        如果在设计时,在panel2上放一个treeview并Align=alClient。运行后不能拖动panel2和treeview这个整体。   如果在设计时,把panel2换成treeview,会有panel2时的问题。和被拖出来时没有caption。窗体描述:
    object Form1: TForm1
      ......
      object ControlBar1: TControlBar
        Left = 0
        Top = 0
        Width = 536
        Height = 49
        Align = alTop
        TabOrder = 0
        OnDockOver = ControlBar1DockOver
      end
      object Panel1: TPanel
        Left = 0
        Top = 49
        Width = 57
        Height = 299
        Align = alLeft
        Caption = 'Panel1'
        DockSite = True
        TabOrder = 1
        object Panel2: TPanel
          Left = 1
          Top = 16
          Width = 55
          Height = 282
          Caption = 'Panel2'
          DragKind = dkDock
          DragMode = dmAutomatic
          TabOrder = 0
        end
      end
    end
    窗体的过程:
    procedure TForm1.ControlBar1DockOver(Sender: TObject;
      Source: TDragDockObject; X, Y: Integer; State: TDragState;
      var Accept: Boolean);
    begin
         accept:=false;
    end;