如何以编程方式将组件分配给Delphi GridPanel行和列?

问题描述:

我正在使用Delphi开发一个项目,我正在动态地为GridPanel制作行和列。我还创建了一个面板(TPanel),我打算在每个单元格中动态放置。如何以编程方式将组件分配给Delphi GridPanel行和列?

我的问题是:如何将新创建的面板分配给GridPanel中的特定单元格?

我猜我必须分配面板的“父”属性,以便它是GridView。但是,与使用设计环境将面板分配给GridPanel时不同,我无法调整TPanel的“行”或“列”属性。

+1

你的意思TGridPanel布局? Firemonkey还是VCL? –

你如何将新创建面板分配到是 在GridPanel中特定的细胞?

答案是,你不能。在设计时或以编程方式将新组件添加到TGridPanel时,会将新组件放入下一个未占用的单元中。默认情况下,按照从左到右的顺序。

ExpandStyle属性(emAddRowsemAddColumns)确定填充时TPanelGrid是如何扩大,并加入进一步控制。

在您添加了新的面板(或其他组件)到TGridPanel你可以改变它的位置,正如其他人回答说,通过访问通过ControlCollection财产的控制。

+0

谢谢!这是有道理的,并且实际上简化了我正在尝试做的事情。 – Andre72127

您可以访问属性

TGridPanelLayout.ControlCollection[index].row := 0; 

TGridPanelLayout.ControlCollection[index].Column := 0; 

用途:

TGridPanelLayout.ControlCollection[position].row := 0; 
+1

虽然这段代码可能会回答这个问题,但提供关于如何解决问题和/或为什么解决问题的额外上下文会提高答案的长期价值。 – Badacadabra