【问题标题】:Delphi How to use TGridPanelDelphi如何使用TGridPanel
【发布时间】:2010-10-01 09:46:57
【问题描述】:

想用Delphi 2009的TGridPanel,但是不明白怎么正确使用。

例如,我想要一个 GridPanel,它有 4 列,每列应占 GripPanel 宽度的 25%。

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

【问题讨论】:

    标签: delphi tgridpanel


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      在设计时直接编辑.dfm。在设计编辑器中查看表单时按“Alt+F12”,在文本编辑器中找到 GridPanel,编辑那里的列值,然后再次按“Alt+F12”返回设计视图。

      【讨论】:

      • 谢谢,这行得通!注意:在表单上放置 GridPanel 并在设计时删除行和列后,这些行和列在运行时仍然存在,您必须手动删除它们。有点奇怪。
      • 或者您可以选择所有 4 列并在对象检查器中写入 25
      • @Vitaliy - 这并不比选择所有 4 然后输入 0 更容易,这在 Uwe 的答案中有所介绍。相反,如果您不打算平均分配宽度,我的回答会很有帮助。当然,您也可以这样做,但实际上,其他替代方案更胜一筹。
      猜你喜欢
      • 2021-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多