Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Ereignis nach vergrößern oder verschieben von Fenster (https://www.delphipraxis.net/196301-ereignis-nach-vergroessern-oder-verschieben-von-fenster.html)

norwegen60 9. Mai 2018 10:37

Ereignis nach vergrößern oder verschieben von Fenster
 
Hallo zusammen,

ich möchte nachdem ein Fenster verschoben oder in der Größe verändert wurde die Position wegspeichern. Aktuell mache ich das beim OnClose-Ereignis des Fensters.
Jetzt möchte ich, dass die Positionen direkt nach einer Änderung gespeichert werden.
  • OnResize funktioniert einwandfrei für Größenänderungen, nicht aber für Verschieben
  • OnCanResize funktioniert für beides aber mit dem Nachteile, dass das Ereignis beim Verschieben x mal ausgelöst wird
Gibt es einen einfachen Weg nur beim Loslassen des Fensters zu reagieren?

Danke
Gerd

Der schöne Günther 9. Mai 2018 10:47

AW: Ereignis nach vergrößern oder verschieben von Fenster
 
Du musst auf die Windows-Nachricht
Delphi-Quellcode:
WM_EXITSIZEMOVE
reagieren:

Delphi-Quellcode:
unit Unit20;

interface uses
   System.Classes,
   Winapi.Messages,
   Vcl.Controls, Vcl.Forms
;

type
   TForm1 = class(TForm)
   private
      procedure WmExitSizeMove(var msg: TWMNoParams); message WM_EXITSIZEMOVE;
   end;

var
   Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }


procedure TForm1.WmExitSizeMove(var msg: TWMNoParams);
begin
   Color := Random($FFFFFF);
   inherited;
end;

end.

PS: Das beinhaltet auch bereits Größenänderungen.

norwegen60 10. Mai 2018 11:24

AW: Ereignis nach vergrößern oder verschieben von Fenster
 
Super. Hat geklappt. Die Windows-Nachrichten vernachlässige ch immer wieder .


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