Einzelnen Beitrag anzeigen

_Sebastian_

Registriert seit: 22. Jul 2004
Ort: Lübeck
72 Beiträge
 
Delphi 2010 Professional
 
#4

AW: unterschiedliche Klassen variabel instanzieren

  Alt 21. Jul 2011, 09:20
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
  Mit Zitat antworten Zitat