Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.062 Beiträge
 
Delphi 12 Athens
 
#1

Wann wird fremde TForm ausgeblendet

  Alt 13. Jun 2024, 22:05
Moin Moin,

wie "elegant" mitbekommen, wann eine fremde TForm freigegeben ausgeblendet wird?
egal wie (VCL oder NonVCL)

Freigeben ist einfach.
* einfach ein WinWintrol dranhängen ... mein HWND verschwindet, wenn der Parent verschwindet
* oder ein TComponent mit Owner dranhängen ... wird Parent freigegeben, dann ich auch

Aber leider dauert es "ewig", vom Ausblenden, bis zur Freigabe, drum wollte ich nun versuchen, mich ans "Hide" zu hängen.

* TApplicationEvents.OnMessage auf WM_DESTROY bzw. WM_QUIT ... unschön, weil dann ja bei ALLEM mein "Hook" drin
* Form.OnHide oder OnClose überschreiben
* WndProc der Form hooken (SetWindowLong+GWL_WNDPROC -> CM_VISIBLECHANGED)
* VMT des DoHide überschreiben
* * gefallem mit diese Hooks eigentlich nicht wirklich, da ich dort ja prinzipiell ja die Komponente selbst "verändern" würde (ungünstig, wenn ich einen Fehler machen würde)


WM_SHOWWINDOW bei meinen WinControl ausprobiert, aber es wird nie aufgerufen ... somit leider nicht möglich dort das SW_PARENTCLOSING prüfen zu wollen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (13. Jun 2024 um 22:09 Uhr)
  Mit Zitat antworten Zitat