Grazie Tempodibasic per l'ulteriore contributo (non mi ero accorto che il 3d era andato avanti!).
Scrivo in italiano per intendersi (mi pare che tu sia un connazionale) e poi in inglese (traduttore permettendo) per tutti gli altri.
Il tuo codice รจ stringato e funziona benissimo: รจ la sintesi di molti altri che fanno un po' di tutto e anche loro lo fanno molto bene.
Purtroppo quando vado ad inserirlo nelle mie routine continuo ad ottenere comportamenti incomprensibili.
Una delle chiavi sta anche nel DOVE si inserisce il codice di controllo del mouse. Alle volte vedo che va inserito dove... non diresti di doverlo mettere. D'altra parte la programmazione non รจ totalmente "ad oggetti", un certo flusso sequenziale il codice, di per se, lo ha, e quindi il "dove" assume la sua importanza.
Ho individuato il dove. E ci ho messo un codice primitivo (nel senso che davvero รจ ben poco elegante) ma funziona. Perรฒ... perรฒ, a mio parere la funzione TIMER ha qualche problema e il programma ne risente. Le pause diventano troppo lunghe aggiungendo solo 0.3 secondi a TIMER. Se se ne aggiungono meno il doppio click non viene intercettato in nessun caso.
La funzione TIMER funziona e non rallenta l'applicazione se la tolgo dal DO-LOOP e mi limito ad intercettare il primo click e poi a verificare se il secondo avviene entro .3 secondi. Purtroppo il monitoraggio inizia, ovviamente, dopo il primo click per cui viene perso e davvero il programma agisce solo dopo aver verificato il secondo. In altre parole, se mi aspettassi un certo comportamento con il primo click (ad esempio saltare su un campo) in effetti dovrei aspettare il secondo per stabilire se davvero si trattava di un doppio click o piuttosto di due click singoli.
Ho scritto grandi quantitร di codice e fatto molta fatica a concepire un sistema completo... ma la gestione del secondo click sembra diventare una chimera. Che peccato!
Per esperienza so, ed immagino sappiamo bene tutti, che se dai all'utente la possibilitร di sbagliare ad inserisce un dato... quello sbaglierร di sicuro. Il doppio click mi serve all'interno di un sistema che gestisce fino allo sfinimento l'immissione dei dati. Ad esempio se voglio un numero a 5 cifre con due decimali mi deve impedire qualsiasi cosa tranne che scrivere fino a 5 cifre con 2 decimali (prevedendo l'uso del mouse, delle correzioni, del salto ad altro campo, e chi piรน ne ha piรน ne metta).
E' facile capire che il sistema non รจ semplicissimo e prevede molti casi nei quali la routine del doppio click s'inserisce male e con i risultati di ho parlato.
Continuerรฒ a provare... ci vorrร ancora molto tempo (accidenti!) e comunque faccio tesoro dei contributi che trovo in questi forum. Sono dietro a queste cose dai tempi del C64 e devo dire che questa comunitร รจ la migliore di sempre. Anche dal punto di vista umano: sempre disponibili, mai supponenti e naturalmente molto competenti. Se puoi, dillo in giro...
Oro provo a postare il pezzetto di codice che ho elaborato sulla base dei vostri contributi e a scrivere qualcosa in inglese...
oldMouse = mb
ct=0
ct=ct+1
oldMouse2 = mb2
plusClick%=ct
oldMouse2=0
First of all it seems important - or at least very useful - that the code is put in the form of a function (you are more sure not to make mistakes and the use is simple and lean).
I understand... it's not a nice code... it's primitive, inelegant maybe redundant but as I said the examples posted - lastly also that of TempodiBasic - in my application are not effective (and I do not understand because! alone work perfectly...).
The example I put works everywhere but has annoying delays that make it in fact not advisable.
In my humble opinion the TIMER function has some problems that in some cases that I can not say manifests itself. ...
An important thing is also the WHERE you insert the mouse control. The flowchart can be very complex and perhaps double-click control should not be put where you would think but elsewhere. On the other hand, QB is not a real object programming and its sequential execution and events can only partially be managed outside of this lienarity.
What a pity! I've written thousands of lines of code to create a development environment that can serve to produce applications of various kinds on the same platform... and (maybe) I'll have to do without the double click!
For a few more months (!!!) I will keep trying... a system there has to be...