我在Delphi7中创建了一个已发布的TBitmap属性,我可以在设计时由编辑器设置它的值,如果我回忆一下编辑器,我可以看到正确的图片。但是,当我保存、关闭并重新打开窗体时,TBitmap属性为空。少了什么?我知道有加载的虚拟方法。但我该怎么做呢?
TCustomComponent = class ( TComponent )
private
fBitmap : TBitmap;
protected
procedure loaded; override;
procedure setBitmap( bitmap_ : TBitmap );
public
constructor create( owner_ : TComponent ); override;
destructor destroy; override;
published
property bitmap : TBitmap read fBitmap write setBitmap;
end;
procedure TCustomComponent.loaded;
begin
inherited loaded;
// ???
end;
procedure TCustomComponent.setBitmap( bitmap_ : TBitmap );
begin
fBitmap.assign( bitmap_ );
end;
constructor TCustomComponent.create( owner_ : TComponent );
begin
inherited create( owner_ );
fBitmap := TBitmap.create;
end;
destructor TCustomComponent.destroy;
begin
fBitmap.free;
inherited destroy;
end;发布于 2016-05-11 15:30:38
我认为处理此问题的传统方法是对已发布的属性使用TPicture而不是TBitmap。TPicture组件提供了对流的支持,以及一个设计器。
https://stackoverflow.com/questions/37166311
复制相似问题