Fonction de la souris

Résolu
antoine_ferard Messages postés 222 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 18 février 2011 - 22 mars 2007 à 15:29
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 23 mars 2007 à 23:02
comment désactiver les boutons de la souris pendant un temps de traitement ?... en effet, lorsque l'utilisateur clique, ça fait une erreur d'affichage, donc comment désactiver les boutons, merci

24 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
23 mars 2007 à 10:53
Si les traitements sont toujours longs ou si tu sais d'avance lesquels le seront, peut-être pourrais-tu afficher une Form, genre MsgBox ou Splash Screen qui prendrait le contrôle de l'écran le temps du calcul ... (?)

MPi
3
bigbigmoumou Messages postés 18 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 22 mars 2007
22 mars 2007 à 15:36
Bonjour,

Pas beaucoup d'explications sur ton application...

Je suppose que tu clics quelque part pour lancer le traitement ?
Si oui, au lieu de désactiver la souris, tu peux avant de commencer ton traitement, désactiver (Enabled) les boutons qu'il ne faut pas utiliser tant que le traitement n'est pas fini.
A la fin de traitement, tu n'oublis pas de réactiver ce qui a été désactivé pour le prochain traitement.

A+
0
antoine_ferard Messages postés 222 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 18 février 2011 3
22 mars 2007 à 15:43
en cliquant à n'importe quel endroit de la page, celà provoque un problème d'affichage : les menus de l'appli deviennent blancs durant le chargement de la grille...
0
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
22 mars 2007 à 15:44
Ce que tu peut faire , c'est mettre ca

Screen.MousePointer = 11 (souris en mode sablier)

pendant ton traitement et le remettre en mormal apres ce dernier

Screen. MousePointer = 0

Ensuite, dans tes evenement click tu testes Screen.MousePointer

Je sais pas si ca repond a ta question car on sait pas si tu as quelques choses dans les evenement click
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
antoine_ferard Messages postés 222 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 18 février 2011 3
22 mars 2007 à 15:57
merci Nicko, j'avais déjà mis le pointer en sablier mais j'ai tjrs le même pb, en fait je clike sur un bouton pour remplir une FLEXGRID avec des enregistrements de ma table access et durant se traitement, j'aimerais que l'utilisateur ne puisse pas cliquer, en gros que le clik de la souris soit désactivé, car durant ce traitement, n'importe où l'utilisateur clik, celà créé un pb d'affichage tel que l'arrêt de ma progressbar et mes menus en blanc...
imagine que le traitement dure 10sec : je pense que l'utilisateur impatient cliquera un peu partout sur la page, et de ce fait, celà provoquera des erreurs d'affichage durant le traitement, pas très esthétique...
bref, j'ai pa encore trouvé la solution mais merci de l'attention...
0
bigbigmoumou Messages postés 18 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 22 mars 2007
22 mars 2007 à 16:01
"en cliquant à n'importe quel endroit de la page, celà provoque un problème d'affichage : les menus de l'appli deviennent blancs durant le chargement de la grille... "

As tu le même problème lorsque tu déplace juste la fenêtre ?
Et lorsque tu as ce problème, si tu laisse tranquille l'ordi, tout redevient normal OU non si tu laisses le temps au traitelment de se terminer ?

Si oui, je pencherais pour ton traitement qui prend beaucoup de resource (Peut être un énorme tableau à initialiser par exemple)
Si tel était le cas, l'ordi à un travail à finir avant de pouvoir faire autre chose, le rafraichissement graphique n'était pas prioritaire il ne s'effectue plus.

Si tu nous en disait un peu plus sur ton application, ce quel fait si elle traite beaucoup de données, si il y a des affichages, des timers...
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
22 mars 2007 à 16:02
11 ? vbHourglass
0 ? vbDefault

les constantes sont nos amies

antoine_ferard, en quelle techno es-tu ?
tu parles de pages... on dirait pas du VB6.

d'accord avec mes deux camarades... désactives ton bouton, ou ta Form, carrément

en gros :

Private Sub MonBouton1_Click()
   Me.Enabled = False
   Screen.MousePointer = vbHourglass
   DoEvents
   
   '# Ici ton traitement...
   
   Screen.MousePointer = vbDefault
   Me.Enabled = True
End Sub , ----
By Renfield

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
22 mars 2007 à 16:03
Tu peux directement cacher la souris ou encore voir pour annuler les clicks

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
22 mars 2007 à 16:04
ah, et des Doevents de temps a autre redonnerai la main a Windows pour lui permettre de redessiner tes menus etc afin d'eviter qu'il ne deviennent blanc pendant que tu monopolise le CPU

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
22 mars 2007 à 16:05
http://www.codyx.org/snippet_masquer-curseur-souris_275.aspx#943



'URL:  http://www.allapi.net/


Private Declare Function 
ShowCursor 
Lib 
"user32" 
(
ByVal 
bShow 
As Long

As Long


Private Sub 
Form_Load()


    'Hide the  cursor

    ShowCursor 0
    'Wait 10 seconds 
    t = Timer
    Do: DoEvents: Loop Until Timer > t + 10
    'Show the  cursor
    ShowCursor 1
End Sub

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
22 mars 2007 à 16:08
Perso, je ne suis pas pour cacher la suoris, j'aime pas brusquer l'utilisateur, ses settings, etc....
si le chargement est long ou que ton soft plante, l'user est dans de beaux draps ^^

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
22 mars 2007 à 16:10
C'est ça qui est marrant!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
antoine_ferard Messages postés 222 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 18 février 2011 3
22 mars 2007 à 16:16
renfield>
il s'agit d'un développement vb6...
je pense qu'en effet il y a beaucoup de données à traiter et que celà monopolise la mémoire (table clients)...
cacher la souris ne sera pas une solution...
mais dites moi.... il n'éxiste pas, "tout simplement", une fonction permettant de désactiver le clik de la souris...? :/
0
bigbigmoumou Messages postés 18 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 22 mars 2007
22 mars 2007 à 16:17
Il reste les touches du clavier...
Comment ça, vous ne prévoyer pas les touches quand vous programmer ?

Lol

Patienter un peu pour la réponse, le temps de rebooté entre chaque nouvel essais...

A+

PS: Drikce 06, ça sert à quoi le bouton "Réponse acceptée" ?
0
bigbigmoumou Messages postés 18 Date d'inscription jeudi 20 mars 2003 Statut Membre Dernière intervention 22 mars 2007
22 mars 2007 à 16:27
Si le problème provient bien du grand nombre de données à traiter et que tu vous déjà des effets négatifs, faut revoir ton programme globalement.

En effet, le faite de désactiver la souris ne changera rien puisque ce n'est visiblement pas la souris qui est en cause. Au mieux, celà cachera à l'utilisateur un problème récurant de ton programme, au pire il se dira que l'ordi est complètement planté et le redemarrera en perdant sans doutes des données... Ce n'est pas la solution.

La conséquence que tu constates est l'affichage qui ne peut plus être réfraichit.
Mais qu'est ce qui provoque cette impossibilité de rafraichissement ?
Une fois que tu auras trouvés, tu auras identifier d'où viens le problème et là tu pourras essayer d'agir.

Et si tu ne règles pas ce problème à la base, dès que tu aura encore un peu plus de données, celà plantera complètement et ton logiciel ne pourra plus t'être utile...

Là ça devient pas facile à t'aider puisque celà dépend du type données, de ton traitement, du nombres de données...
Si tu arrives à résumer un peu tout celà et à expliquer ce à quoi tu veux arriver et comment tu le fait actuellement, on pourra peut être te donner des pistes...
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
22 mars 2007 à 16:29
Hé bien quand tu poses une question sur le forum, pour valider la réponse qui a répondu à ton problème tu as un petit bouton réponse accépté sur chaque post que seul l'auteur du post voit! D'où les post en vers sur les topics et le petit v vert pour signaler que le problème a été résolu avec tel ou tel réponse. J'espère que j'ai été assez claire et que je ne me suis pas embrouiilé dans les explications.

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
22 mars 2007 à 16:31
Je suppose que le problème c'est: le programme ne répond non? Alors l'utilisateur click sur annuler et il mouline de nouveau! Tous les prog ont ce défaut même microsoft à ce problème, donc à mon avis il n'y a pas d'autre solution que d'attendre la fin du traitemnt!

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
22 mars 2007 à 16:57
Oui et puis t'en qu'on y est, remplace ton flexgrid par un Datagrid (ou mieux : un SCGrid, téléchargeable sur le net) si tu dois le charger à partir d'un recordset : le temps de chargement sera bien plus court !!!
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
23 mars 2007 à 08:36
NB Drikce06 :

ShowCursor 0

ne garantie nullement que ton curseur sera masqué.... cf doc de cette API

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
23 mars 2007 à 08:40
Re: 2359 Renfield , personnellement je n'ai jamais utilisé cette API, c'est juste le résultat d'une petit rechnerche que j'ai faite pour voir régler le problème de =739514 antoine_ferard.

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
Rejoignez-nous