Hi!
Ich möchte ganz einfach eine Prozedur schreiben, die ein Objekt erstellt, dessen Typ der Prozedur übergeben wird. Ich stelle mir das bisher folgendermaßen vor:
Delphi-Quellcode:
procedure ErstelleObjekt(AKlasse: TClass);
var
NeuesObjekt: TControl;
begin
NeuesObjekt := AKlasse.Create;
end;
Aufruf:
Delphi-Quellcode:
...
begin
ErstelleObjekt(TLabel);
end;
Funktioniert aber nicht. Fehler ist "Incompatible types: 'TControl' and 'TObject' (in der Zeile "NeuesObjekt := AKlasse.Create;")
Ich weiß übrigens, dass die Objekte, die erstellt werden sollen, alles Typen sind, die von TControl erben.
Ähnliche Posts (z.B. "Wie Klassen (keine Instanz!) als Variable übergegben?") haben mir auch nicht weiter geholfen, steh irgendwie aufm Schlauch... Wäre sehr dankbar für eure Hilfe! (Ignoriert einfach mal, dass die erstellte Instanz momentan ohne Pointer im Nirvana landet)
Gruß,
Robert
EDIT: Muss natürlich auch "AKlasse.Create(Owner);" heißen...