如何以编程方式将组件分配给Delphi GridPanel行和列?
我正在使用Delphi开发一个项目,我正在动态地为GridPanel制作行和列。我还创建了一个面板(TPanel),我打算在每个单元格中动态放置。如何以编程方式将组件分配给Delphi GridPanel行和列?
我的问题是:如何将新创建的面板分配给GridPanel中的特定单元格?
我猜我必须分配面板的“父”属性,以便它是GridView。但是,与使用设计环境将面板分配给GridPanel时不同,我无法调整TPanel的“行”或“列”属性。
你如何将新创建面板分配到是 在GridPanel中特定的细胞?
答案是,你不能。在设计时或以编程方式将新组件添加到TGridPanel
时,会将新组件放入下一个未占用的单元中。默认情况下,按照从左到右的顺序。
的ExpandStyle
属性(emAddRows
或emAddColumns
)确定填充时TPanelGrid
是如何扩大,并加入进一步控制。
在您添加了新的面板(或其他组件)到TGridPanel
你可以改变它的位置,正如其他人回答说,通过访问通过ControlCollection
财产的控制。
谢谢!这是有道理的,并且实际上简化了我正在尝试做的事情。 – Andre72127
您可以访问属性
TGridPanelLayout.ControlCollection[index].row := 0;
和
TGridPanelLayout.ControlCollection[index].Column := 0;
用途:
TGridPanelLayout.ControlCollection[position].row := 0;
虽然这段代码可能会回答这个问题,但提供关于如何解决问题和/或为什么解决问题的额外上下文会提高答案的长期价值。 – Badacadabra
你的意思TGridPanel布局? Firemonkey还是VCL? –