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...