Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Interface und Freigabe (https://www.delphipraxis.net/112040-interface-und-freigabe.html)

hanspeter 14. Apr 2008 09:51


Interface und Freigabe
 
Hallo,

ich habe ein Problem im Zusammenhang mit Interfaces, wo ich noch nicht so richtig weis, wo ich suchen soll.
Ich binde Module über das Hydra Plugin ein.

Den Modulemanager, welcher zentral den Zugriff verwaltet habe ich als Komponente (nicht visuell) auf einem
DataModule gesetzt.
Es funktioniert auch alles wie gewünscht.

Beim Beenden des Programms kommt eine Speicherschutzverletzung.
Das passiert beim Zuweisen von nil zu einem Interface tief im System

Delphi-Quellcode:
finaliziation
EHlpErrorHandler := nil;
Interessant ist. Verwende ich keine Komponente, sondern erzeuge ich in Oncreate den Manager selbst
Manager := Modulemanager.Create(nil);

und entsorge diesem im onDataDestroy des Datamodule mit Freeandnil(Manager), dann tritt der Fehler
nicht auf.

Da es wohl ein Timingproblem ist, wo liegt der Unterschied?

Gruß Peter

sirius 14. Apr 2008 12:41

Re: Interface und Freigabe
 
Ist dein Interface ein Feld eines Objektes, so wird dessen Zähler doch beim Zerstören des Objektes automatisch dekrementiert.

Aber ich sehe nicht durch, was EHlErrorHandle mit Manager zu tun hat :gruebel:

hanspeter 14. Apr 2008 12:49

Re: Interface und Freigabe
 
Zitat:

Zitat von sirius
Ist dein Interface ein Feld eines Objektes, so wird dessen Zähler doch beim Zerstören des Objektes automatisch dekrementiert.

Aber ich sehe nicht durch, was EHlErrorHandle mit Manager zu tun hat :gruebel:

Ich auch nicht.

An dieser Stelle tritt der Fehler auf.
Die Unit gehört zu dem Managertool.
Ist ein Kaufteil (Hydra 3.0)
Rätselhaft ist mir das der Fehler nur beim "automatischen Aufräumen" der Komponenten erfolgt, nicht
jedoch beim manuellen destroy. Ich will heute abend mal probieren, ob der Fehler auch auftritt wenn ich statt einen
Datamodule eine Form als Container verwende.

Peter


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz