我有一個窗體,左邊是一個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