Einzelnen Beitrag anzeigen

markusl

Registriert seit: 25. Apr 2006
Ort: Rotkreuz
21 Beiträge
 
Delphi 5 Enterprise
 
#4

Re: Klassennamen in String => Instanz erstellen

  Alt 20. Jun 2006, 19:16
Hallo zusammen,

hier mal ein Codeschnipsel unter der Annahme das in der Liste die Klassennamen enthalten sind und TControl eine gemeinsame Basisklasse ist.

Delphi-Quellcode:
// Definition der gemeinsamen Klasse
TControlClass = class of TControl;
...

procedure TForm1.xyz;
var
  ctrl : TControl;
begin
  for i := Low(Liste) to High(Liste) do
  begin
    ctrl := TControlClass(GetClass(Liste[i])).Create(self);
    with ctrl do
    begin
      // gemeinsame Aktionen etc.
      // ...
    end;
  end
end;

...

initialization
   // einmaliges Registrieren der potentiellen Klassen
   RegisterClasses([TEdit,TListBox,TLabel]);

HTH

Markus
  Mit Zitat antworten Zitat