Hi Choose,
ok das habe ich soweit geblickt. Um das Ganze noch einmal zu festigen:
Delphi-Quellcode:
TPersistent
|
TPDObject // Allgemeine Klasse, die die gameinsamen Eigenschaften aufnimmt
|
TPDAppObject // Klaase, die für diese Anwendung spezifische Eigenschaften beinhaltet
|
TPDAnsprechpartner // Spezielle Eigenschaften und Methoden für die Behandlung einer speziellen Tabelle
Wenn ich jetzt in meiner Anwendung mit der Tabelle 'Ansprechpartner' arbeiten will, geschieht folgendes:
Delphi-Quellcode:
// Interface über das das Arbeiten mit einer Klasse veröffentlicht wird(Schnittstelle)
function TPDInterface.GetPDObject(Index: Integer): TPDObject;
var
pdClass: TPDObjectClass;
begin // ergibt 'Ansprechpartner'
pdClass:= findClass('TPD'+ClassArray[TClassIndex(index)]);
// Array das Objekte vom Typ 'TPDObject speichert'
if FPDObjects[index]= NIL then FPDObjects[index]:= PDClass.Create(Database);
result:= FPDObjects[index];
Das ist damit ein Problem. Wie der Objekthierarchie zu entnehmen ist, ist 'TPDAnsprechpartner' ein spezialisierteres Objekt. Wie Speichere ich meine Speziellen Objekte? So geht es nicht! Und das Erzeugen klappt so auch nicht.
Hier sollte ja letztendlich stehen:
Delphi-Quellcode:
function TPDInterface.GetPDObject(Index: Integer): TPDObject;
var
pdClass: TPDObjectClass;
begin
pdClass:= findClass('TPD'+ClassArray[TClassIndex(index)]);
// TPDAnsprechpartner.Create(Database);
if FPDObjects[index]= NIL then FPDObjects[index]:= PDClass.Create(Database);
result:= FPDObjects[index];
So klappt die generische Erzeugung nicht.