![]() |
nach AppHang vergisst PopupParent
Aktuell in XE, weiß nicht, ob es auch in XE 10.2 noch so ist, drum frag ich mal, ob jemand das kennt.
Also, wenn in Windows 7+ eine Anwendung kurz hängt, dann ersetzt Windows ja das Fenster. Dabei landet das aktive ChildWindow aber hinter dem Hauptfenster, obwohl es eigentlich wegen PopupParent=MainForm und pmExplicit immer davor sein sollte. Self.BringToFront, SetForegroundWindow und Dergleichen ... nichts hilft, um es anschließend wieder vor zu holen. Hat noch wer derartige Proleme mit MultiForm-Anwendungen? (bei uns sind MDI und mehrere freifliegende Einzelforms gemischt, welche aber eigentlich immer vor der MainForm liegen sollten) Jetzt ist mir aber aufgefallen, dass ein erneutes setzen des PopupParent das Problem löst. Das war der letzte Versuch, der endlich funktionierte
Delphi-Quellcode:
und reduziert auf nur noch diese eine Zeile
if Self.FormStyle <> fsMDIForm then begin
SetForegroundWindow(Self.Handle); Self.PopupParent := nil; Self.PopupParent := Application.MainForm; end else SetForegroundWindow(Application.MainFormHandle); Application.BringToFront; Self.BringToFront;
Delphi-Quellcode:
Self.PopupParent := Application.MainForm;
ging es immernoch. Da aber
Delphi-Quellcode:
würde es ja bedeuten, das irgendwo PopupParent/FPopupParent in der VCL richtig gelöscht würde
procedure TCustomForm.set_PopupParent(Value: TCustomForm);
begin if (Value <> FPopupParent) and ... then und nicht nur das Windows-Control (HWND) den Zustand vergisst, denn sonst würde ja eine erneute Zuweisung "garnichts" machen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz