Как я могу транслировать опубликованное свойство TBitmap из DFM?

Я создал опубликованное свойство TBitmap в Delphi 7. Я могу установить его значение редактором во время разработки, и, если я вспомню редактор, я смогу увидеть правильную картинку. Но когда я сохраняю, закрываю и снова открываю форму, свойство 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;

1 ответ

Решение

Я считаю, что обычный способ борьбы с этим заключается в использовании TPicture вместо TBitmap для опубликованных свойств. TPicture Компонент поставляется с поддержкой потоковой передачи и дизайнера.

Другие вопросы по тегам