对象没有创建

时间:2015-09-07 13:53:29

标签: delphi object

我正在创建一个非可视组件。短代码:

// Element of some list item
TMyItem = class
private
  Id: integer;
  Caption: string;
public
  constructor Create(const aId: integer; const aCaption: string);
end;

// List of items
TMyItemList = class(TObjectList<TMyItem>)
public
  constructor Create;
end;

// The component
TMyComp = class(TComponent)
private
  FMyList: TMyItemList;
public
  constructor Create;

implementation

constructor TMyComp.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FMyList:= TMyItemList.Create;
end;

问题:为什么&#34; FMyList&#34;当&#34; MyComp&#34;产生的?已分配(FMyList)= false ...

1 个答案:

答案 0 :(得分:0)

这不是您的实际代码。您的实际代码编译。但我们可以猜出问题是什么。这里:

type
  TMyComp = class(TComponent)
  private
    FMyList: TMyItemList;
  public
    constructor Create;
  end;

TComponent的构造函数声明如下:

constructor Create(AOwner: TComponent); virtual;

它是一个虚拟构造函数,因为Delphi流式框架依赖于元类来创建对象。如果您希望框架调用构造函数,则必须覆盖此虚构造函数。

constructor Create(AOwner: TComponent); override;

我对这种猜测有信心,但我们不应该猜测。下次,请提交真实代码,Minimal, Complete, and Verifiable Example