从另一个单元扩展课程

时间:2017-04-17 07:16:27

标签: delphi helper class-helpers

我们可以扩展任何类:

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正确的方法?

1 个答案:

答案 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;