![]() |
Timer Anhalten Während Fenster Verschoben Wird
Hallo liebe DP-Gemeinde,
ich suche nach dem Befehl, mit dem ich feststellen kann, ob ich gerade das Fenster meiner Anwendungen in der Caption-Leiste mit dem Mauszeiger festhalte, um das Fenster zu verschieben / zu bewegen. NICHT die Größe des Fensters zu ändern! Weil in meiner Anwendung eine TTimer-Komponente läuft, die Enabled:=True ist, springt mir das Fenster immer wieder in die alte Position zurück, wenn der Timer1.Timer gerade ausgelöst wird :( Deshalb versuche ich festzustellen, ob ich das Fenster gerade "festhalte" um den Timer1.Enabled in dieser Zeit auf False zusetzen. MfG, terence |
AW: Timer Anhalten Während Fenster Verschoben Wird
Hallo
vielleicht musst du den Timer gar nicht deaktivieren. wie wärs damit:
Code:
und im Timer
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin Inc(nClickCount) end; procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Dec(nClickCount) end;
Code:
Gruß
procedure TForm1.Timer1Timer(Sender: TObject);
begin if nClickCount = 0 then begin // Tu was end; end; Christian |
AW: Timer Anhalten Während Fenster Verschoben Wird
@CGEu
Werd' ich gleich ausprobieren! Danke... MfG, terence |
AW: Timer Anhalten Während Fenster Verschoben Wird
Funktioniert aber doch nur beim Klick auf die Form, nicht aber beim bewegen mit der Leiste, oder?
|
AW: Timer Anhalten Während Fenster Verschoben Wird
Start der Bewegung erkennen:
Delphi-Quellcode:
Ende der Bewegung erkennen
procedure WMEnterSizeMove(var Message: TMessage) ; message WM_ENTERSIZEMOVE;
procedure TForm1.WMEnterSizeMove(var Message: TMessage) ; begin Timer1.enabled:= false; end;
Delphi-Quellcode:
procedure WMExitSizeMove(var Message: TMessage) ; message WM_EXITSIZEMOVE;
procedure TForm1.WMExitSizeMove(var Message: TMessage) ; begin Timer1.enabled:= true; end; |
AW: Timer Anhalten Während Fenster Verschoben Wird
Habe ein kleines Test Beispiel geschrieben,
funktioniert nur bei Klick in die Form, nicht aber beim Klick auf die Caption des Fensters, um es zu bewegen :( Anhang: PStopTimerOnWindowMoving_2013_01_14.zip - 226.238 Bytes @bernerbaer Das sieht verdächtig nach Lösung meines Problems aus... Dankeschön :) MfG, terence |
AW: Timer Anhalten Während Fenster Verschoben Wird
Oder in Kombination mit dem anderen Vorschlag oben:
Delphi-Quellcode:
type
TForm1 = class(TForm) ... private { Private-Deklarationen } FMovingOrSizing: Boolean; procedure WMEnterSizeMove(var Message: TMessage) ; message WM_ENTERSIZEMOVE; procedure WMExitSizeMove(var Message: TMessage) ; message WM_EXITSIZEMOVE; ... end; procedure TForm1.Timer1Timer(Sender: TObject); begin if not FMovingOrSizing then (* Timercode ausführen *) end; procedure TForm1.WMEnterSizeMove(var Message: TMessage); begin FMovingOrSizing := true; end; procedure TForm1.WMExitSizeMove(var Message: TMessage); begin FMovingOrSizing := false; end; |
AW: Timer Anhalten Während Fenster Verschoben Wird
Funktioniert doch prima, habs nur mal so getestet
Delphi-Quellcode:
Gruß
type
TForm1 = class(TForm) private { Private-Deklarationen } procedure WMEnterSizeMove(var Message: TMessage) ; message WM_ENTERSIZEMOVE; procedure WMExitSizeMove(var Message: TMessage) ; message WM_EXITSIZEMOVE; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.WMEnterSizeMove(var Message: TMessage) ; begin Form1.Color:= clGreen; Form1.Caption:=('hey, wo willste denn mit mir hin?'); end; procedure TForm1.WMExitSizeMove(var Message: TMessage) ; begin Form1.Color:= clRed; Form1.Caption:=('nu gut..'); end; end. Paul |
AW: Timer Anhalten Während Fenster Verschoben Wird
Zitat:
|
AW: Timer Anhalten Während Fenster Verschoben Wird
So, jetzt funktioniert es,
dank bernerbaer. Danke Paulman, danke DeddyH. Anhang: PStopTimerOnWindowMoving_2013_01_14_okay.zip - 227.422 Bytes MfG, terence |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:53 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