2017-03-08 90 views
0

我在网上发现了很多解决方案,但它们不能正常工作,因为StringGrid1.ColumnCount属性是只读的。我正在使用Delphi 10西雅图。在运行时添加stringgrid列

我有一个StringGrid1,我需要在运行时添加列。具体而言,我必须根据TList的大小添加列。特别是:

var a: TList<double>; 
begin 

//fill the TList... 

for i := 0 to a.Count - 1 do 
    begin 
    StringGrid1.AddColumn(); //how can I do this? 
    end; 

end; 

我觉得这是拉撒路很容易(但它当然有FPC),但德尔福我真的不知道该怎么办。我正在研究Firemonkey。

+0

“* StringGrid1.ColCount属性是只读的*” - 在FireMonkey中只有这样。 'ColCount'属性是在VCL中读/写的。另外,在FMX中,没有'ColCount'属性,它实际上被命名为'ColumnCount'。下次请指出您正在使用的框架。 –

+0

很难知道你在说什么 –

+0

我没有很好地解释这个问题,但我只需要在TStringGrid中添加一列(TStringColums)。 –

回答

7

使用网格的AddObject()InsertObject()方法来添加所需TColumn派生类的对象实例,像TStringColumn。该列对象将被添加到网格的Columns阵列中。 ColumnCount属性只是返回数组中的列数,这就是为什么它是只读的。

+0

StringGrid1.AddObject(TStringColumn.Create(StringGrid1)); –

+0

此代码正常工作,谢谢。 –