AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Focus on Close (MDI und PopupMode)

Ein Thema von himitsu · begonnen am 29. Jul 2025
 
Benutzerbild von himitsu
himitsu

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

Focus on Close (MDI und PopupMode)

  Alt Heute, 15:28
Moin Moin,

wir haben in Delphi 11 ein kleines Problem. (leider hat D12 dafür andere Bugs)

Wir öffnen von einem MDI-Fenster aus ein weiteres nicht-modales freies Fenster,
wenn das geschlossen wird, sollte der Fokus eigentlich wieder beim MDI landen (dem letzten aktiven Fenster, davor),

aber er wandert stattdessen zum externen Fenster.



In Delphi 12 funktioniert es (scheinbar),

aber vermutlich auch nur, weil zusätzlich/zufällig im Delphi 12 der PopupMode/PopupParent komplett im Arsch ist (garnicht funktioniert).
Bzw. ich hoffe es funktioniert, weil Emba bezüglich MDI viel repariert hat. (aber vermutlich geht es nur, weil PopupMode defekt ist ... wäre blöd, wenn wir den PopupMode-Fehler behoben bekommen)



PopupMode = explizit auf MainForm

also eigentlich sollten die externen Fenster immer über der MainForm liegen ... aber nee, mit Delphi 12 verschwinden die hinter der Main.
Außerdem wird die Main nicht mit in den Vordergrund geholt (vor andere Programme), wenn man ein anderes/freies Fenster aktiviert/focusiert.


im Anhang:
* MDICloseTest11.* ist das Delphi 11-Projekt/Kompilat
* MDICloseTest12.* ist das Delphi 12-Projekt/Kompilat

* [MDI] erzeugt ein MDI-Fenster (eingedockt)
* [Form] erzeugt eine normale Form (ausgedockt)
* [Modal] erzeugt eine normale modale Form
* [F2Test], [⋯] und [F2]-Taste im Edit öffnen eine kleine Form, welche ins Edit schreiben möchte, wenn [OK]
* [ESC]-Taste, [X] oder die Buttons schließen die kleine Form wieder



Test:
* [Form]
* [MDI]
* [F2Test], [⋯] oder [F2]-Taste im Edit
* [Cancel] oder [X] ... oder auch [OK]

der Fokus sollte nun eigentlich wieder beim MDI liegen (bei Delphi 11 nicht der Fall)

Bemerkt wird auch, dass beim EnumThreadWindows (also die Reihefolge für Micorosoft)
die Form1 und MainForm andersrum liegen (ja, Windows kennt global die MDI nicht und "aktiv" ist statt der MDI-Form immer die MainForm)

Außerdem lässt sich in Delphi 10 das freie Fenster hinder die MainForm schieben, obwohl es immer drüber liegen sollte (wegen zugewiesen PopupMode).
Bzw. liegt eine andere Anwendung über der MainForm und es wird ein freies Fenster aktiviert, dann bleibt die Main versteckt. (in Delphi 11 und davor kommt sie mit hoch)



Delphi 12.2 (29.0.53571.9782)
Angehängte Dateien
Dateityp: 7z MDICloseTest.7z (1,14 MB, 1x aufgerufen)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (Heute um 15:37 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:48 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