Einzelnen Beitrag anzeigen

Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#21

Re: Code strukturieren! Wie macht man es richtig ..

  Alt 11. Okt 2008, 00:35
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."
  Mit Zitat antworten Zitat