Einzelnen Beitrag anzeigen

gargano

Registriert seit: 2. Okt 2006
76 Beiträge
 
Delphi 2007 Enterprise
 
#7

AW: Mehrere Klassen von einer Klasse ableiten

  Alt 28. Apr 2012, 08:29
Hallo zusammen,

danke für die Antwort und das Beispiel.
Allerdings hat dies einen Haken: Man muß beim Kompilieren den Klassentyp kennen , hier den TMainDevice oder TSubDevice.
Nur die Klassen sind im Hauptprogramm nicht bekannt beim Kompilieren.

Nochmal zur Erklärung :
Es werden Devicemodule entwickelt, die zur Laufzeit dynamisch als bpl geladen werden (Pro Devicemodule eine Bpl) . Die Klassen in dieser bpl sind aber dem Hauptprogramm zum Zeitpunkt der Kompilierung nicht bekannt.
Also angenommen, man definiert ein neues Devicemodule mit TXDevice als Klasse. TXDevice ist in einer bpl eingebunden.
Zur Laufzeit wird die Bpl dynamisch geladen.
Welche bpl geladen wird ist in einem Ascii File eingetragen, der die Namen der bpl's enthält.
Dies geschieht alles ohne das Hauptprogramm neu zu kompilieren.

Wie kann ich nun in dem untenstehenden Beispiel TXDevice erzeugen ?
Wie kann ich also eine Klasse erzeugen, wenn ich diese nicht kenne ?

Oder sollte man hier ganz anders vorgehen ?

In dem untenstehenden Beispiel wäre dies dann so,wenn man bei abstraken Methoden bleibt :
Delphi-Quellcode:
procedure Test2;
var
  MyDevice : TBaseDevice;
begin
// TMainDevice ist hier nicht bekannt, es kann auch TXDevice
// sein oder anders.

  MyDevice := TMainDevice.Create;
  try
    DoSomething( MyDevice ); // -> MsgBox mit 'MainDevice initialisiert'
  finally
    MyDevice.Free;
  end;
Gruß
Gargano
  Mit Zitat antworten Zitat