Page 1 sur 1
[R] Creation de plusieurs combobox suivant leur valeurs.
Posté : sam. 04 févr. 2017 22:34
par k3klio
bonjour.
je viens vers vous car j ai un souci.
voila mon problème j aurai voulut souhaiter faire plusieurs combobox (facile a créer je le conçois) mais avec les valeurs différentes suivant une autre combobox.
exemple plus clair
dans la première combobox il y a 2 titre , titre1 et titre2
dans la deuxième je souhaiterai afficher les données en rapport soi du titre1 ou du titre2
exemple du code que j ai créer mais la deuxième combobox n apparais pas.
merci pour votre aide je ne dois pas être sur la bonne route et je n arrive pas non plus a faire cela avec un fichier .ini qui je pense serais plus facile mais je ne comprend pas comme cela fonctionne.
Global $ENTRE = GUICreate("moteur de recherche", 455, 80, 300, 80, -1) GUISetCursor (0)Global $com = GUICtrlCreateCombo("- -", 5, 5, 200, 30) GUICtrlSetCursor (-1, 0) GUICtrlSetData($com, "donnée 1|donnée 2") $scom = GUICtrlRead($com) if $scom = "donnée 1" Then Global $com2 = GUICtrlCreateCombo("- -", 220, 5, 200, 30) GUICtrlSetCursor (-1, 0) GUICtrlSetData($com2, "article 1|article 2") EndIf if $scom = "donnée 2" Then Global $com3 = GUICtrlCreateCombo("- -", 220, 5, 200, 30) GUICtrlSetCursor (-1, 0) GUICtrlSetData($com3, "article 3|article 4") EndIfGlobal $recherche = GUICtrlCreateButton("Recherche", 272, 50, 169, 25) GUICtrlSetCursor (-1, 0)GUISetState(@SW_SHOW)
Re: Creation de plusieurs combobox suivant leur valeurs.
Posté : dim. 05 févr. 2017 11:34
par Hugues
Salut,
Si tu n'as pas beaucoup de données, passes par un fichier ini, sinon ça sera SQL...
Voici un exemple avec un fichier ini.
Ton fichier ini (à nommer Config.ini):
► Afficher le texte
[COMBOBOX_TITLES]
Titre_1=Harry Potter
Titre_2=Le seigneur des anneaux
[Harry Potter]
1=Harry Potter à l'école des sorciers
2=Harry Potter et la chambre des secrets
3=Harry Potter et le Prisonnier d’Azkaban
4=Harry Potter et la Coupe de Feu
5=Harry Potter et l'Ordre du phénix
6=Harry Potter et le Prince de sang-mêlé
7=Harry Potter et les reliques de la mort partie 1
8=Harry Potter et les reliques de la mort partie 2
[Le seigneur des anneaux]
1=La communauté de l'Anneau
2=Les Deux Tours
3=Le Retour du Roi
et le code AutoIt:
#include <ButtonConstants.au3>#include <ComboConstants.au3>#include <GUIConstantsEx.au3>#include <WindowsConstants.au3>#include <Array.au3>Opt('MustDeclareVars', 1)Opt("GUIOnEventMode", 1)Global $hGUI, $ComboBox1, $ComboBox2, $Button1, $aTitle, $aTitle2_Main
()While GUIGetMsg()<>-3WEndFunc _Main
() $hGUI = GUICreate("Form1", 190, 161, 192, 124) GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit") $ComboBox1 = GUICtrlCreateCombo("", 16, 8, 145, 25, BitOR($CBS_DROPDOWNLIST, $WS_VSCROLL)) $aTitle = IniReadSection(@ScriptDir & "\Config.ini", "COMBOBOX_TITLES") If Not @error Then For $i = 1 To $aTitle[0][0] GUICtrlSetData($ComboBox1, $aTitle[$i][1]) Next EndIf GUICtrlSetOnEvent($ComboBox1, "_LoadInformations") $ComboBox2 = GUICtrlCreateCombo("", 16, 40, 145, 25, BitOR($CBS_DROPDOWNLIST, $WS_VSCROLL)) $Button1 = GUICtrlCreateButton("Button1", 16, 104, 147, 25) GUICtrlSetOnEvent($Button1, "_Check") GUISetState(@SW_SHOW)EndFuncFunc _LoadInformations
() GUICtrlSetData($combobox2, "") $aTitle2 = IniReadSection(@ScriptDir & "\Config.ini", GUICtrlRead($ComboBox1)) If Not @error Then For $i = 1 To $aTitle2[0][0] GUICtrlSetData($ComboBox2, $aTitle2[$i][1]) Next EndIfEndFuncFunc _Check
() If GUICtrlRead($ComboBox1) = "" Then MsgBox(32, "Informations", "Veuillez choisir une série!") ElseIf GUICtrlRead($ComboBox2) = "" Then MsgBox(32, "Informations", "Veuillez choisir un titre!") Else MsgBox(64, "Information", "Vous allez rechercher dans la série: " & GUICtrlRead($ComboBox1) & @CRLF & GUICtrlRead($combobox2) & ".") EndIfEndFuncFunc _Exit
() ExitEndFunc
Re: Creation de plusieurs combobox suivant leur valeurs.
Posté : sam. 04 mars 2017 11:53
par k3klio
merci infiniment
vous avez été d une aide préciseuse cela fonctionne parfaitement comme je le souhaité .
Re: [R] Creation de plusieurs combobox suivant leur valeurs.
Posté : mer. 16 oct. 2024 15:44
par Boulanza
Bonjour tout le monde,
C'est vraiment bizarre que lors de l’exécution de scripte le texte du fichier config.ini qui se trouvent GUICtrlRead($ComboBox1) et GUICtrlRead($ComboBox2) tous les mots avec des lettres avec accent changent de forme. J'ai tout essayé pour corriger cela, mais en vain. Pouvez-vous m'aider à résoudre ce problème ? Merci.
Cordialement.
Le code du script:
Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
Opt('MustDeclareVars', 1)
Opt("GUIOnEventMode", 1)
Global $hGUI, $ComboBox1, $ComboBox2, $Button1, $aTitle, $aTitle2
_Main()
While GUIGetMsg()<>-3
WEnd
Func _Main()
$hGUI = GUICreate("Form1", 190, 161, 192, 124)
GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
$ComboBox1 = GUICtrlCreateCombo("", 16, 8, 145, 25, BitOR($CBS_DROPDOWNLIST, $WS_VSCROLL))
$aTitle = IniReadSection(@ScriptDir & "\Config.ini", "COMBOBOX_TITLES")
If Not @error Then
For $i = 1 To $aTitle[0][0]
GUICtrlSetData($ComboBox1, $aTitle[$i][1])
Next
EndIf
GUICtrlSetOnEvent($ComboBox1, "_LoadInformations")
$ComboBox2 = GUICtrlCreateCombo("", 16, 40, 145, 25, BitOR($CBS_DROPDOWNLIST, $WS_VSCROLL))
$Button1 = GUICtrlCreateButton("Button1", 16, 104, 147, 25)
GUICtrlSetOnEvent($Button1, "_Check")
GUISetState(@SW_SHOW)
EndFunc
Func _LoadInformations()
GUICtrlSetData($combobox2, "")
$aTitle2 = IniReadSection(@ScriptDir & "\Config.ini", GUICtrlRead($ComboBox1))
If Not @error Then
For $i = 1 To $aTitle2[0][0]
GUICtrlSetData($ComboBox2, $aTitle2[$i][1])
Next
EndIf
EndFunc
Func _Check()
If GUICtrlRead($ComboBox1) = "" Then
MsgBox(32, "Informations", "Veuillez choisir une série!")
ElseIf GUICtrlRead($ComboBox2) = "" Then
MsgBox(32, "Informations", "Veuillez choisir un titre!")
Else
MsgBox(64, "Information", "Vous allez rechercher dans la série: " & GUICtrlRead($ComboBox1) & @CRLF & GUICtrlRead($combobox2) & ".")
EndIf
EndFunc
Func _Exit()
Exit
EndFunc
Voici un exemple avec un fichier ini:
Code : Tout sélectionner
[COMBOBOX_TITLES]
Titre_1=Harry Potter
Titre_2=Le seigneur des anneaux
[Harry Potter]
1=Harry Potter à l'école des sorciers
2=Harry Potter et la chambre des secrets
3=Harry Potter et le Prisonnier d’Azkaban
4=Harry Potter et la Coupe de Feu
5=Harry Potter et l'Ordre du phénix
6=Harry Potter et le Prince de sang-mêlé
7=Harry Potter et les reliques de la mort partie 1
8=Harry Potter et les reliques de la mort partie 2
[Le seigneur des anneaux]
1=La communauté de l'Anneau
2=Les Deux Tours
3=Le Retour du Roi
Re: [R] Creation de plusieurs combobox suivant leur valeurs.
Posté : mer. 16 oct. 2024 17:57
par jchd
Il faut enregistrer le fichier .ini en UTF8, pas en ANSI.
Re: [R] Creation de plusieurs combobox suivant leur valeurs.
Posté : mer. 16 oct. 2024 19:00
par Boulanza
Merci jchd,
J'ai testé UTF-8 en utilisant Notepad++. UTF-8 avec BOM ne marche pas non plus, les accents sont remplacés par un autre caractère : è devient é
Re: [R] Creation de plusieurs combobox suivant leur valeurs.
Posté : mer. 16 oct. 2024 20:01
par jchd
Il faut aussi lire le fichier en mode UTF8, bien sûr.
Re: [R] Creation de plusieurs combobox suivant leur valeurs.
Posté : mer. 16 oct. 2024 20:11
par Boulanza
Je vous prie de faire le test et vous allez constater les dégâts.
Votre aide elle est très importante pour ressoude se problème. Merci.
A+
Re: [R] Creation de plusieurs combobox suivant leur valeurs.
Posté : mer. 16 oct. 2024 20:33
par jchd
Re: [R] Creation de plusieurs combobox suivant leur valeurs.
Posté : mer. 16 oct. 2024 20:47
par Boulanza
La solution pour ce problème est d'enregistre (Enregistrer sous) le fichier .ini en choisissant le codage UTF-16 LE