Das Problem ist, dass dabei das Neuerstellen der Menüs aufgerufen wird. Und das geht dann maximiert offenbar schief.
Man kann das spezielle Problem patchen indem man die Methode TMenuItem.MenuChanged aus
Vcl.Menus auf eine eigene Methode umleitet und dort die Originalmethode mit False als Parameter aufruft. Die Frage ist, was das für Folgen hat, wenn man das Neuerstellen der Menüs deaktiviert.
Das Problem ist, dass
MDI als Technik seit fast 30 Jahren nicht mehr empfohlen und seit 20 Jahren als veraltet markiert ist und es von Microsoft keine Bugfixes oder Unterstützung dafür mehr gibt. Unter Windows 10 haben die Probleme noch einmal deutlich zugenommen.
Abseits der Umleitung virtueller Methoden gibt es nur die Billigvariante, die dir sicher auch schon eingefallen ist:
Delphi-Quellcode:
WindowState := wsNormal;
FItem.Caption := 'Neuer Text';
WindowState := wsMaximized;
Allgemein macht es natürlich Sinn ein Ticket bei Embarcadero aufzumachen. Ich würde allerdings aufgrund des Warnhinweises in der Doku vermuten, dass du damit wenig erreichen wirst:
Zitat:
The Per Monitor V2 (and many of the other High-DPI features in Windows) have no support for the
MDI child windows model. Microsoft has stopped addressing bugs reported for
MDI, and we recommend migrating to a different multi-windows model (multiple floating windows, docked panes, tabbed windows, etc.)
Quelle
Persönlich kann ich nur dazu raten
MDI so schnell wie möglich zu entfernen bevor es noch massivere Probleme damit gibt oder Microsoft es am Ende wirklich ganz entfernt...