Property/de

From Lazarus wiki

Deutsch (de) English (en) suomi (fi) français (fr)

Zurück zu den reservierten Wörtern.

Das reservierte Wort property gehört zur objektorientierten Programmierung.
Das reservierte Wort property bestimmt wie über öffentliche Methoden einer als privat deklarierten Variable (Datenfeld) zugegriffen wird.

Beispiel:

type
  TAuto = class
  private
    fFarbe: string;
    procedure SetFarbe(AFarbe: string);
  public
    property Farbe: string read fFarbe write SetFarbe; // Liest das Feld AFarbe direkt aus und
	                                               // schreibt in das Datenfeld fFarbe über die Prozedur SetFarbe.
  end;

procedure TAuto.SetFarbe(AFarbe: string);
begin
   fFarbe := AFarbe;
end;


Anwendungs-Beispiel:

var
  Auto: TAuto;

begin
  Auto := TAuto.Create;     // Erstellt das Objekt

  // Zwei unterschiedliche Schreibweisen für das gleiche Problem
  Auto.Farbe := 'Grün';     // Setzt die Farbe
  Auto.SetFarbe('Grün');    // Setzt die Farbe wie oben, nur über eine andere Methode, aber dies sollte man vermeiden,
                            // da normalerweise der Setter und Getter privat ist. 

  ShowMessage(Auto.Farbe);  // Gibt die Farbe wieder aus

  Auto.Free;                // Zerstört das Objekt
end;


Es ist auch möglich eine Getter-Funktion für das Lesen zu bauen.

...
  private
    function GetFarbe: String;
    procedure SetFarbe(AFarbe: string);
  public
    property Farbe: string read GetFarbe write SetFarbe;
...
function TAuto.GetFarbe: String;
begin
  Result := fFarbe;
end;

Es ist auch möglich ohne Getter und Setter-Funktion

...
  public
    property Farbe: string read fFarbe write fFarbe;
...


--Olaf 09:28, 1 November 2012 (UTC)