Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

evitare l'evento click se premo doppio click

73 views
Skip to first unread message

mario rossi

unread,
Apr 27, 2023, 3:35:36 AM4/27/23
to
buongiorno a tutti,

ho notato che quando premo doppio click con il mouse su una casella di testo viene generato anche l'evento click, è possibile evitare di attivare l'evento click quando viene premuto il doppio click?

Grazie.

@Alex

unread,
Apr 27, 2023, 4:35:20 AM4/27/23
to
No non è possibile perchè l'Evento Doppio Click in realtà viene scatenato SOLO dal 2° Click se fatto entro tot tempo(ms), ma il 1° Click genera a prescindere l'Evento, Access è stupido e non sa se tu ne fai 1 o 2...
Quindi la risposta è NO, se devi inibire l'esecuzione delle azioni nell'evento devi fare degli accrocchi, ma non sono basic...

@Alex

Michele

unread,
Apr 27, 2023, 11:18:03 AM4/27/23
to
come farei io...
al click assegno a una variabile nel form il valore 1 e faccio partire il timer con timerinterval = 1000
al doppio click assegno alla stessa variabile il valore 0.
all'evento timer se la variabile è 1 eseguo il codice che avrei scritto nell'evento click, altrimenti niente, e alla fine ovviamente timerinterval = 0

BFS

unread,
Apr 27, 2023, 11:52:51 AM4/27/23
to
+1

BFS

mario rossi

unread,
Apr 27, 2023, 12:20:16 PM4/27/23
to
Tutto chiaro, grazie a tutti per i chiarimenti.

RobertoA

unread,
Apr 28, 2023, 4:28:22 AM4/28/23
to
Il 27/04/2023 17:18, Michele ha scritto:
L'unico piccolo problema di questo metodo e' che bisogna ogni volta
attendere almeno 1 sec per sapere se e' stato fatto un click

Prendo spunto dalla proposta sopra per chiedere se qualcuno sa come fare
per 'leggere' il tempo max necessario tra primo e secondo click perche'
sia considerato un doppio-click
Supponendo fossero 200 milliSecondi, si potrebbe fare la routine sopra
con un adeguato margine, ma piu' rapida possibile, ad esempio 250
millisecondi
Credo sia una proprieta' impostabile sulle caratteristiche del mouse, e
quindi non un tempo fisso
Quindi la domanda e': come fare per 'leggere' dal sistema operativo
corrente il tempo necessario tra due click perche' sia considerato un
doppio-click?

BFS

unread,
Apr 28, 2023, 5:26:49 AM4/28/23
to
Private Declare Function GetDoubleClickTime Lib "user32" () As Long


Private Sub Comando0_Click()
MsgBox GetDoubleClickTime
End Sub


risultato in millisecondi
BFS

@Alex

unread,
Apr 28, 2023, 6:48:23 AM4/28/23
to
Si questo ti aiuta a tarare quel "Timer" per minimizzare .... è pur vero che prevedere il futuro non è possibile e l'unico modo è quello di Sospendere l'esecuzione ed aspettare il MINIMO TEMPO del DoppioClick...

@Alex

BFS

unread,
Apr 28, 2023, 7:31:19 AM4/28/23
to
scusa @Alex non ho capito.
ti riferisci al fatto che se l'utente fa un click e un secondo entro 100
millisecondi, poi cmq ne deve aspettare 400? (nel caso di mouse settato
a 500ms)?


BFS




RobertoA

unread,
Apr 28, 2023, 9:55:56 AM4/28/23
to
Il 28/04/2023 12:48, @Alex ha scritto:
Supponendo che un doppio-click sia una sequenza di due click del mouse,
il secondo ad una distanza temporale dal primo di 1 secondo, e
supponendo che su questo tempo ci sia un minimo di tolleranza diciamo
100mSec prima e dopo, una sequenza di click (singolo) la puoi fare
solamente se attendi tra l'uno ed il successivo almeno il 'tempo max'
del doppio-click che e' di 1.1 sec.
Per questo parlavo del fatto che bisogna attendere almeno il 'tempo max'
di un doppio-click (nell'esempio sopra 1.1 sec) prima di poter dire
"c'e' stato un click singolo"

Conoscere il 'tempo min' ( i 0,9 secondi dell'esempio sopra) non ha
nessuna importanza relativamente al problema riportato inizialmente, che
e' appunto di distinguere se quello che sta arrivando e' un click
singolo o un doppio-click

RobertoA

unread,
Apr 28, 2023, 9:58:24 AM4/28/23
to
Se e' gia' arrivato il secondo click, quello e' un doppio-click
Non credo il sistema operativo attenda prima di scatenare l'evento

@Alex

unread,
Apr 28, 2023, 10:30:43 AM4/28/23
to
> scusa @Alex non ho capito.
> ti riferisci al fatto che se l'utente fa un click e un secondo entro 100
> millisecondi, poi cmq ne deve aspettare 400? (nel caso di mouse settato
> a 500ms)?
>
>
> BFS

No no, dicevo che il sistema non può sapere se l'utente farà o meno il secondo Click... quindi è ovvio che l'unico modo per inibire il Click sia attendere l'Expired del DBL_Click

@Alex

@Alex

unread,
Apr 28, 2023, 10:33:45 AM4/28/23
to
> >
> Se e' gia' arrivato il secondo click, quello e' un doppio-click
> Non credo il sistema operativo attenda prima di scatenare l'evento

Il DBL_CLICK è un evento separato dal CLICK, quindi non si scatenano 2 Click all'interno del tempo restituito dall'API che dice BSF.
Si sviluppano 2 CLICK se il tempo intercorso tra il primo ed il secondo è superiore ai quei 500ms, almeno così dovrebbe essere.

@Alex
0 new messages