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/)
-   -   MDI Child Top-Position forcieren (https://www.delphipraxis.net/160690-mdi-child-top-position-forcieren.html)

ConnorMcLeod 26. Mai 2011 10:37

MDI Child Top-Position forcieren
 
Wieder mal das leidige Thema MDI...
Ich muss ein MDI-Child maximiert erzeugen. Im Laufe der Bedienung kann der Benutzer das Child auch mal normalisiert darstellen (durch Klick auf den Button links neben [X]). Dann verkleinert sich das Child. Dabei möchte ich eine gewisse Top-Position bestimmen, weil das MDI-System das Fenster automatisch an eine Position stellt, die mir nicht passt; wie geht das?
Wie immer: danke im Voraus für alles, was da kommt ;-)

ConnorMcLeod 31. Mai 2011 19:32

AW: MDI Child Top-Position forcieren
 
Wie befürchtet: keine Ideen.
In Beantwortung meiner eigenen Frage, für wen auch immer es interessiert:
Die Zuweisung von *Top* greift erst, wenn das Fenster *WindowState = wsMaximized* hat.
Die Zuweisung an *Top* bewirkt aber, dass der Zustand *wsMaximized* verlorengeht.

Lösung:
Delphi-Quellcode:
SendMessage(lfrmMdiChild.Handle, WM_SETREDRAW, 0, 0);
lfrmMdiChild.FormStyle  := fsMDIChild;
lfrmMdiChild.WindowState := wsMaximized;
lfrmMdiChild.Top        := 2;
lfrmMdiChild.WindowState := wsMaximized;
SendMessage(lfrmMdiChild.Handle, WM_SETREDRAW, 1, 0);
RedrawWindow(Application.MainForm.Handle, nil, 0, RDW_FRAME or RDW_INVALIDATE or RDW_ALLCHILDREN or RDW_NOINTERNALPAINT);


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:05 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