![]() |
WM_MOVING wird nicht ausgelöst
Hallo,
ich schreibe gerade ein kleines Tool um Bilder zu verkleinern. Gibts wie Sand am Meer, ich weiß, aber keines entspricht meinen Vorstellungen. Jedenfalls zeige ich in einem 2.ten Fenster Informationen zum Bild an. Wenn das Hauptfenster verschoben wird, möchte ich das Info-Fenster automatisch nachführen. (wie bei WinAmp) Den entsprechenden Code dazu gabs ja schon mal hier im Forum: ![]() Dazu versuche ich auf die WM_MOVING Message zu reagieren. Diese Message wird aber scheinbar nicht ausgelöst.
Delphi-Quellcode:
Die selbst definierten Messages funktionieren einwandfrei.
//Eigene Messages für Thread-Kommunikation
const WM_ABORT_JOB = WM_USER + 100; WM_PICDONE_MESSAGE = WM_USER + 200; WM_JOBDONE_MESSAGE = WM_USER + 201; type TForm1 = class(TForm) . . . procedure OnPICDONEMessage(var Msg: TMessage); message WM_PICDONE_MESSAGE; procedure OnJOBDONEMessage(var Msg: TMessage); message WM_JOBDONE_MESSAGE; procedure OnMoveMessage(var Msg: TMessage); message WM_MOVING; //wird nicht ausgelöst implementation procedure TForm1.OnMoveMessage(var Msg: TMessage); var LRect: PRect; begin inherited; LRect := Pointer(Msg.LParam); Form_picinfo.Left := LRect.Right; end; procedure TForm1.OnPICDONEMessage(var Msg: TMessage); begin Progressbar1.StepIt; Inc(PicsDone); Panel2.Caption:='Status: Bild '+IntToStr(PicsDone)+' von '+IntToStr(PicList.count)+'.'; end; procedure TForm1.OnJOBDONEMessage(var Msg: TMessage); begin showMessage('Umrechnung beendet.'); Converter.Suspend; Converter.Terminate; btn_cancel.Visible:=false; panel2.Visible:=false; btn_calculate.Visible:=true; panel1.Visible:=true; end; Nutze ich stat WM_MOVING die Message WM_MOVE funktionierts auch. :gruebel: :?: Kann mich jemand in die richtige richtung schubsen ? Gruß manuel |
Re: WM_MOVING wird nicht ausgelöst
Ich weiss jetzt keine Lösung, aber das Problem dürfte sein, dass während des Verschiebens, die Nachrichtenschleife nicht weiter abgearbeitet wird. Das sieht man daran, dass zum Beispiel TTimer in dieser Zeit auch nicht mehr reagieren.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:55 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