Hallo Gausi,
also Prizipiel solltest du deinen Constructor
Create und deinen Destructor
Destroy nennen.
Desweiteren sollsen sie mindestens die Parameter entgegennehmen die der Construktor und Destruktor der Vorfahrklasse hatte (also dessen wo tPerson von abgeleitet ist). Da du dieses ja auch erzeugen musst.
Das bringt mich zu Punkt drei. Deine Klasse ist immer von einer anderen Abgeleitet (und sei es tObject) diese bringt schon eine menge funktionen mit und deklariert sich vieleicht auch unterobjekte. Also musst du sicherstellen, das deren Construktor aufgerufen wird
bevor du etwas in deiner Klasse macht und deren Destruktor aufgerufen wird
nachdem du alles gemacht hast. Denn diese vorfahrklasse ist das Fundament auf dem du Arbeiten musst.
Du kannst funktionen des vorfahren mit dem schlüsselwort
Inherited [funktionsname mit parametern]
aufrufen. Wenn du den Funktionsnamen und die Parameter weglässt, wird die funktion aufgerufen, die genauso heißt wie die aktuelle und auch die selben Parameter verlangt.
Das ganze sollte also so aussehen:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| constructor tPerson.Create; begin inherited; urlaubsliste := tStringList.Create; end;
[...]
destructor tPerson.Destroy; begin urlaubsliste.Free; inherited end; |
Gruß
Klabautermann