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 nach AppHang vergisst PopupParent (https://www.delphipraxis.net/196675-nach-apphang-vergisst-popupparent.html)

himitsu 8. Jun 2018 11:42

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:
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;
und reduziert auf nur noch diese eine Zeile
Delphi-Quellcode:
Self.PopupParent := Application.MainForm;

ging es immernoch.

Da aber
Delphi-Quellcode:
procedure TCustomForm.set_PopupParent(Value: TCustomForm);
begin
  if (Value <> FPopupParent) and ... then
würde es ja bedeuten, das irgendwo PopupParent/FPopupParent in der VCL richtig gelöscht würde
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 04:45 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