Delphi 以编程方式设置停靠工具栏’;s位置
我正在尝试重置TControlBar中的一组工具栏位置。用户可以拖动工具栏并将其解除锁定。我试图创建重置按钮,将重新安排工具栏是一种预设的方式 我很难让工具栏按我想要的顺序重置。ManualDock调用的结果似乎因代码执行前的安排方式而异 我有4个工具栏,我希望按如下方式排列成两行: [Toolbar1][Toolbar2] [Toolbar3][Toolbar4] 根据“我的代码”执行之前工具栏的启动位置,屏幕上的结果会有所不同 我尝试过几种不同的方法 -在手动停靠呼叫后,将工具栏设置为顶部和左侧 -alLeft/alTop,而不是上述选项 -使用Nil作为手动停靠调用中的第二个参数,并将所有参数设置为alTopDelphi 以编程方式设置停靠工具栏’;s位置,delphi,vcl,delphi-xe3,Delphi,Vcl,Delphi Xe3,我正在尝试重置TControlBar中的一组工具栏位置。用户可以拖动工具栏并将其解除锁定。我试图创建重置按钮,将重新安排工具栏是一种预设的方式 我很难让工具栏按我想要的顺序重置。ManualDock调用的结果似乎因代码执行前的安排方式而异 我有4个工具栏,我希望按如下方式排列成两行: [Toolbar1][Toolbar2] [Toolbar3][Toolbar4] 根据“我的代码”执行之前工具栏的启动位置,屏幕上的结果会有所不同 我尝试过几种不同的方法 -在手动停靠呼叫后,将工具栏设置为顶部和
我尝试只使用两个工具栏,强制它们显示在同一行(并排)或两行中。同样,根据我的代码执行之前工具栏的起始位置,我的结果也会有所不同。隐藏、停靠、设置位置和显示应该会产生预期的结果
begin
ToolBar1.Visible := false;
ToolBar2.Visible := false;
ToolBar3.Visible := false;
ToolBar4.Visible := false;
ToolBar1.ManualDock(ControlBar1);
ToolBar2.ManualDock(ControlBar1);
ToolBar3.ManualDock(ControlBar1);
ToolBar4.ManualDock(ControlBar1);
ToolBar1.Left := 0;
ToolBar1.Top := 0;
ToolBar2.Left := ToolBar1.Width;
ToolBar2.Top := 0;
ToolBar3.Left := 0;
ToolBar3.Top := MAX(ToolBar1.Height, ToolBar2.Height);
ToolBar4.Left := ToolBar3.Width;
ToolBar4.Top := ToolBar3.Top;
ToolBar1.Visible := true;
ToolBar2.Visible := true;
ToolBar3.Visible := true;
ToolBar4.Visible := true;
end;
那是为了我。在这段代码和我的代码之间尝试不同的选项,在更改其左上方位置之前,键似乎在调用所有工具栏上的ManualDock。
begin
ToolBar1.Visible := false;
ToolBar2.Visible := false;
ToolBar3.Visible := false;
ToolBar4.Visible := false;
ToolBar1.ManualDock(ControlBar1);
ToolBar2.ManualDock(ControlBar1);
ToolBar3.ManualDock(ControlBar1);
ToolBar4.ManualDock(ControlBar1);
ToolBar1.Left := 0;
ToolBar1.Top := 0;
ToolBar2.Left := ToolBar1.Width;
ToolBar2.Top := 0;
ToolBar3.Left := 0;
ToolBar3.Top := MAX(ToolBar1.Height, ToolBar2.Height);
ToolBar4.Left := ToolBar3.Width;
ToolBar4.Top := ToolBar3.Top;
ToolBar1.Visible := true;
ToolBar2.Visible := true;
ToolBar3.Visible := true;
ToolBar4.Visible := true;
end;