Slider & Clavier [Résolu]

Signaler
Messages postés
17
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
14 novembre 2007
-
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
-
Hello
Sur l’événement scroll d’un slider est il possible lors de l’utilisation des touches flèche droite, flèche gauche de respecter les valeurs Max et Min de mon slider ?
Merci
Hanns

7 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
39
pour plus de détails, disons que ce n'est pas "ce qui touche une action sur le clavier" mais "ce qui interagit avec ton contrôle par le clavier"

la différence est dans le fait que presque tous les contrôles sont basés sur la même structure d'évènements, et que tu n'as la main que sur UNE INSTANCE D'UN CONTRÔLE à la fois.

selon la manière dont ce contrôle est fait, le fait de gérer (ou de sous-gérer si on peut dire) un évènement peut où non avoir une répercution sur les autres évènements.

exemple de l'objet Form, le fait de mettre Cancel à True dans le Unload_Query, tu ne passes pas par le UnLoad. il y a une répercution.
ici (slider) le fait de ne pas renvoyer d'évènement (ou plutôt de ne pas faire d'action lorsque l'évènement a été relevé) si on a atteint les valeurs min ou max n'influe pas sur le fait quel l'évènement Scroll aura tout de même lieu

bienvenue

ps : pense au bouton Réponse Acceptée
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
39
Private Sub 
Form_Load()

    Slider1.Min = -90
    Slider1.Max = 90
    Slider1.Value = 0
End Sub

Private Sub Slider1_KeyDown(KeyCode As Integer, Shift As Integer)
'   on va concerver l'ancienne valeur pour éviter les
doublons
    Static OldValue As Integer
    Static NewValue As Integer
    
    OldValue = NewValue
    NewValue = Slider1.Value
    
    If Not (OldValue = NewValue) Then
        Debug.Print Timer & "   " & Slider1.Value
    'ELSE
    '   MÊME VALEUR, ON NE
FAIT RIEN
    End If
End Sub




++

PCPT  [AFCK]
Messages postés
17
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
14 novembre 2007

Merci Monsieur PCPT
Cela n'a par changé La valeur Max ou Min est toujours envoyé tant que je maintien la pression sur la touche !
Je penses pas qu’il y avait des modifications a apporter sur votre code tous me semble ok, non du contrôle ex…
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
39
"non du controle ex" ? na moi pas comprendre....

sinon j'ai testé avant de poster, un seul envoi effectué arrivé au min et/ou au max, essaye dans un nouveau projet au cas où tu aurais un bout de code qui altèrerait celui-ci

<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
17
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
14 novembre 2007

Hello
Voila un test simple !
Sur ma form j’ai posé les contrôles suivants :
AfUrbiSock  nommé AfUrbiSock1
2 textbox nommés TextBoxIp et TextBoxPort
Un bouton nommé Command1
Un slider nommé Slider1

Le code :

Private Sub Command1_Click()
       If AfUrbiSock1.State = sckConnected Then
            AfUrbiSock1.SocketClose
       Else
            AfUrbiSock1.RemoteHost = TextBoxIp.Text
            AfUrbiSock1.RemotePort = CLng(TextBoxPort.Text)
            AfUrbiSock1.SocketConnect
        End If
End Sub


Private Sub Form_Load()
    AfUrbiSock1.Mode = [Urbi Client]
           
    Slider1.Min = -90
    Slider1.Max = 90
    Slider1.Value = 0
End Sub
Private Sub Slider1_KeyDown(KeyCode As Integer, Shift As Integer)
'   on va concerver l'ancienne valeur pour éviter les doublons
    Static OldValue As Integer
    Static NewValue As Integer
   
    OldValue = NewValue
    NewValue = Slider1.Value
   
    If Not (OldValue = NewValue) Then
        Debug.Print Timer & "   " & Slider1.Value
    'ELSE
    '   MÊME VALEUR, ON NE FAIT RIEN
    End If
End Sub


Private Sub Slider1_Scroll()
    AfUrbiSock1.ValueMessage = "test" & "=" & Slider1.Value & ";"
    AfUrbiSock1.SocketSendData
End Sub

Je teste avec le serveur (groupe) que vous avec fait Gpe_CliServ.vbg
http://www.vbfrance.com/codes/URBI-SOCK-CONTROLE-SERVEUR-MULTICLIENTS-AVANCE-PERMETTANT-COMMUNICATION_44626.aspx 
Plusieurs envois du min et/ou du max sont envoyés tant que je maintien la pression sur la touche quoi!
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
39
parce que tu utilises 2 évènements simultanés!

tu demandes comment gérer au keydown mais tu envoies au scroll?!!!!
pas très logique tu ne crois pas?

Private Sub Command1_Click()
       If AfUrbiSock1.State = sckConnected
Then
            AfUrbiSock1.SocketClose
       Else
            AfUrbiSock1.RemoteHost = TextBoxIp.Text
            AfUrbiSock1.RemotePort = CLng(TextBoxPort.Text)
            AfUrbiSock1.SocketConnect
        End If
End Sub

Private Sub Form_Load()
    AfUrbiSock1.Mode = [Urbi Client]
           
    Slider1.Min = -90
    Slider1.Max = 90
    Slider1.Value = 0
End Sub
Private Sub Slider1_KeyDown(KeyCode As Integer, Shift As Integer)
'   on va concerver l'ancienne valeur pour éviter les doubles
envois
    Static OldValue As Integer
    Static NewValue As Integer
   
    OldValue = NewValue
    NewValue = Slider1.Value
   
    If Not (OldValue = NewValue) Then
        AfUrbiSock1.ValueMessage = "test=" & NewValue & ";"
        AfUrbiSock1.SocketSendData
    End If
End Sub

++
PCPT  [AFCK]
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
17
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
14 novembre 2007

Je voulais gérer depuis le scroll pour que l’action de mon Aibo se produise quand je bouge la sourie.
Je pensais que ce qui touchait une action sur le clavier devait être paramétré dans l’événement KeyDown, KeyPress ou KeyUp.
Votre code agit directement sur le slider, je ne l’avais pas compris DSL.
Merci pour ces explications.
J’ai installé vb il y a 4 jours je découvre le monde de la prog.Je comprends mieux les heures que peut y passer mon père.  <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>