Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Handle einer Komponente in Destroy(); nicht mehr verfügbar
NerdIII - Di 07.11.06 21:46
Titel: Handle einer Komponente in Destroy(); nicht mehr verfügbar
Hi Leute, ich bin in eine Zwickmühle mit dem Zerstören eines Fensters geraten. (Delphi7) Scheinbar setzt die VCL die Eigenschaft Parent eines Controls auf nil, bevor dieses gelöscht wird. Ich habe aber eine Control, die sich mit ihrem Handle bei einer anderen Komponente abmelden muss, wenn sie zerstört wird.
Beim Zugriff auf das Handle wird dann gesagt die Komponente besäße 'kein übergeordnetes Fenster'.
Ich habe einen Renderer (nicht visuelle Komponente) die auf mehreren Viewports (TCustomControl) zeichnet. Dafür verwendet sie u.a. deren Handles.
Der Ablauf sieht so aus:
Fenster wird zerstört
Viewport wird zerstört
Viewport signalisiert Renderer, das die Verbindung (Kontext) gelößt werden kann
Renderer ruft Handle des Viewports ab [ReleaseDC(Viewport.Handle, DC)]
VCL braucht das 'übergeordnete Fenster'
CRASH
Wer sich gut mit der VCL auskennt kann mir vielleicht sagen, wie ich das Problem umgehen soll. (Handle zwischenspeichern, Handle über DC ermitteln, ...)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!