Ich denke hier ist einfach ein Cast angebracht:
Delphi-Quellcode:
TTest.eins(Hauptklasse: THaupsklasse)
var
test: string;
begin
//Hier wäre es gut wenn nicht nur die THauptklasse übergeben werden würde, sondern auch die Untergeordneten Klassen und man so über das o. g. Prinzip auf dessen Eigenschaften zugreifen könnte. Beispiel:
if Hauptklasse is TUnterklasseEins then
test := TUnterklasseEins(Hauptklasse).Eigenschaft1
else if Hauptklasse is TUnterklasseZwei then
test := TUnterklasseZwei(Hauptklasse).Eigenschaft1;
end;
Wie schon gesagt, wenn es sich im Prinzip um die selben Eigenschaften handelt, könnte man diese auch abstract in der Basisklasse deklarieren. Eine anderer Weg ist die gleichartigen Eigenschaften und Methoden zu einem Interface zusammen zu fassen und bei Bedarf abzufragen.