Einzelnen Beitrag anzeigen

DevidEspenschied

Registriert seit: 7. Sep 2006
Ort: Berlin
441 Beiträge
 
Delphi 12 Athens
 
#1

Klassenvariable an übergeordnete Klasse übergeben

  Alt 2. Jun 2008, 15:56
Hallo,

ich habe 2 Klassen, wobei vom Mainform die Oberklasse aufgerufen wird, welche wiederum die Unterklasse aufruft. Dabei soll eine Byte-Variable durch die einzelnen Klassen "geschliffen" werden, und ich brauche da wohl einen Denkansatz:

Delphi-Quellcode:
TYPE TOberklasse = CLASS( TObject )
     PRIVATE
       LocalNr : Byte;
       Unterklasse : TUnterklasse;
     PROTECTED
     PUBLIC
       PROPERTY Nr : Byte READ LocalNr WRITE LocalNr;
       CONSTRUCTOR Create; OVERLOAD;
     END;

     TUnterklasse = CLASS( TOberklasse )
     PRIVATE
       LocalNr : Byte;
     PROTECTED
     PUBLIC
       PROPERTY Nr : Byte READ LocalNr WRITE LocalNr;
       CONSTRUCTOR Create; OVERLOAD;
     END;

IMPLEMENTATION

FUNCTION TOberklasse.Create;
BEGIN
  INHERITED;
  ShowMessage(IntToStr(LocalNr)+' wurde übergeben.');
END;

FUNCTION TUnterklasse.Create;
BEGIN
  INHERITED;
  ShowMessage(IntToStr(LocalNr)+' wurde übergeben.');
END;

PROCEDURE TMainForm.StartKlasse;
VAR Oberklasse : TOberklasse;
BEGIN
  Oberklasse:=TOberklasse.Create;
  Oberklasse.Nr:=Random(256); {hier muss ich irgendwie die lokale Byte-Variable Nr an die Oberklasse übergeben}
END;
Ich hatte versucht, das über ein Property zu regeln, allerdings habe ich dann das Problem, dass ich dieses ja erst zuweisen kann, sobald die Klasse mit Create erstellt wurde. Ich will aber direkt in der Create-Funktion die Variable weiterverarbeiten.

Wenn ich das Property nach der Create-Funktion zuweise, kann ich es in Create ja nicht weiterverarbeiten...
Devid
  Mit Zitat antworten Zitat