0

我正在尝试创建一个必须使用位图的组件,当我去选择属性上的图像时遇到问题。

这是代码的摘录:属性声明

Property StarOff: TBitmap read FStarOff write SetStarOff;

功能 SetStarOff

procedure TNotas.SetStarOff(const Value: TBitmap);
begin
FStarOff.Assign(Value);
end;

但是,当我为属性赋值时,我得到了错误:

模块“TNte.bpl”中地址 1BC324B8 的访问冲突。读取地址 000000000

为什么会这样?

4

1 回答 1

4

您的 setter 方法看起来是正确的,但您遇到了访问冲突,因为您的 FStarOff 成员目前为零。

通常是在构建时创建它并在销毁时释放它。

constructor TMyComponent.Create(AOwner: TComponent);
begin
  inherited;
  FStarOff := TBitmap.Create;
end;

destructor TMyComponent.Destroy;
begin
  FStarOff.Free;
  inherited;
end;
于 2012-11-21T14:46:38.007 回答