Thema: Delphi Eigener Konstruktor

Einzelnen Beitrag anzeigen

FriendOfDelphi

Registriert seit: 21. Mai 2010
163 Beiträge
 
Delphi 5 Professional
 
#1

Eigener Konstruktor

  Alt 7. Jun 2010, 13:41
Delphi-Version: 2005
Hallo!

Ich eine Frage zur Verwendung eigener Konstruktoren.

Allgemein:
Objektreferenz := Klasse.Create;
Konkret:
MeinAuto := TAuto.Create;
Ich möchte erreichen, dass zu dem Zeitpunkt wenn das Objekt erzeugt wird, einige Datenfelder des Objekts mit vorgegebenen Werten und nicht mit Standardwerten initialisiert werden.
Standardwerte sind:
  • Datenfelder mit einem ganzzahligen Datentyp (z.B. Integer) werden mit 0 initialisiert
  • Datenfelder mit einem String-Typ werden durch eine leere Zeichenkette initialisiert
Wie gesagt, wenn "MeinAuto" erzeugt wird, sollen eigene Werte über einen eigenen Konstruktor in die Datenfelder des Objekts geschrieben werden.

Hier die Unit mit der Beispielklassendefinition:
Delphi-Quellcode:
type
  TAuto = class(TObject)
  private
    FFarbe: string;
    procedure SetFarbe(Farbe: string);
    constructor Create(col: string);
  public
    property Farbe: string read FFarbe write SetFarbe;
end;
Delphi-Quellcode:
constructor TAuto.Create(col: string);
begin
  inherited Create; //hierdurch wird der ursprüngliche Konstruktor aufgerufen
  FFarbe:='rosa';
end;
Und hier das Beispielprogramm in einer anderen Unit:
Delphi-Quellcode:
var
  LKW: TAuto;
begin
  LKW:=TAuto.Create;
  LKW.Farbe:='rot';
Leider funktioniert das so nicht.
Die Farbe wird erst mit der Zeile LKW.Farbe:='rot'; gesetzt. Die Initialisierung des Feldes "Farbe" im Konstruktur FFarbe:='rosa'; erfolgt nicht.
Was mache ich falsch?
Herzlichen Gruß
FriendOfDelphi
  Mit Zitat antworten Zitat