我有一个窗体,左边是一个TTreeview,右边是一个TGroupbox。当通过拖动右边缘调整窗体大小时,我希望Groupbox相应地增大或缩小。当窗体被拖动到左边时,我想让Treeview调整大小。我试了下面的代码,正确调整工作正常。但是,调整大小会导致树视图变得比应该变长。什么是实现这个目标的正确方法?基于拖拽区域动态调整控件大小
procedure TForm1.FormResize(Sender: TObject);
var
p: TPoint;
begin
P:= ScreenToClient(Mouse.CursorPos);
if(P.X<0) then begin
Treeview1.Anchors:= [akLeft,akTop,akRight,akBottom];
Groupbox1.Anchors:= [akTop,akBottom];
end
else begin
Treeview1.Anchors:= [akLeft,akTop,akBottom];
Groupbox1.Anchors:= [akLeft,akTop,akRight,akBottom];
end;
end;
没有,当你在左边拖动到左侧和右侧几次GROUPBOX最终消失。这里有一些奇怪的事情发生。 – fullerm
@fullerm将'akRight'添加到'GroupBox1.Anchors'似乎在德尔福10.1柏林工作正常。如果它不适合你,你的测试用例中肯定还有别的东西没有告诉我们。 –
我正在使用XE并在一个空白项目中测试了这段代码。在左侧来回拖动之后,Treeview重叠到Groupbox上。也许XE有一个错误。 – fullerm