Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Event Fenster verschieben? (https://www.delphipraxis.net/3709-event-fenster-verschieben.html)

Minz 26. Mär 2003 15:45


Event Fenster verschieben?
 
Hallo,

welches Event könnte ich benutzen, wenn ein Fenster verschoben wird.

TForm biete irgendwie kein onMove oder so.

Danke Minz

sakura 26. Mär 2003 15:59

Ähnlich der Lösung in folgenden Beitrag, allerdings musst Du auf SC_MOVE anstatt von SC_MINIMIZE, SC_CLOSE reagieren.

http://www.delphipraxis.net/internal...t=wmsyscommand

...:cat:...

Minz 26. Mär 2003 16:04

daaanke :mrgreen:

Minz 26. Mär 2003 16:22

das funzt net :(

Delphi-Quellcode:
procedure TForm1.WMSYSCOMMAND(var Msg: TMessage);
begin
  { WM_SYSCOMMAND abfangen }
  if Msg.Msg = WM_SYSCOMMAND then
  begin
    { wParam prüfen }
    case Msg.wParam of
      SC_MOVE:
      begin
        ShowMessage('Fenster wurde beweg');
        FensterPosX:=Form1.Left;
        FensterPosY:=Form1.Top;
        Inherited;
      end;
    else
      { alle anderen Fälle weiterreichen an die standard Fensterprozedur }
      Inherited;
    end;
  end;
end;
Hab fast alles übernommen, er zeigt weder die Message, noch belegt er die Variablen.

Minz

sakura 26. Mär 2003 17:04

Wäre auch zu schön gewesen. :mrgreen: Aber ich habe eine Lösung gefunden und(!) getestet.

Delphi-Quellcode:
  private
    { Private declarations }
    procedure WMMOVE(var Msg: TWMMove); message WM_MOVE;
  .....



procedure TForm1.WMMOVE(var Msg: TWMMove);
begin
  inherited;
  ShowMessage('g');
end;
...:cat:...

Minz 26. Mär 2003 17:08

super danke :mrgreen: habs auch getestet
und funzt...

wusste nicht, dass das Fenster am Anfang schon
gleich 3 mal bewegt wird :shock:

:hello: Minz

SebE 27. Nov 2004 12:00

Re: Event Fenster verschieben?
 
Hi, es funktioniert wirklich gut.
Gibt es auch ein Event das vor dem Verschieben gestartet wird?
Ich wollte, dass meine Form beim verschieben, wie bei WinAmp, an den Bildschirmrand gezogen wird.
Das geht auch, aber man sieht das die Form erst verschoben wird und danach erst meine Prozedure aufgerufen wird.

Muetze1 27. Nov 2004 12:03

Re: Event Fenster verschieben?
 
Moin!

Dann nimm die Botschaft WM_MOVING und darin kannst du das Rechteck deines Fenster auch anpassen und somit das schieben beschränken und auch diesen "Docking" Effekt einbauen.

MfG
Muetze1

mirage228 27. Nov 2004 12:07

Re: Event Fenster verschieben?
 
Zitat:

Zitat von SebE
Hi, es funktioniert wirklich gut.
Gibt es auch ein Event das vor dem Verschieben gestartet wird?
Ich wollte, dass meine Form beim verschieben, wie bei WinAmp, an den Bildschirmrand gezogen wird.
Das geht auch, aber man sieht das die Form erst verschoben wird und danach erst meine Prozedure aufgerufen wird.

Hi,

dafür gibt es ab Delphi 7 die Eigenschaft ScreenSnap von Deiner Form :)

mfG
mirage228

SebE 27. Nov 2004 17:39

Re: Event Fenster verschieben?
 
Echt geil, danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:02 Uhr.
Seite 1 von 2  1 2      

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