Moin. Ich weiß nicht es was für dich ist aber ich habe mir mal ein Konstrukt gebaut wo ich dynamisch, variabel gewählte Klasse, erzeugt habe.
Ich habe das so gelöst. (etwas einfacher hier)
Die Klasse TAction bekommt eine Klassenreferenz übergeben und erzeugt sich daraus ein Objekt.
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TBase =
class(TObject)
public
procedure Action;
virtual;
abstract;
end;
TSpecial1 =
class(TBase)
public
procedure Action;
override;
end;
TSpecial2 =
class(TBase)
public
procedure Action;
override;
end;
TBaseClass =
class of TBase;
TAction =
class(TObject)
public
constructor Create(aClass: TBaseClass);
end;
TForm1 =
class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TSpecial1.Action;
begin
showmessage('
Action 1');
end;
procedure TSpecial2.Action;
begin
showmessage('
Action 2');
end;
constructor TAction.Create(aClass: TBaseClass);
var c : TBase;
begin
c := aClass.Create;
c.Action;
c.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
TAction.Create(TSpecial1);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
TAction.Create(TSpecial2);
end;
end.
gruß
Sebastian