![]() |
AW: Zweiten Klick von Doubleklick verhindern / ignorieren
Hmm..
eine Alternative: Das neue Formular NICHT im OnClick des Buttons erzeugen und Anzeigen! Im OnClick ein PostMessage mit einer eigenen Message-ID an das aktuelle Form-Handle schicken. Und dann erst im MessageHandler-Funktion das neue Formular erzeugen und anzeigen. Da die Message des PostMessage ans Ende der Messages gepackt wird und mit der Abarbeitung der vorherigen Messages weiter gemacht wird, werden zunächst noch alle anderen Messages (u.a. DblClick) abgearbeitet und dann erst deine Form-Message für das neue Formular. |
AW: Zweiten Klick von Doubleklick verhindern / ignorieren
Das ändert so ziemlich gar nichts.
Es geht sich ja nicht direkt um den Doppelklick ansich. Mit einer eigenen Windows-Nachricht verlagert sich das Problem nur. Trotzdem wird der zweite Klick auf dem neuen Formular ausgeführt. |
AW: Zweiten Klick von Doubleklick verhindern / ignorieren
Also einfach die Checkbox etwas anders platzieren im zweiten Formular, halte ich auch für die einfachste und beste Lösung. Besser als das Gefrickel mit Timern, Sleep und dem verbiegen von irgendwelchen Nachricht. Warum einfach, wenn es kompliziert geht. :roll:
|
AW: Zweiten Klick von Doubleklick verhindern / ignorieren
[QUOTE=himitsu;1454748]
Zitat:
Ich nutze das immer mit der aktuellen Mausposition wenn ich die Zeigerform ändern will, Windows das aber nicht gleich übernimmt. |
AW: Zweiten Klick von Doubleklick verhindern / ignorieren
Knall doch ein TApplicationEvents auf dein Hauptformular.
Dann kannst du die Zeit der Mausklicks auswerten: Wenn du in deiner Applikation nach einem Mauslinks-Klick auf ein Element während einer gewissen Zeit (im Beispiel unten 500ms) einen zweiten Mauslinks-Klick auf ein anderes Element verhindern willst, dann könntest du dies so tun:
Delphi-Quellcode:
Wenn du in deiner Applikation nur für deinen Spezialfall diese Klicks verhindern willst, dann verwende die Handles der beteiligten Elemente.
var lmt : Cardinal;
lhwnd : HWND; procedure TForm175.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); begin if Msg.message = WM_LBUTTONDOWN then begin if Msg.hwnd <> lhwnd then begin if Msg.time - lmt <= 500 then handled := true; end; lmt := Msg.time; lhwnd := Msg.hwnd; end; end; Und wenn du Mauslinks Klicks ignorieren willst, welche während der Verarbeitung von irgendwas getätigt worden sind, dann merkst du dir für dieses Intervall I die Start- und Endezeit (GetTickCount) und prüfst in ApplicationEvents1Message ob die Msg.time in I liegt. Wenn du unter Umständen generell alle Mausevents ignorieren willst, dann prüfe ob ( Msg.message >= WM_MOUSEFIRST ) and ( Msg.message <= WM_MOUSELAST ). ![]() |
AW: Zweiten Klick von Doubleklick verhindern / ignorieren
Hallo in die Runde!
Ich habe dieses Thema aufmerksam gelesen, -hochinteressant - aber richtig anwenden kann ich das bei meinem Problem dennoch nicht. Ich habe beginnendes Parkinson, ich kann es oftmals nicht verhindern, daß statt eines Klicks mit der linken Maustaste immer gleich zweie -manchmal auch dreie - generiert werden. das nervt inzwischen gewaltig. Ich hab es mit der Software "ClickFixSettings" versucht, aber damit werde ich auch nicht glücklich. gibt es denn nicht eine Einstellung im System, der diese Mehrfachklicks, wenn sie kurz hintereinander kommen, einfach ignoruieren ? Bei der Tastatur geht das doch auch. Da erscheint bei der Eingabe von uund nur und etc. ( in Schreibprogrammen macht das ja hervorragend die Autokorrektur) Gebt mir bitte mal einen Tipp, wo ich den Lötkolben an die Holzkiste ansetzen soll. beste Grüße noch auch dem Frankenland Klaus-Dieter |
AW: Zweiten Klick von Doubleklick verhindern / ignorieren
Hallo in die Runde!
Ich habe dieses Thema aufmerksam gelesen, -hochinteressant - aber richtig anwenden kann ich das bei meinem Problem dennoch nicht. Ich habe beginnendes Parkinson, ich kann es oftmals nicht verhindern, daß statt eines Klicks mit der linken Maustaste immer gleich zweie -manchmal auch dreie - generiert werden. das nervt inzwischen gewaltig. Ich hab es mit der Software "ClickFixSettings" versucht, aber damit werde ich auch nicht glücklich. gibt es denn nicht eine Einstellung im System, der diese Mehrfachklicks, wenn sie kurz hintereinander kommen, einfach ignoruieren ? Bei der Tastatur geht das doch auch. Da erscheint bei der Eingabe von uund nur und etc. ( in Schreibprogrammen macht das ja hervorragend die Autokorrektur) Gebt mir bitte mal einen Tipp, wo ich den Lötkolben an die Holzkiste ansetzen soll. beste Grüße noch auch dem Frankenland Klaus-Dieter P.S. gerade eben wieder passiert beim klicken auf "Antworten" :roll: Entschuldigung, aber du kannst nur alle 30 Sekunden einen Beitrag erstellen. Du musst noch 30 Sekunden warten, bevor du einen neuen Beitrag erstellen kannst. |
AW: Zweiten Klick von Doubleklick verhindern / ignorieren
Hallo Klaus-Dieter
Reicht es nicht, wenn Du in den Mausoptionen die Doppelklickgeschwindigkeit anpasst? Je nach Maus kannst Du auch die Tasten beliebig definieren/programmieren, so könntest Du allenfalls den Doppelklick allenfalls auf eine Taste legen, welche nur bewusst gedrückt werden kann. Gruss Roland |
AW: Zweiten Klick von Doubleklick verhindern / ignorieren
Zitat:
|
AW: Zweiten Klick von Doubleklick verhindern / ignorieren
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:41 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