Delphi XE3
我在一张表格上有4个图表,2个横着,2个向下。当我调整窗体大小时,我希望图表按比例调整大小,以保持其相对位置。我只是不知道该怎么做。我试过使用锚设置,但没有成功。当我将锚点设置为左,上,右和下时,它们在调整大小时相互重叠。
锚在这里不起作用。你正在寻找更类似于Align
性质的东西。但是没有一个内置选项可以实现这种布局。所以,我认为你最好编写一个定制的OnResize
处理程序。
我建议你把图表放在一个容器里,比如一个面板。假设您希望图表以2乘2的网格填充面板,那么您可以在面板的OnResize
事件处理程序中编写以下内容:
var
W, H: Integer;
....
W := Panel.ClientWidth;
H := Panel.ClientHeight;
Chart1.SetBounds(0, 0, W div 2, H div 2);
Chart2.SetBounds(W div 2, 0, W - W div 2, H div 2);
Chart3.SetBounds(0, H div 2, W div 2, H - H div 2);
Chart4.SetBounds(W div 2, H div 2, W - W div 2, H - H div 2);
您可以根据自己的喜好调整布局,但使用OnResize
的基本原理是相同的。