Difference between revisions of "Property/de"
From Lazarus wiki
Jump to navigationJump to searchLine 15: | Line 15: | ||
public | public | ||
property Farbe: string read fFarbe write SetFarbe; // Liest das Feld AFarbe direkt aus und | property Farbe: string read fFarbe write SetFarbe; // Liest das Feld AFarbe direkt aus und | ||
− | // schreibt in das Datenfeld | + | // schreibt in das Datenfeld fFarbe über die Prozedur SetFarbe. |
end; | end; | ||
Revision as of 18:38, 14 March 2018
Template:property
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)