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.
A voir également:
- VB6 - Problème condition
- Vb6 - Télécharger - Divers Utilitaires
- Excel cellule couleur si condition texte - Guide
- Excel condition ou - Guide
- Nbval avec condition - Forum Excel
- Excel soustraction avec condition ✓ - Forum Excel
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.
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.
Bonjour
Voici comment corriger le code
Supprimer la procédure Private Sub cmbChoix_Change_() qui ne sert pas
la remplacer par
Enfin completer la procedure Couleur()
C'est le résultat recherché?
A+.
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 par
Private 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.
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
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 ?
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/