Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.132 Beiträge
 
Delphi 12 Athens
 
#16

AW: Mehrere Klassen von einer Klasse ableiten

  Alt 28. Apr 2012, 16:13
Gut, das sieht OK aus.

Delphi-Quellcode:
interface

....

type
  TBaseClass = class(...
    ...
  end;

...

procedure Register;

implementation

procedure Register;
begin
  RegisterClass(TBaseClass);
end;

...
Und nun diese Unit in ein Package rein, welches du im Delphi registrierst.
(irgend wo her muß Delphi, bzw. der Formdesigner, diese Klasse auch kennen)


Ach ja, FindClass geht über eine Liste, welche mit RegisterClass befüllt wurde.
Ist die Klasse dort nicht drinn, dann kann sie nicht gefunden werden, weder von dir (FindClass), noch von dem VCL-Form-Editor.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  MyDevice := FindClass('TDeviceModule1') as TBaseClass;
  if not Assigned(MyDevice) then
    raise Exception.Create('TDeviceModule1 wurde nicht gefunden');
  TBaseClass(MyDevice).Create(Self);
end;
Genauso wie TBaseClass für den Form-Editor registriert sein muß, muß auch TDeviceModule1 dort registriert sein, wenn du es über FindClass finden/erstellen willst.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  MyClass: TBaseClassClass;
  MyDevice: TBaseClass;
begin
  MyClass := TDeviceModule1;
  MyDevice := MyClass.Create(Self);
  MyDevice.DoSomethingImportant;
  MyDevice.Free;
end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (28. Apr 2012 um 16:21 Uhr)
  Mit Zitat antworten Zitat