2016-05-11 11 views
0

Delphi 7で公開されたTBitmapプロパティを作成しました。設計時にエディタで値を設定できます。エディタを呼び出すと正しい画像が表示されます。しかし、フォームを保存して閉じると再び開くと、TBitmapプロパティは空になります。何が欠けている? ロードされた仮想メソッドがあります。しかし、私はそれで何をすべきですか?公開されたTBitmapプロパティをDFMからストリーミングするにはどうすればよいですか?

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'をストリーミングサポートにする –

+0

ありがとうDavid!あなたの提案は私の問題を解決しました! –

答えて

2

私はこれに対処するための従来の方法は、公開プロパティのTPictureの代わりTBitmapを使用することであると信じています。 TPictureコンポーネントには、ストリーミングとデザイナーのサポートが付属しています。

関連する問題