请问:如何使ControlBar在程序运行时就处于浮动状态?(100分)

  • 主题发起人 主题发起人 应无物
  • 开始时间 开始时间

应无物

Unregistered / Unconfirmed
GUEST, unregistred user!
请问:如何使ToolBar在程序运行时就处于浮动状态?
就像VB、VC里面的控件工具条一样自动浮动

ToolBar里面有一个Floating属性,是不是与浮动联系的?
这个Floating是只读属性,初始化设为True行不通
怎么办?
 
调用ManualDock方法即可。
Floating属性指示控件是否在浮动状态。
 
ManualFloat
ManualDock
这两个都怎么用?有什么区别?
 
ManualDock:Docks the control.
ManualFloat:Undocks the control.

function TControl.ManualDock(NewDockSite: TWinControl; DropControl: TControl = nil; ControlSide: TAlign = alNone): Boolean;
先从当前Dock的位置UnDock本控件,然后Dock本控件导NewDockSite上。如:
procedure TForm1.Button1Click(Sender: TObject);
begin
ToolBar1.ManualDock(Panel1);
end;

function TControl.ManualFloat(ScreenPos: TRect): Boolean;
UnDock本控件,即让本控件浮动起来。
procedure TForm1.Button2Click(Sender: TObject);
begin
ToolBar1.ManualFloat(Rect(0,0,200, 10));
end;

看来还是用ManualFloat方法才对。
 

另:ManualFloat可以实现浮动。
但若使浮动面板一直处于浮动状态,不会停靠到任何CoolBar或ControlBar,
该如何做?

这位富翁,谢谢!
100分送给你,请笑纳!
这个问题完事,结帐!
 
要接受一个浮动的控件,必须有一个接受浮动控件的DockSite控件,
而且这个DockSite控件的DockSite属性必须为True,
如果没有可以作为DockSite的控件。。。。。
 
已经有一个ControlBar的DockSite设为True,为了其他控件的停靠
但我不想这个浮动面板也停靠在上面
 
只要你的ToolBar的DragMode属性为dmManual就停靠不了。
 
这样不行
 
还要DragKind属性是dkDrag,我测试时没有指定ToolBar1.FloatingDockSiteClass,用的是
默认值,是可以的。
 
3ks
给分!
 
接受答案了.
 
后退
顶部