VB6 - Problème condition
Fenril'Skanenruf
-
Fenril' -
Fenril' -
Bonjour,
J'ai un problème avec un programme en vb6.
Dans ce programme, j'ai un combobox nommé cmbChoix,
J'ai ajouté à ce combobox par code plusieurs items.
A côté de cela j'ai 3 scrollbars notés HScroll1, HScroll2 et HScroll 3 (désolé pour la convention hongroise)
Les 3 scrollbars génèrent une couleur RGB (respectivement pour chacun, Red, Green, Blue)
Je voudrais dans une textbox faire apparaître plusieurs code RGB comem ceci :
[CHATBOX]
R=255
G=255
B=255
[CHATTEXTBOX]
R=255
G=255
B=255
[BACKGROUND]
R=255
G=255
B=255
[SPELLLIST]
R=255
G=255
B=255
[WHOLIST]
R=255
G=255
B=255
[NEWCHAR]
R=255
G=255
B=255
Et plutôt que de créer 3 scrollbars pour chacun, j'ai inseré le fameux combobox qui soit disant permet le choix entre les différentes couleurs ([CHATBOX], [CHATTEXTBOX] etc...). Théoriquement, la personne choisit la couleur qu'elle veut via le combobox et ensuite via un système de variable (une variable par couleur : Red de CHATBOX, Green de CHATBOX etc...), les 3 uniques scrollbars écrivent dans les variables.
Voila le code, vous comprendrez peut-être mieux.
Quant à la fonction couleur, c'est pour autre chose (le test graphique via forecolor d'un label de la couleur RGB définie par les 3 scrollbars).
Quand je lance le programme, il n'y à pas d'erreur Pop-up mais il ne se passe rien lors du 'change()' et du 'scroll()' des scrollbars. Savez-vous comment faire fonctionner cette condition ?
Merci beaucoup d'avance à toutes vos réponses.
Cordialement, Fenril'Skanenruf.
J'ai un problème avec un programme en vb6.
Dans ce programme, j'ai un combobox nommé cmbChoix,
J'ai ajouté à ce combobox par code plusieurs items.
A côté de cela j'ai 3 scrollbars notés HScroll1, HScroll2 et HScroll 3 (désolé pour la convention hongroise)
Les 3 scrollbars génèrent une couleur RGB (respectivement pour chacun, Red, Green, Blue)
Je voudrais dans une textbox faire apparaître plusieurs code RGB comem ceci :
[CHATBOX]
R=255
G=255
B=255
[CHATTEXTBOX]
R=255
G=255
B=255
[BACKGROUND]
R=255
G=255
B=255
[SPELLLIST]
R=255
G=255
B=255
[WHOLIST]
R=255
G=255
B=255
[NEWCHAR]
R=255
G=255
B=255
Et plutôt que de créer 3 scrollbars pour chacun, j'ai inseré le fameux combobox qui soit disant permet le choix entre les différentes couleurs ([CHATBOX], [CHATTEXTBOX] etc...). Théoriquement, la personne choisit la couleur qu'elle veut via le combobox et ensuite via un système de variable (une variable par couleur : Red de CHATBOX, Green de CHATBOX etc...), les 3 uniques scrollbars écrivent dans les variables.
Voila le code, vous comprendrez peut-être mieux.
'Déclaration des variables pour chaque paramètre (R... Dim CHATBOXR As Long Dim CHATBOXG As Long Dim CHATBOXB As Long Dim CHATTEXTBOXR As Long Dim CHATTEXTBOXG As Long Dim CHATTEXTBOXB As Long Dim BACKGROUNDR As Long Dim BACKGROUNDG As Long Dim BACKGROUNDB As Long Dim SPELLLISTR As Long Dim SPELLLISTG As Long Dim SPELLLISTB As Long Dim WHOLISTR As Long Dim WHOLISTG As Long Dim WHOLISTB As Long Dim NEWCHARR As Long Dim NEWCHARG As Long Dim NEWCHARB As Long 'Le fameux Combobox permettant de choisir la couleur à modifier ([CHATBOX], [BACKGROUND]...) Private Sub cmbChoix_Change() If cmbChoix.ListIndex = 1 Then CHATBOXR = HScroll1.Value CHATBOXG = HScroll2.Value CHATBOXB = HScroll3.Value End If 'Commande d'actualisation du rendu final (txtResulat) RefreshRes End Sub 'Add des items du combo Private Sub Form_Load() cmbChoix.AddItem "[CHATBOX]" cmbChoix.AddItem "[CHATTEXTBOX]" cmbChoix.AddItem "[BACKGROUND]" cmbChoix.AddItem "[SPELLLIST]" cmbChoix.AddItem "[WHOLIST]" cmbChoix.AddItem "[NEWCHAR]" txtCouleurRouge.Text = HScroll1.Value txtCouleurVert.Text = HScroll2.Value txtCouleurBleu.Text = HScroll3.Value lblResultat.BackColor = RGB(HScroll1, HScroll2, HScroll3) RefreshRes End Sub Private Sub HScroll1_Change() Couleur RefreshRes End Sub Private Sub HScroll1_Scroll() Couleur RefreshRes End Sub Private Sub HScroll2_Change() Couleur RefreshRes End Sub Private Sub HScroll2_Scroll() Couleur RefreshRes End Sub Private Sub HScroll3_Change() Couleur RefreshRes End Sub Private Sub HScroll3_Scroll() Couleur RefreshRes End Sub Private Sub Couleur() txtCouleurRouge.Text = HScroll1.Value txtCouleurVert.Text = HScroll2.Value txtCouleurBleu.Text = HScroll3.Value lblResultat.BackColor = RGB(HScroll1, HScroll2, HScroll3) End Sub 'Fonction d'actualisation Private Sub RefreshRes() txtResultat.Text = "[POLICE]" & vbNewLine & "Police=" & txtPolice.Text & vbNewLine & "PoliceSize=" & txtPoliceSize.Text & vbNewLine & "PoliceChat=" & txtPoliceChat.Text & vbNewLine & "[CHATBOX]" & vbNewLine & "R=" & CHATBOXR & vbNewLine & "G=" & CHATBOXG & vbNewLine & "B=" & CHATBOXB & vbNewLine & "[CHATTEXTBOX]" & vbNewLine & "R=" & CHATTEXTBOXR & vbNewLine & "G=" & CHATTEXTBOXG & vbNewLine & "B=" & CHATTEXTBOXB & vbNewLine & "[BACKGROUND]" & vbNewLine & "R=" & BACKGROUNDR & vbNewLine & "G=" & BACKGROUNDG & vbNewLine & "B=" & BACKGROUNDB & vbNewLine & "[SPELLLIST]" & vbNewLine & "R=" & SPELLLISTR & vbNewLine & "G=" & SPELLLISTG & vbNewLine & "B=" & SPELLLISTB & vbNewLine & "[WHOLIST]" & vbNewLine & "R=" & WHOLISTR & vbNewLine & "G=" & WHOLISTG & vbNewLine & "B=" & WHOLISTB & vbNewLine & "[NEWCHAR]" & vbNewLine & "R=" & NEWCHARR & vbNewLine & "G=" & NEWCHARG & vbNewLine & "B=" & NEWCHARB & vbNewLine End Sub Private Sub txtPolice_Change() RefreshRes End Sub Private Sub txtPoliceChat_Change() RefreshRes End Sub Private Sub txtPoliceSize_Change() RefreshRes End Sub
Quant à la fonction couleur, c'est pour autre chose (le test graphique via forecolor d'un label de la couleur RGB définie par les 3 scrollbars).
Quand je lance le programme, il n'y à pas d'erreur Pop-up mais il ne se passe rien lors du 'change()' et du 'scroll()' des scrollbars. Savez-vous comment faire fonctionner cette condition ?
Merci beaucoup d'avance à toutes vos réponses.
Cordialement, Fenril'Skanenruf.
Configuration: Windows XP Internet Explorer 6.0
4 réponses
-
Bonjour,
J'ai essayé ce programme
j'ai fixé la propriété Max des scrollbars à 255
j'ai dimensionné txtResultat de manière à afficher une dizaine de lignes, mis la propiété Multiligne à True et la propriété Scrollbars à Vertical
Ce que j'observe:
En déplaçant les scrollbars la couleur du label change
La valeur des scrollbars s'inscrit dans les textbox txtCouleurBleu txtCouleurRouge et txtCouleurVert
En remplissant txtPolice txtPoliceChat et txtPoliceSize la valeur correspondante s'inscrit dans txtResultat
Il ne se passe rien quand je fais un choix avec cmbChoix, mais c'est normal vu qu'il n'y a pas de code pour ça.
Salut.-
Merci de ta réponse Amigo,
Mais je m'aperçois que j'ai mal formulé ma question. Je voudrais s'il vous plait la syntaxe avec un exemple pour que selon le cmbChoix les scrollbars (que j'ai également fixé à max. 255) inscrivent dans les variables pour que le txtResultat soit modifié en temps réèl. Mon but est de placer une variable pour chaque paramètre (R, G, B...) de chaque couleur ([CHATBOX]...) dans le txtResultat. C'est ce que j'ai fait puis selon cmbChoix faire que les 3 scrollbars inscrivent dans les 3 variables correspondant à une couleur (celle sélectionnée dans le combo). Par conséquent les variables serianet modifiée selon le combo et donc le resultat final se retrouverait dans le txtResultat.
Peut-être tout simplement que ma méthode variables est mauvaise mais c'est la seule que je pense pouvoir appliquer. Pouvez-vous s'il vous plait modifier le code suivent que j'ai mis au changement du combobox pour que les 3 scrollbars inscrivent dans les 3 variables que je veux ?
Private Sub cmbChoix_Change() If cmbChoix.ListIndex = 1 Then CHATBOXR = HScroll1.Value CHATBOXG = HScroll2.Value CHATBOXB = HScroll3.Value End If RefreshRes End Sub
Je n'ai fait que la première condition (celle du [CHATBOX]) pour tester mais cela ne marche par.
Merci beaucoup de votre correction de mon script à venir.
Fenril'Skanenruf, http://www.groupe-midgard.com/
-
-
Bonjour
Voici comment corriger le code'Add des items du combo Private Sub Form_Load() cmbChoix.AddItem "[CHATBOX]" cmbChoix.AddItem "[CHATTEXTBOX]" cmbChoix.AddItem "[BACKGROUND]" cmbChoix.AddItem "[SPELLLIST]" cmbChoix.AddItem "[WHOLIST]" cmbChoix.AddItem "[NEWCHAR]" cmbChoix.ListIndex = 0 '<------------------------ici initialiser le ComboBox txtCouleurRouge.Text = HScroll1.Value txtCouleurVert.Text = HScroll2.Value txtCouleurBleu.Text = HScroll3.Value lblResultat.BackColor = RGB(HScroll1, HScroll2, HScroll3) RefreshRes End Sub
Supprimer la procédure Private Sub cmbChoix_Change_() qui ne sert pas
la remplacer parPrivate Sub cmbChoix_Click() Couleur RefreshRes End Sub
Enfin completer la procedure Couleur()Private Sub Couleur() txtCouleurRouge.Text = HScroll1.Value txtCouleurVert.Text = HScroll2.Value txtCouleurBleu.Text = HScroll3.Value lblResultat.BackColor = RGB(HScroll1, HScroll2, HScroll3) Select Case cmbChoix.ListIndex Case 0 CHATBOXR = HScroll1.Value CHATBOXG = HScroll2.Value CHATBOXB = HScroll3.Value Case 1 CHATTEXTBOXR = HScroll1.Value CHATTEXTBOXG = HScroll2.Value CHATTEXTBOXB = HScroll3.Value Case 2 BACKGROUNDR = HScroll1.Value BACKGROUNDG = HScroll2.Value BACKGROUNDB = HScroll3.Value Case 3 SPELLLISTR = HScroll1.Value SPELLLISTG = HScroll2.Value SPELLLISTB = HScroll3.Value Case 4 WHOLISTR = HScroll1.Value WHOLISTG = HScroll2.Value WHOLISTB = HScroll3.Value Case 5 NEWCHARR = HScroll1.Value NEWCHARG = HScroll2.Value NEWCHARB = HScroll3.Value End Select End Sub
C'est le résultat recherché?
A+. -
Au cas ou tu serais encore là
j'ai amélioré le code pour que les couleurs stockées dans les variables soient reprises dans les scrollbars et le label à chaque nouvelle sélection. Parce que tel que c'est maintenant, les variables prennent la valeur de la couleur courante et perdent leur valeur anciennement stockée.
Essaye et observe le resultat.
'Déclaration des variables pour chaque paramètre (R... Dim CHATBOXR As Long Dim CHATBOXG As Long Dim CHATBOXB As Long Dim CHATTEXTBOXR As Long Dim CHATTEXTBOXG As Long Dim CHATTEXTBOXB As Long Dim BACKGROUNDR As Long Dim BACKGROUNDG As Long Dim BACKGROUNDB As Long Dim SPELLLISTR As Long Dim SPELLLISTG As Long Dim SPELLLISTB As Long Dim WHOLISTR As Long Dim WHOLISTG As Long Dim WHOLISTB As Long Dim NEWCHARR As Long Dim NEWCHARG As Long Dim NEWCHARB As Long Dim cmbClicked As Boolean Private Sub cmbChoix_Click() cmbClicked = True Select Case cmbChoix.ListIndex Case 0 HScroll1.Value = CHATBOXR HScroll2.Value = CHATBOXG HScroll3.Value = CHATBOXB Case 1 HScroll1.Value = CHATTEXTBOXR HScroll2.Value = CHATTEXTBOXG HScroll3.Value = CHATTEXTBOXB Case 2 HScroll1.Value = BACKGROUNDR HScroll2.Value = BACKGROUNDG HScroll3.Value = BACKGROUNDB Case 3 HScroll1.Value = SPELLLISTR HScroll2.Value = SPELLLISTG HScroll3.Value = SPELLLISTB Case 4 HScroll1.Value = WHOLISTR HScroll2.Value = WHOLISTG HScroll3.Value = WHOLISTB Case 5 HScroll1.Value = NEWCHARR HScroll2.Value = NEWCHARG HScroll3.Value = NEWCHARB End Select Couleur RefreshRes cmbClicked = False End Sub 'Add des items du combo Private Sub Form_Load() cmbChoix.AddItem "[CHATBOX]" cmbChoix.AddItem "[CHATTEXTBOX]" cmbChoix.AddItem "[BACKGROUND]" cmbChoix.AddItem "[SPELLLIST]" cmbChoix.AddItem "[WHOLIST]" cmbChoix.AddItem "[NEWCHAR]" cmbChoix.ListIndex = 0 cmbClicked = False txtCouleurRouge.Text = HScroll1.Value txtCouleurVert.Text = HScroll2.Value txtCouleurBleu.Text = HScroll3.Value lblResultat.BackColor = RGB(HScroll1, HScroll2, HScroll3) RefreshRes End Sub Private Sub HScroll1_Change() If cmbClicked Then Exit Sub Couleur RefreshRes End Sub Private Sub HScroll1_Scroll() Couleur RefreshRes End Sub Private Sub HScroll2_Change() If cmbClicked Then Exit Sub Couleur RefreshRes End Sub Private Sub HScroll2_Scroll() Couleur RefreshRes End Sub Private Sub HScroll3_Change() If cmbClicked Then Exit Sub Couleur RefreshRes End Sub Private Sub HScroll3_Scroll() Couleur RefreshRes End Sub Private Sub Couleur() txtCouleurRouge.Text = HScroll1.Value txtCouleurVert.Text = HScroll2.Value txtCouleurBleu.Text = HScroll3.Value lblResultat.BackColor = RGB(HScroll1, HScroll2, HScroll3) Select Case cmbChoix.ListIndex Case 0 CHATBOXR = HScroll1.Value CHATBOXG = HScroll2.Value CHATBOXB = HScroll3.Value Case 1 CHATTEXTBOXR = HScroll1.Value CHATTEXTBOXG = HScroll2.Value CHATTEXTBOXB = HScroll3.Value Case 2 BACKGROUNDR = HScroll1.Value BACKGROUNDG = HScroll2.Value BACKGROUNDB = HScroll3.Value Case 3 SPELLLISTR = HScroll1.Value SPELLLISTG = HScroll2.Value SPELLLISTB = HScroll3.Value Case 4 WHOLISTR = HScroll1.Value WHOLISTG = HScroll2.Value WHOLISTB = HScroll3.Value Case 5 NEWCHARR = HScroll1.Value NEWCHARG = HScroll2.Value NEWCHARB = HScroll3.Value End Select End Sub 'Fonction d'actualisation Private Sub RefreshRes() txtResultat.Text = "[POLICE]" & vbNewLine & "Police=" & txtPolice.Text _ & vbNewLine & "PoliceSize=" & txtPoliceSize.Text & vbNewLine _ & "PoliceChat=" & txtPoliceChat.Text & vbNewLine & "[CHATBOX]" _ & vbNewLine & "R=" & CHATBOXR & vbNewLine & "G=" & CHATBOXG _ & vbNewLine & "B=" & CHATBOXB & vbNewLine & "[CHATTEXTBOX]" _ & vbNewLine & "R=" & CHATTEXTBOXR & vbNewLine & "G=" & CHATTEXTBOXG _ & vbNewLine & "B=" & CHATTEXTBOXB & vbNewLine & "[BACKGROUND]" _ & vbNewLine & "R=" & BACKGROUNDR & vbNewLine & "G=" & BACKGROUNDG _ & vbNewLine & "B=" & BACKGROUNDB & vbNewLine & "[SPELLLIST]" _ & vbNewLine & "R=" & SPELLLISTR & vbNewLine & "G=" & SPELLLISTG _ & vbNewLine & "B=" & SPELLLISTB & vbNewLine & "[WHOLIST]" _ & vbNewLine & "R=" & WHOLISTR & vbNewLine & "G=" & WHOLISTG _ & vbNewLine & "B=" & WHOLISTB & vbNewLine & "[NEWCHAR]" _ & vbNewLine & "R=" & NEWCHARR & vbNewLine & "G=" & NEWCHARG _ & vbNewLine & "B=" & NEWCHARB & vbNewLine End Sub Private Sub txtPolice_Change() RefreshRes End Sub Private Sub txtPoliceChat_Change() RefreshRes End Sub Private Sub txtPoliceSize_Change() RefreshRes End Sub -
Merci beaucoup ça donne mieux, je le rajoute à mon programme. Merci beaucoup Amigo.
Et Adios Amigo ^^