![]() |
Event bei "Restore Down" oder "Restore Up"
Hallo,
ich habe folgendes Problem: Nach der Skalierung meines Forms muss ich ein bestimmtes Event aufrufen. Dies lässt sich auch grundsätzlich über die Message WM_EXITSIZEMOVE realisieren. Allerdings ist WM_EXITSIZEMOVE wirkungslos, wenn ich ein maximiertes Form mittels "Restore Down" oder oder ein minimiertes Form mit "Restore Up" skaliere. Kennt jemand eine Lösung (ein Event oder ähnliches) oder einen Work-Around? Besten Dank im Vorraus Tommy |
AW: Event bei "Restore Down" oder "Restore Up"
Was meinst du denn genau mit "Skalierung"? Nicht etwa lediglich eine Größenänderung?
|
AW: Event bei "Restore Down" oder "Restore Up"
Genau. Letztendlich meine ich eine Größenänderung. Also wenn ich meine Anwendung minimiert oder maximiert habe
und mittels der Menu-Buttons verkleinern/restore down oder vergrößern/restore up mein Form als "Restored" anzeige. Wenn ich manuell - mittels Maus an den Formular-Rändern - meine Größe ändere, so funktioniert das WM_EXITSIZEMOVE Event. Ich hoffe, dass du nun verstehtst was ich meine? VG |
AW: Event bei "Restore Down" oder "Restore Up"
Wie wäre es ganz simpel mit OnResize?
|
AW: Event bei "Restore Down" oder "Restore Up"
Danke für den Vorschlag. Allerdings will ich das aus Performannce-Gründen vermeiden.
Das schöne am WM_EXITSIZEMOVE Event ist, dass es erst nach der Größenänderung aufgerufen wird. Das klappt für mich grundsätzlich auch sehr gut, jedoch nicht in den beiden Fällen von verkleinern/restore down und vergrößern/restore up. |
AW: Event bei "Restore Down" oder "Restore Up"
Deaktiviere OnResize doch einfach in WM_ENTERSIZEMOVE. Dann bekommst du WM_EXITSIZEMOVE weiter mit wie bisher und kannst es dort wieder aktivieren, aber wenn die Größenänderung durch andere externe Einflüsse (Wiederherstellen usw., externe Tools zur Fensterorganisation, ...) passiert ist, landest du in OnResize.
|
AW: Event bei "Restore Down" oder "Restore Up"
Auf WM_SIZE reagieren (wenn SIZE_MAXIMIZED/SIZE_MINIMIZED/SIZE_RESTORED)
Ist OnResize ein WM_SIZE oder WM_SIZING? Wenn Zweites: dann einfach immer auf WM_SIZE reagieren. Und wenn Erstes (vermutlich ja), dann .... Es gibt auch WM_ENTERSIZEMOVE. :wink: Wenn OnResize zwischen WM_ENTERSIZEMOVE und WM_EXITSIZEMOVE, dann Dieses ignorieren und auf's Ende warten. :stupid: |
AW: Event bei "Restore Down" oder "Restore Up"
Danke euch beiden. Das klingt grundsätzlich nach guten Vorschlägen. Allerdings habe ich da wohl einen spezielleren Fall.
Ich beschreibe nun mal mein Vorhaben: Ich möchte eine Punktewolke von Daten mittels OpenGL darstellen. Wenn ich skaliere möchte ich einen runtergesampleten Datensatz darstellen, um eine flüssige Darstellung während des Resize zu erhalten. Wenn der Resize abgeschlossen ist soll der Datensatz wieder in voller Auflösung dargestellt werden. Zur Darstellung der runtergesampleten Punktewolke - während des Resize-Vorganges - muss allerdings immer OnResize ausgeführt werden. :wink: Ich hoffe ihr könnt euch nun mein Vorhaben besser vorstellen. :-) |
AW: Event bei "Restore Down" oder "Restore Up"
also bei WM_ENTERSIZEMOVE runterskalieren
WM_EXITSIZEMOVE wieder vollständig, sowie auch bei WM_SIZE+SIZE_MAXIMIZED/SIZE_RESTORED das vollstänige aktualisieren :?: |
AW: Event bei "Restore Down" oder "Restore Up"
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:27 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