Eigentlich sollte es funktionieren, tut es aber nicht.
Hier nochmal ein gekürztes Beispiel.
Es gibt dann viele unterschiedliche WorkClass, die sich bei einem zentralen Handler registrieren und von diesen bei Bedarf instanziert werden.
Hat wer noch einen Tip?
Delphi-Quellcode:
unit Unit1;
interface
uses
Winapi.Windows,
Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics,
Vcl.Controls,
Vcl.Forms,
Vcl.Dialogs,
Vcl.StdCtrls;
type
TForm1 =
class(TForm)
btn1: TButton;
procedure btn1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
(*************** Beispiel Code *****************)
type
TBasisClass =
class
ID :
String;
Constructor Create;
virtual;
end;
type
TGruppenClass =
class(TBasisClass)
const GruppenID='
KA';
Constructor Create;
virtual;
end;
type
TWorkerClass =
class(TGruppenClass)
Constructor Create;
end;
type
TBasisClassClass =
class of TBasisClass;
implementation
{$R *.dfm}
{ TWorkerClass }
var
Instance : TBasisClassClass;
Work: TBasisClass;
procedure Register(Classe : TBasisClassClass);
begin
Instance := Classe;
Work := Instance.Create;
if Work.ID = '
123'
then
Messagebeep(1);
end;
constructor TWorkerClass.Create;
begin
ID := '
123';
end;
procedure TForm1.btn1Click(Sender: TObject);
begin
Register(TWorkerClass);
end;
{ TGruppenClass }
constructor TGruppenClass.Create;
begin
inherited;
end;
{ TBasisClass }
constructor TBasisClass.Create;
begin
inherited;
end;
end.