AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Zweiten Klick von Doubleklick verhindern / ignorieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zweiten Klick von Doubleklick verhindern / ignorieren

Offene Frage von "himitsu"
Ein Thema von Getox · begonnen am 8. Jan 2020 · letzter Beitrag vom 22. Sep 2021
Antwort Antwort
Seite 1 von 2  1 2      
hhcm

Registriert seit: 12. Feb 2006
Ort: Wegberg
310 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Zweiten Klick von Doubleklick verhindern / ignorieren

  Alt 9. Jan 2020, 08:37
Das Problem hatte ich auch schonmal. Nach Tagelanger Suche und rumprobieren habe ich kurzerhand dafür gesorgt, dass in dem zweiten Form kein Control "im Weg" ist. Bisschen an der Position des Fensters rumspielen, den Button leicht verschieben und die Checkbox ebenfalls. Alles nur ein bisschen, damit es keinem auffällt
Chris
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.689 Beiträge
 
Delphi 2007 Enterprise
 
#2

AW: Zweiten Klick von Doubleklick verhindern / ignorieren

  Alt 9. Jan 2020, 08:54
Das Problem hatte ich auch schonmal. Nach Tagelanger Suche und rumprobieren habe ich kurzerhand dafür gesorgt, dass in dem zweiten Form kein Control "im Weg" ist. Bisschen an der Position des Fensters rumspielen, den Button leicht verschieben und die Checkbox ebenfalls. Alles nur ein bisschen, damit es keinem auffällt
Das wäre jetzt auch meine Idee gewesen. Gehört, finde ich, durchaus auch zu gutem Interface-Design dazu. Wir haben oft Touchpanels für die Industrie im Einsatz. Die Visualisierungen auf diesen wird mit Tools erstellt, die so "komplizierte" Dinge wie Timer gar nicht erst kennen, und auch hier müssen wir davon ausgehen, dass potenzielle Bediener weitgehend ungeschult (oder auch einfach nur mal in Vertretung) damit arbeiten müssen. Da wäre es mitunter fatal, wenn durch zu leicht gemachte Fehl-Klicks einfach mal irgendwo eine Maschine gestartet würde oder so etwas.

Hier muss man allerdings auch den "großen" eine Teilschuld geben, insbesondere dank Mobile. Selbst in MS Programmen finde ich es teils nicht mehr ganz so eindeutig, wo nun ein Doppel- und wo ein Einfach-Klick gemacht werden muss. Da vieles immer mehr als hybride UI für Touch und Maus daher kommt, werden auch immer mehr Dinge zum Einfach-Klick bei denen es früher anders gewesen wäre. Ich mag so Paradigmen-Mischungen nicht.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Getox

Registriert seit: 28. Dez 2012
155 Beiträge
 
Delphi XE3 Professional
 
#3

AW: Zweiten Klick von Doubleklick verhindern / ignorieren

  Alt 9. Jan 2020, 09:15
Da dieser Button aussieht wie ein Icon (flat, weiß, kein Rahmem, nur Bild), habe ich es nun durch ein ADVOfficeImage ersetzt und das DblClick Event implementiert. Ich habe erst einmal eine sinnlose Variablenzuweisung da reingemacht. Was nun passiert: Das DblClick-Event wird garnicht erst angesprungen und die Checkbox wird dennoch aktiviert. Schade. Ich dachte schon ich hätte eine recht saubere Lösung gefunden.
Ist ein Nilpferd ein Pferd, das nicht vorhanden ist?
  Mit Zitat antworten Zitat
Getox

Registriert seit: 28. Dez 2012
155 Beiträge
 
Delphi XE3 Professional
 
#4

AW: Zweiten Klick von Doubleklick verhindern / ignorieren

  Alt 9. Jan 2020, 10:44
Ich habe jetzt schlussendlich doch die Anordnung der Komponenten geändert. Die Reihenfolge hat dadurch etwas an Logik verloren, aber damit müssen jetzt alle leben. Zumindest habe ich bei dieser schnellen Lösung das geringste Fehlerpotenzial.
Ist ein Nilpferd ein Pferd, das nicht vorhanden ist?
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.821 Beiträge
 
Delphi 12 Athens
 
#5

AW: Zweiten Klick von Doubleklick verhindern / ignorieren

  Alt 9. Jan 2020, 11:49
OnClick und OnDoubleClick auf einer Komponente geht nicht wirklich gut, da immer erst OnClick feuert.

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.557 Beiträge
 
Delphi 12 Athens
 
#6

AW: Zweiten Klick von Doubleklick verhindern / ignorieren

  Alt 9. Jan 2020, 11:51
Das Problem hatte ich auch schonmal. Nach Tagelanger Suche und rumprobieren habe ich kurzerhand dafür gesorgt, dass in dem zweiten Form kein Control "im Weg" ist. Bisschen an der Position des Fensters rumspielen, den Button leicht verschieben und die Checkbox ebenfalls. Alles nur ein bisschen, damit es keinem auffällt
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)

OnClick und OnDoubleClick auf einer Komponente geht nicht wirklich gut, da immer erst OnClick feuert.
Drum gibt es Komponenten anderer Hersteller, die das OnClick mit einem Timer verzögern und dann nur auslösen, wenn es keinen Doppelklick gab.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
989 Beiträge
 
Delphi 6 Professional
 
#7

AW: Zweiten Klick von Doubleklick verhindern / ignorieren

  Alt 9. Jan 2020, 12:41
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.
(Ja ich Verwende Delphi 6 Pro und will NICHT wechseln!)
  Mit Zitat antworten Zitat
hhcm

Registriert seit: 12. Feb 2006
Ort: Wegberg
310 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Zweiten Klick von Doubleklick verhindern / ignorieren

  Alt 9. Jan 2020, 12:58
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.
Chris
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

AW: Zweiten Klick von Doubleklick verhindern / ignorieren

  Alt 9. Jan 2020, 13:23
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.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
3.094 Beiträge
 
Delphi 12 Athens
 
#10

AW: Zweiten Klick von Doubleklick verhindern / ignorieren

  Alt 9. Jan 2020, 20:38
[QUOTE=himitsu;1454748]
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:59 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