Ich habe den Tipp von Gausi umgesetzt, der Code sieht nun so aus (bzw. die Erweiterung):
Delphi-Quellcode:
type
TTest = class
FBmp: TBitmap;
FIndex: Integer;
function GetBmp: TBitmap;
procedure SetTransparent(Value: Boolean); //<<<<<<< neu dazugekommen
public
constructor Create;
destructor Destroy; override;
property Transparent: Boolean write SetTransparent;
property Bmp: TBitmap read GetBmp;
end;
implementation
{$R *.dfm}
//...
procedure TTest.SetTransparent(Value: Boolean); //<<<<<<< neu dazugekommen
begin
FBmp.Transparent := Value;
end;
Es funktioniert. GetBmp wird so nicht aufgerufen, womit das Problem gelöst scheint.
Trotzdem gefällt mir der Weg nicht. Ich empfinde das nicht als elegant. Ich verstehe auch was jaenicke sagt: "Ein Getter sollte auch nur als Getter fungieren", aber wenn da eine Eigenschaft ist, die Bitmap ausgibt, dann besteht immer die Gefahr, dass einer so zugreift wie ich. Ich dachte, dass read ausreicht, damit das nicht passiert. Ich denke ich muss noch etwas nachdenken wie ich es anders löse.