【问题标题】:How can I streaming a published TBitmap property from DFM?如何从 DFM 流式传输已发布的 TBitmap 属性?
【发布时间】:2016-05-11 14:54:03
【问题描述】:

我在 Delphi 7 中创建了一个已发布的 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;

【问题讨论】:

  • 使属性TPicture 具有流式支持
  • 非常感谢大卫!你的建议解决了我的问题!

标签: delphi properties tbitmap


【解决方案1】:

我相信处理这个问题的常规方法是使用TPicture 而不是TBitmap 来发布属性。 TPicture 组件支持流式传输和设计器。

【讨论】:

    猜你喜欢
    • 2022-10-12
    • 1970-01-01
    • 2017-01-22
    • 2016-11-12
    • 1970-01-01
    • 2014-11-11
    • 1970-01-01
    • 2013-10-31
    • 2017-06-14
    相关资源
    最近更新 更多