![]() |
Delphi-Version: XE2
mousemove mousedown triggern
Hallo,
ich möchte für eine Touchanwendung beim click / mit dem Finger berühren den Button visuell anzeigen lassen wie mit der Maus. Ich habe gelesen, dass es mit triggen von mousemove zu mousedown funktionieren soll. Ich habe leider keine Idee wie ich da vorgehen kann. Wie sieht dass im source code genau aus ? Gruß Pet |
AW: mousemove mousedown triggern
Hallo-
Eine Suche nach ![]() |
AW: mousemove mousedown triggern
das habe ich schon gelesen.
Wie triggere ich onMouseMove manuell onMouseDown ? Oder gibt es eine andere Lösung clicks auf einen Touch visuell darzustellen ? |
AW: mousemove mousedown triggern
meinst du evtl so etwas?
Delphi-Quellcode:
gefunden bei :
procedure TForm1.Button1Click(Sender: TObject) ;
var Pt : TPoint; begin Application.ProcessMessages; {Get the point in the center of Button 2} Pt.x := Button2.Left + (Button2.Width div 2) ; Pt.y := Button2.Top + (Button2.Height div 2) ; {Convert Pt to screen coordinates and Mickeys} Pt := ClientToScreen(Pt) ; Pt.x := Round(Pt.x * (65535 / Screen.Width)) ; Pt.y := Round(Pt.y * (65535 / Screen.Height)) ; {Simulate the mouse move} Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_MOVE, Pt.x, Pt.y, 0, 0) ; ![]() |
AW: mousemove mousedown triggern
Zitat:
Delphi-Quellcode:
procedure TForm2.Panel1MouseDown(..);
begin // Was beim Drücken halt passieren soll end; procedure TForm2.Panel1MouseMove(..); begin // Multitouch-Anomalie: MouseMove kommt zuerst, mouseDown erst, wenn sich der // Zeiger danach bewegt. Und für diese Bewegung muss er erst eine bestimmte // Schwelle überschreiten. Deshalb jetzt manuell einen MouseDown erzeugen if ssTouch in Shift then Panel1MouseDown(Sender, TMouseButton.mbLeft, Shift, X, Y); end; |
AW: mousemove mousedown triggern
Hallo,
Danke erst einmal für die schnellen Antworten. Genau so hatte ich mir das gedacht, aber leider bringt es auf einem Touch nicht das gewünschte Ergebnis. Wenn man mit dem Finger auf ainen Button clickt, dann soll man es sehen. Gruß Pet |
AW: mousemove mousedown triggern
Hallo-
Ich habe nochmal etwas geschaut, es geht noch viel einfacher:
Delphi-Quellcode:
Dann können wir uns auch das manuelle "Triggern" ;-) des onMouseDown sparen. Es war einfach nur die blöde Handballen-Erkennung die dachte, wir würden hier nur versehentlich draufpatschen.
procedure TForm20.FormCreate(Sender: TObject);
const acceptPalms: Boolean = True; var errorCode: Cardinal; begin if acceptPalms and not RegisterTouchWindow(Button1.Handle, TWF_WANTPALM) then begin errorCode := GetLastError(); ShowMessage(SysErrorMessage(errorCode) + '(' + errorCode.ToString() + ')'); end; end; Siehe auch: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:51 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-2025 by Thomas Breitkreuz