Ich weiß jetzt nicht, ob es noch evtl. Erkenntnisgewinn bringt, aber ich erzeuge Komponenten nach Klassennamen in D2009 so:
Delphi-Quellcode:
type
Tod = class(TComponent)
...
end;
TodXxx = class(Tod)
...
end;
TodYyy = class(Tod)
...
end;
TodClass = class of Tod; // !!!
Irgendwo müssen die zu verwendenden Klassen registriert werden (z.B. im initialization-Teil einer
Unit - dann muss die
Unit in das Projekt eingebunden werden):
Delphi-Quellcode:
RegisterClasses([TodXxx]);
RegisterClasses([TodYyy]);
Erzeugen des Objektes dann über:
Delphi-Quellcode:
if (not Assigned(od)) and (ItemsClassName <> '') then
begin
FindClass(ItemsClassName);
od := TodClass(GetClass(ItemsClassName)).Create(Self);
end;