2010-10-01 333 views
14

我想使用Delphi的2009 TGridPanel,但我不明白如何正确使用它。Delphi如何使用TGridPanel

例如,我想要一个带有4列的GridPanel,每个列应该有每个GripPanels宽度的25%。

所以我把一个GripPanel放在窗体上并添加4个ColumnItems。 我给列项目SizeStyle ssPercent,现在我尝试给每个ColummItem值25(在对象检查器)。 但由于某些原因,对象检查器不接受值25.它会自动更改为'23,8095238095238'之类的内容。 有人可以简单地解释我如何使用这个组件? 谢谢!

回答

13

当您将Value的列设置为SizeStylessPercent时,组件将为可用总百分比分配所有ssPercent样式列的新总和。例如,如果您有4 25%的列,并且您将其中一个设置为50%,那么您现在总共有125%。组件再次计算'Value',使总分布成比例,即50% - > 40%(100 * 50/125)。

要在运行时一次设置多个列的值,您需要使用GridPanel.ColumnCollection.BeginUpdateGridPanel.ColumnCollection.EndUpdate来包围代码。

并在设计时直接编辑0​​。在设计编辑器中查看表单时按'Alt + F12',在文本编辑器中找到GridPanel,编辑列的值,然后再次按'Alt + F12'返回到设计视图。

+0

谢谢,这工作!注意:在表单上删除GridPanel并在设计时删除行和列后,这些行和列在运行时仍然存在,并且您必须手动删除它们。有点奇怪。 – flinkiy1 2010-10-07 10:19:22

+0

或者您可以选择所有4列并在对象检查员中写入25 – VitaliyG 2013-09-02 12:46:36

+0

@Vitaliy - 这不比选择全部4然后键入0,这在Uwe的答案中涵盖了0。相反,如果你不打算平均分配宽度,我的回答很有帮助。当然,你也可以这样做,但事实上,其他的替代方法在这方面更好。 – 2013-09-02 18:19:23

14

如果要将所有列设置为相同值,请选择结构视图中的所有列,然后(假定SizeStyle已设置为ssPercent)将值设置为。这将触发一些自动操作,使所有列的大小相等。