![]() |
WM_ENTERSIZEMOVE / WM_EXITSIZEMOVE mit TFrame?
Hallo zusammen,
Ich benötige eine Benachrichtigung wenn ein TFrame in der Grösse verändert wird. Und zwar den Beginn und das Ende. In einem Form kann man das so machen:
Delphi-Quellcode:
In einem TFrame scheint dies nicht zu funktionieren? Gibt es da eine andere Möglichkeit?
protected
procedure WMEnterSizeMove(var Message: TMessage); message WM_ENTERSIZEMOVE; procedure WMExitSizeMove(var Message: TMessage); message WM_EXITSIZEMOVE; procedure TFormMain.WMEnterSizeMove(var Message: TMessage); begin Logger.Info('enter_size_moved'); end; procedure TFormMain.WMExitSizeMove(var Message: TMessage); begin Logger.Info('exit_size_moved'); end; Ich kann auch nicht das ParentForm überwachen. Weil der Resize kann auch via Splitter und anderen Controls verursacht werden. Ohne das die ParentForm die Grösse ändert. |
AW: WM_ENTERSIZEMOVE / WM_EXITSIZEMOVE mit TFrame?
Das Konzept kann bei Frames nicht funktionieren (wie auch nicht bei anderen Controls auf dem Form), da diese innerhalb der VCL z.B. über Align oder Anchors ihre Größe anpassen. Dabei sind keine Windows-Messages mehr beteiligt.
Man bedenke nur den Fall, wenn der Frame Align = alNone hat und beim Ändern des Forms seine Größe beibehält. Also rein vom Windows-Gesichtspunkt hat das Resize des Forms überhaupt nichts mit dem Resize der enthaltenen Frames oder Controls zu tun. Übrigens kann das Resize auch durch eine Änderung des Scalings ausgelöst werden. |
AW: WM_ENTERSIZEMOVE / WM_EXITSIZEMOVE mit TFrame?
Es gibt auch irgendeine virtuelle Methode, die kann man für das Resize/Align überschreiben (innerhalb der VCL)
und kann/darf dort auch "manuell" positionieren. (sollte bei dieser/diesen Komponente(n) aber auch das Align auf alCustom stehen) |
AW: WM_ENTERSIZEMOVE / WM_EXITSIZEMOVE mit TFrame?
Zitat:
Bei Forms gibt es das und indirekt auch beim Splitter, wobei letzterer das eine indirekt über den OnCanResize-Event (man muss sich halt den Status merken) und das andere über den OnMoved-Event zur Verfügung stellt. Wenn du das umsetzen willst, wirst du wohl nicht über eine Kombination von "in das Form einhängen" und "in den Splitter einhängen" drum herum kommen. |
AW: WM_ENTERSIZEMOVE / WM_EXITSIZEMOVE mit TFrame?
Zitat:
Danke |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 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