Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Zweiten Klick von Doubleklick verhindern / ignorieren (https://www.delphipraxis.net/203055-zweiten-klick-von-doubleklick-verhindern-ignorieren.html)

HolgerX 9. Jan 2020 12:41

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.

hhcm 9. Jan 2020 12:58

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.

Luckie 9. Jan 2020 13:23

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:

TurboMagic 9. Jan 2020 20:38

AW: Zweiten Klick von Doubleklick verhindern / ignorieren
 
[QUOTE=himitsu;1454748]
Zitat:

Zitat von hhcm (Beitrag 1454717)
Es gibt auch die Möglichkeit die Maus zu verschieben.

z.B. kann man im Windows eine Funktion aktivieren, wo bei Dialogen die Maus direkt auf den Default-Button verschoben wird. (aber schnell wieder aus, denn das machte mich voll wuschig).

Und es gibt SetMousePos. Evtl. einfach temporär damit den Mauscursor irgendwo hin schicken.

Ich nutze das immer mit der aktuellen Mausposition wenn ich die Zeigerform ändern will, Windows das aber nicht gleich übernimmt.

Michael II 10. Jan 2020 08:37

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:
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;
Wenn du in deiner Applikation nur für deinen Spezialfall diese Klicks verhindern willst, dann verwende die Handles der beteiligten Elemente.

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 ).


Message Queues

klaudina 18. Sep 2021 17:52

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

klaudina 18. Sep 2021 17:57

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.

blawen 19. Sep 2021 09:39

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

Uwe Raabe 19. Sep 2021 10:14

AW: Zweiten Klick von Doubleklick verhindern / ignorieren
 
Zitat:

Zitat von blawen (Beitrag 1495095)
Reicht es nicht, wenn Du in den Mausoptionen die Doppelklickgeschwindigkeit anpasst?

Das verlängert nur die Zeit, in der zwei Klicks als Doppelklick interpretiert werden, verhindert aber keinen schnellen Doppelklick.

Aviator 19. Sep 2021 11:25

AW: Zweiten Klick von Doubleklick verhindern / ignorieren
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1495099)
Zitat:

Zitat von blawen (Beitrag 1495095)
Reicht es nicht, wenn Du in den Mausoptionen die Doppelklickgeschwindigkeit anpasst?

Das verlängert nur die Zeit, in der zwei Klicks als Doppelklick interpretiert werden, verhindert aber keinen schnellen Doppelklick.

Verhindern nicht. Aber das war ja auch nicht das Ziel. Es soll nur nicht so "schnell" passieren wenn er mal gerade "nicht die Kontrolle darüber hat". Und wenn man die Doppelklickgeschwindigkeit so schnell macht wie das System es zulässt, dann schafft man es so schon fast nicht mehr den Doppelklick auszuführen. Also sollte ihm das schon helfen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:02 Uhr.
Seite 3 von 4     123 4      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz