Einzelnen Beitrag anzeigen

Benutzerbild von _frank_
_frank_

Registriert seit: 21. Feb 2003
Ort: Plauen / Bamberg
922 Beiträge
 
Delphi 3 Professional
 
#7

Re: Interface und Zugriffsverletzung

  Alt 22. Jul 2007, 16:07
Zitat von xaromz:
Hallo,
Hallo, und danke dir erstmal, funktioniert schonmal super
Zitat von xaromz:
mit _AddRef und _Release würde ich erst experimentieren, wenn ich mich gut mit Interfaces auskenne.
naja, kenn ich ja noch net aus damit, und hab ich ja auch nur, um die AVs wegzubekommen
Zitat von xaromz:
Ich habe Dein Beispiel aus dem ersten Beitrag mal etwas überarbeitet und folgende Änderungen vorgenommen:
  • Instanzen und Interfaces nicht mehr gemischt (IApp/TApp). Diese niemals mischen (siehe oben: man sollte genau wissen, was man tut)
  • Interfaces werden per const übergeben (dadurch wird die Referenzzählung nicht belastet)
  • DLL wird beim Programmstart geladen und beim Beenden entladen
  • IApp ist von Form1 entkoppelt
das mit dem mischen hab ich noch nicht ganz verstanden...du übergibst doch auch ein interface an die klasse TApp beim create (bzw. wird das memo-Objekt als Interface weitergegeben). TMemoWrapper wird wohl selbst auch als Interface interpretiert bzw. gibt dessen contructor das Interface zurück, was in der deklaration (class(TInterfacedObject, IEditor)) angegeben wurde?

zu dem entkoppeln...muss ich mal schauen, wie ich das dann mache wenn ich zugriff auf mehrere Objekte brauche, momentan ists ja zum test nur das memo...
Zitat von xaromz:
Du solltest nie eine DLL entladen, wenn Du in der Methode ein lokales Interface dieser DLL hast. Beim Beenden der Funktion sorgt die Compiler-Magic nämlich dafür, dass das Interface abgebaut wird. Wenn aber die DLL bereits entladen ist, dann gibt's eine AV.
und bei globalen/"form-gültigen" interface-Typen ist das nicht so? versteh ich nicht so ganz...naja Compiler-Magic

hab zumindest erstmal einen funktionierenden startpunkt und paar Infos, den rest muss ich ausprobieren bzw. schauen, was ich so dazu finde
werde mir den Source so nochmal in einer Ruhigen minute zu Gemüte führen, habs jetzt nur überflogen und die änderungen gesucht bzw. deine Punkte daran nachvollzogen (zumindest versucht)

wird eh erst eingebaut, wenn (endlich mal) die Background-Klasse für den DFM-Editor fertig ist und eingebaut ist...ist auch massig Arbeit, das alles anzupassen. wollte das nur im vorfeld schonmal bisschen probieren. Dem Interface wird dann diese Background-Klasse übergeben, welche sich per Event um das Treeview kümmert und das Plugin rührt dann nicht in der vcl (wenn auch indirekt) rum... maximal bei Menüeinträgen, aber da muss aich auch schauen, wie ich das mit der toolbar (besonders den Glyphs) mache.

Gruß Frank
  Mit Zitat antworten Zitat