AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Eigener Konstruktor

Ein Thema von FriendOfDelphi · begonnen am 7. Jun 2010 · letzter Beitrag vom 7. Jun 2010
 
FriendOfDelphi

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

Eigener Konstruktor

  Alt 7. Jun 2010, 14: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
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz