我们可以扩展任何类:
TColumn = class(FMX.Grid.TColumn)
private
FId: Integer;
public
property Id: Integer read FId write FId;
end;
这在我们自己的单元中工作正常,但是如果我们尝试这个(表单上的Grid: TGrid
):
procedure ChangeId;
var
Col: TColumn;
begin
Col := Grid.Columns[0];
Col.Id := 0;
end;
我们收到了错误:
[dcc32错误] uHelpers.pas(136):E2010不兼容类型:
'uHelpers.TColumn'和'FMX.Grid.TColumn'
任何扩展FMX.Grid.TColumn
类以使程序ChangeId
正确的方法?
答案 0 :(得分:-1)
这是可能的,但我们应该在运行时手动添加列:
TIdColumn = class(FMX.Grid.TColumn)
private
FId: Integer;
public
property Id: Integer read FId write FId;
end;
Grid.AddObject(TIdColumn.Create(Grid));
procedure ChangeId;
var
Col: TIdColumn;
begin
Col := Grid.Columns[0] as TIdColumn;
Col.Id := 0;
end;