|
corwin
|
Posté le 08 Fév 2009 à 18:52
|
|

Messages : 459
GCPoints : 63647
|
Bonjours alors voila j'ai tester plusieurs façon de reconnaitre un double clic (Timer(), user32) mais le résultat est presque identique, le programme ralenti trop. Es que quelqu'un aurait quelque chose pour que le programme de ralentisse pas ? Encore merci d'avance
|
|
Darktib
|
Posté le 08 Fév 2009 à 18:56
|
|

Messages : 4017
GCPoints : 347288
|
A mon avis faut utiliser user32.
C'est pour bluegui 2 ?
|
|
corwin
|
Posté le 08 Fév 2009 à 19:12
|
|

Messages : 459
GCPoints : 63647
|
J'ai déjà essayer avec user32, sa ralenti moins que le timer mais sa ralentit trop quand même
C'est pour le même projet que la question pour bluegui 2. Quand j'aurrai quelque chose de correcte je mettrait le projet sur le fofo.
|
|
Darktib
|
Posté le 08 Fév 2009 à 19:28
|
|

Messages : 4017
GCPoints : 347288
|
L'idéel serait un truc genre Qt, ce qqui n'est pas faisable en dbp...
Je pense que tu peux par exemple utilise Ctrl+clic ou Shift plus clic, ca sera beaucoup plus performant
|
|
corwin
|
Posté le 08 Fév 2009 à 19:31
|
|

Messages : 459
GCPoints : 63647
|
Oui bonne idée c'est se que je vais faire pour l'instant. Merci
|
|
softreaver
|
Posté le 08 Fév 2009 à 20:03
|
|

Messages : 89
GCPoints : 23521
|
Franchement je ne vois pas pourquoi ça ralentie tant que ça.
Essaye ce petit bout de code :
Code :
MouseTimer as integer
MouseClicked as boolean
DO
If mouseclick() = 0 then MouseClicked = 0
If mouseclick() = 1 and MouseClicked = 0
MouseClicked = 1
If Timer() - MouseTimer < 600
print "Double clique!"
MouseTimer = 0
Else
MouseTimer = Timer()
EndIf
EndIf
wait 1 `Pour éviter que le processeur ne s'éforce d'aller trop vite étant donné la petitesse du code.
LOOP
Il affiche "Double clique!" dès qu'il détecte un double clique, essaye de l'incorporer dans ton programme pour voir si ça ralenti, mais ça m'étonnerais.
Dernière édition le 08 Fév 2009 à 20:04
|
|
Darktib
|
Posté le 08 Fév 2009 à 20:19
|
|

Messages : 4017
GCPoints : 347288
|
J'aime bien le commentaire du wait 1 
En vérité le wait 1 ne fait strictement rien, faut mettre sleep 1, qui va permettre a d'autres applications de tourner.
|
|
corwin
|
Posté le 09 Fév 2009 à 11:08
|
|

Messages : 459
GCPoints : 63647
|
Encore merci, sa marche parfaitement. Je ne comprend toujours pas d'où le ralentissement a pu venir si se n'est du timer() pourtant j'utilise souvant le double clic, le mystère de DBP.
|
|
softreaver
|
Posté le 11 Fév 2009 à 18:24
|
|

Messages : 89
GCPoints : 23521
|
Darktib a écrit :En vérité le wait 1 ne fait strictement rien, faut mettre sleep 1, qui va permettre a d'autres applications de tourner.
Oui je n'ai jamais vraiment compris la différence entre les commande WAIT et SLEEP.
Mais si je comprend bien ton message, WAIT va carrément arrêter tous les programmes tandis que SLEEP se contentera d'arrêter seulement ton programme, c'est bien ça?
corwin a écrit :Encore merci, sa marche parfaitement. Je ne comprend toujours pas d'où le ralentissement a pu venir si se n'est du timer() pourtant j'utilise souvant le double clic, le mystère de DBP. 
No problemo
|
|
Syltech
|
Posté le 11 Fév 2009 à 19:10
|
|

Messages : 282
GCPoints : 71266
|
Le WAIT permet de mettre en pause le programme, le processeur est utilisé à 100%.
Le SLEEP permet de mettre en pause le programme et(normalement) libère le processeur.
Si je ne me trompe pas c'est ça !
Syltech
|
|
Darktib
|
Posté le 12 Fév 2009 à 18:39
|
|

Messages : 4017
GCPoints : 347288
|
C'est bien ca.
a noter : jamais un programme ne s'arrete qu'une milliseconde, mettre 'SLEEP 1' implique la majeure partie du temps d'attendre dans les 2 a 10 ms (question d'imprécision du system). Cette commande (sleep 1) veut juste signifier : "je m'arrete le minimum de temps possible"
|