Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - Form nach Verschieben reagiert nicht
SixpointedStarsoft - Do 07.07.11 22:40
Titel: Form nach Verschieben reagiert nicht
Hallo zusammen
Ich habe ein Problem damit, dass nach folgendem Aufruf, mit dem ich meine Form verschiebe:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| WM_LBUTTONDOWN: begin case FWMHitResult of HTCAPTION: begin TForm(FSkinedForm).Perform(WM_SYSCOMMAND,SC_MOVE or 1,0); end; end;
end; |
ich zuerst wieder auf die Form klicken muss, um die Form wieder auf Mausereignisse anprechbar zu machen. Oder anders ausgedrückt wenn ich dann auf ein Butten klicke spricht es nicht an, erst beim zweiten Mal.
Weiss jemand was da passiert und wie ich das verändern kann?
Habe mit SetFocus, ReleaseCapture probiert, geht aber nicht.
Mit lieben Grüssen
Moderiert von
Narses: Topic aus Multimedia / Grafik verschoben am Fr 08.07.2011 um 01:16
Delete - Fr 08.07.11 00:58
Delphi-Quelltext
1: 2: 3: 4:
| WM_LBUTTONDOWN: begin MoveWindowWithMouse(Dlg, lParam); end; |
Delphi-Quelltext
1: 2: 3: 4: 5:
| procedure MoveWindowWithMouse(Handle: THandle; lParam: LPARAM); begin SetCursor(LoadCursor(0, IDC_SIZEALL)); SendMessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, lParam); end; |
So funktioniert es bei einem NonVCL Dialog.
SixpointedStarsoft - Fr 08.07.11 14:55
Hallo Michael
Danke für diese Variante. Leider gibt es das gleiche Phänomen. Verschieben geht gut, sobald ich den Mausbutton loslasse und anschliessend etwas auf der Form anklicken will geschieht nichts, erst beim zweiten Klick reagiert das Fenster wieder normal.
SixpointedStarsoft - Fr 08.07.11 15:15
Hallo Michael
Habe den Fehler gefunden.
Nach dem Bearbeiten, besser gesagt nach dem reagiern auf WM_LBUTTENDOWN, darf ich nicht die alte Windowprocedure aufrufen. Dann funktionierts super.
Danke aber für Deine Variante, die mir neue Dinge ermöglicht.
Liebe Grüsse
Christoph
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!