Einzelnen Beitrag anzeigen

tgoessi

Registriert seit: 31. Mai 2005
34 Beiträge
 
Delphi 5 Enterprise
 
#6

Re: Welches Objekt für COM-Server mit AktivX-Schnittstelle v

  Alt 1. Jun 2005, 09:02
Danke, so funktioniert es mal richtig.
Nun hab ich aber das Problem, dass ich nicht mehr auf die Funkion SetConfig zugreifen kann, mit der ich das Objekt mit den Konfigurationsdaten befülle, da diese von intern befüllt und daher nicht über ein Interface verfügt.

Ich versuchte es mal so:
FSetupData : TMyCollection;
FISetupData : IMyCollection;

und Create
FISetupData := Create.MyCollection;

aber ich kann dann
FSetupData := FISetupData as TMyCollection nicht zuweisen.

und
FISetupData.SetConfig kennt der Compiter logischerweise nicht.
Im Prinzip müsste ich ja nur den Pointer des MyCollection Objekts an FSetupData zuweisen, aber da spielt mir die Compilereinschränkung einen Streich.

Natürlich könnte ich auch ein Interface für diese Funktion definieren, aber dies macht keinen Sinn, da die Funktion nicht von Extern aufgerufen werden soll.

Tom



Das ist soweit alles richtig.
Optional könnte man die Collection erst bei 1. Aufruf von GetMyCollection erzeugt und befüllen; muss man aber nicht.
Wichtig ist auch, dass die Variable FSetupData ein Interfacepointer ist, da nur so die Referenzzählung richtig funkt.
Delphi-Quellcode:
FSetupData : TMycollection; // Falsch, kein Interfacepointer
FSetupData : IMyCollection; // Richtig
Zitat von tgoessi:
Der Grund. In der Collection werden Konfigurationsdaten gespeichert, die beim Erzeugen des Hauptobjekts da hineingeschrieben werden. Wird die Collection nach einem Zugriff gelöscht, sind die Daten auch weg.

Liege ich hier falsch oder funktioniert das dynamisch, d.h. bei jedem Aufruf der Collection müssen die Konfigurationsdaten neu geladen werden?
  Mit Zitat antworten Zitat