Forum: Object-Pascal / Delphi-Language
Delphi
by Patrick,
1. Mär 2010
"GetClass" ist nötig. Das ist eine Anforderung. Ich lese einen String, der mein Klassenname ist. Ich wollte keine manuelle "case of" "GetClass" schreiben. Da ich dann aber an den TPersistent gebunden bin funktioniert das ganze nicht. Also werde ich mir doch ein eigene GetClass schreiben.
Aber Danke!
Forum: Object-Pascal / Delphi-Language
Delphi
by Patrick,
1. Mär 2010
Negativ
Hierbei würde nur der Konstruktor von TTransporter ausgeführt werden, nicht aber der von TSchweineTransporter.
"Würde", weil ich "GetClass" verwende, was mir ein "TPersistent" zurück gibt. Müsste dann auch funktionieren, tut es aber leider nicht.
(Ableitung Schaut folgendermaßen aus: TObject -> TPersistent -> TTransporter -> TSchweineTransporter)
Forum: Object-Pascal / Delphi-Language
Delphi
by Patrick,
1. Mär 2010
Klassenrefenzen benutze ich ja quasi schon.
tmp : TPersistentClass;
tmp := GetClass(EntryValue);
Nur wie bringe ich ihn den Konstruktor der Klasse TSchweineTransporter auszufühen und mir ein solches Objekt zu erzeugen?
wenn ich tmp.Create; ausführe, dann führt er nur den Konstruktor der Klasse TPersistent aus, was ja eigentlich auch logisch ist. Aber irgendwie ist doch da noch mein...
Forum: Object-Pascal / Delphi-Language
Delphi
by Patrick,
1. Mär 2010
An das Factory-Pattern habe ich auch gedacht. Aber dann hätte ja die Factory auch über das Wissen verfügen müssen, wie Entschieden wird welche konkrete Klasse im Endeffekt erstellt werden muss.
Ich habe nun eine Methode gefunden, wie nur die eine abstrakte Klasse das wissen muss. Und in meinem Fall muss die abstrakte Klasse nicht alle Ableitungen kennen. Ich arbeite mit "GetClass(string)"
...
Forum: Object-Pascal / Delphi-Language
Delphi
by Patrick,
1. Mär 2010
Hallo,
ich habe eine abstrakte Klasse, die im Konstruktor ermittelt um welche Konkrete Klasse es sich handelt. Kann ich das irgendwie bewerkstelligen, dass sie sich nun selbst in die konkrete Klasse konvertiert? Der konstruierenden Instanz sollte es eigentlich egal sein, welche konkrete Klasse erzeugt wird. Somit muss es diese selbst bewerkstelligen.
Lange Rede kurzer Sinn, ich will einfach...