为我的组件Bitmap属性赋值时发生访问冲突

时间:2012-11-21 13:55:44

标签: delphi properties bitmap components

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

以下是代码的摘录: 财产声明

Property StarOff: TBitmap read FStarOff write SetStarOff;

功能SetStarOff

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

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

  

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

为什么会这样?

1 个答案:

答案 0 :(得分:4)

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

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

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

destructor TMyComponent.Destroy;
begin
  FStarOff.Free;
  inherited;
end;