Nachtrag:
Mit shmias Methode sähe das dann so aus:
Delphi-Quellcode:
type
TFoo = class
private
FLbl: TLabel;
function GetSetText(const Index: String): string;
public
constructor Create(lbl: TLabel);
property MyText[const Index: String]: string read GetSetText;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
constructor TFoo.Create(Lbl: TLabel);
begin
inherited Create;
FLbl := Lbl;
end;
function TFoo.GetSetText(const Index: String): String;
begin
result := FLbl.Caption;
if Index <> '' then
FLbl.Caption := Index;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Foo: TFoo;
begin
Foo := TFoo.Create(Label1);
try
ShowMessage(Foo.MyText['']);
finally
FreeAndNIl(Foo);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
Foo: TFoo;
begin
Foo := TFoo.Create(Label1);
try
Foo.MyText['Hello'];
finally
FreeAndNil(Foo);
end;
end;
Ich finde das macht das Ganze aber etwas unübersichtlich. Mit einem getrennten Getter und Setter finde ich das persönlich besser. Oder gibt es da noch einen Vorteil, den ich jetzt übersehen habe?