我正在尝试创建一个必须使用Bitmap的组件,当我选择该属性上的图像时,我遇到了问题。
以下是代码的摘录: 财产声明
Property StarOff: TBitmap read FStarOff write SetStarOff;
功能SetStarOff
procedure TNotas.SetStarOff(const Value: TBitmap);
begin
FStarOff.Assign(Value);
end;
但是,当我为属性赋值时,我收到错误:
模块'TNte.bpl'中地址1BC324B8的访问冲突。读取地址000000000
为什么会这样?
答案 0 :(得分:4)
你的setter方法看起来是正确的,但是你得到了一个访问冲突,因为你的FStarOff成员目前是零。
通常是在施工时创建它并在销毁时释放它。
constructor TMyComponent.Create(AOwner: TComponent);
begin
inherited;
FStarOff := TBitmap.Create;
end;
destructor TMyComponent.Destroy;
begin
FStarOff.Free;
inherited;
end;