Hi,
Ich verstehe grad leider nicht was du da tun willst
Allgemein:
property _Name_: _Datentyp_ read FVar write FVar;
Beispiel:
Delphi-Quellcode:
private
FName: String;
public
property Name: String read FName write FName;
end;
Vor privaten Variablen steht ein
F.
oder:
property _Name_[Index: Integer]: _Datentyp_ read GetVar write SetVar;
Delphi-Quellcode:
private
FWerte: Array of Integer;
public
property Werte[Index: Integer]: Integer read GetWert write SetWert;
end;
implementation
function TKlasse.GetWert(Index: Integer): Integer;
begin
Result := FWerte[Index];
end;
procedure TKlasse.SetWert(Index: Integer; const Value: Integer);
begin
FWerte[Index] := Value;
end;
Vor Getter/Setter-Methoden steht das
Get/Set Prefix. Ohne F!
Du kannst Setter und Getter auf für Nicht-Array-Properties benutzen:
Delphi-Quellcode:
private
FName: String;
function GetName: String;
procedure SetName(const Value: String);
public
property Name: String read GetName write SetName;
end;
implementation
function TKlasse.GetName: String;
begin
Result := FName;
end;
procedure TKlasse.SetName(const Value: String);
begin
FName := Value;
end;
In den Getter- und Setter Methoden kannst du zudem beeinflussen, was genau zurückgegeben, (gelesen) und geschrieben wird. z.B.
Delphi-Quellcode:
function TKlasse.GetWert(Index: Integer): Integer;
begin
if not (Index in [0..High(FWerte)]) then
Result := -1
else
Result := FWerte[Index];
end;
procedure TKlasse.SetWert(Index: Integer; const Value: Integer);
begin
if Value < 0 then
FWerte[Index] := 0
else
FWerte[Index] := Value;
end;
Das hier sind jetzt nur Beispiele. Ist jetzt evtl nicht das allersinnvollste. Aber ich denke es verdeutlicht den Sinn und Zweck von Properties. Und auch deren Funktionsweise
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."