[R] Creation de plusieurs combobox suivant leur valeurs.

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
k3klio
Niveau 1
Niveau 1
Messages : 4
Enregistré le : sam. 04 févr. 2017 22:13
Status : Hors ligne

[R] Creation de plusieurs combobox suivant leur valeurs.

#1

Message 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")
   EndIf

Global $recherche = GUICtrlCreateButton("Recherche", 272, 50, 169, 25)
   GUICtrlSetCursor (-1, 0)

GUISetState(@SW_SHOW)
Modifié en dernier par k3klio le sam. 04 mars 2017 12:01, modifié 1 fois.
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

Re: Creation de plusieurs combobox suivant leur valeurs.  

#2

Message 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
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()<>-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
k3klio
Niveau 1
Niveau 1
Messages : 4
Enregistré le : sam. 04 févr. 2017 22:13
Status : Hors ligne

Re: Creation de plusieurs combobox suivant leur valeurs.

#3

Message par k3klio »

merci infiniment

vous avez été d une aide préciseuse cela fonctionne parfaitement comme je le souhaité .
Boulanza
Niveau 10
Niveau 10
Messages : 711
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

Re: [R] Creation de plusieurs combobox suivant leur valeurs.

#4

Message 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
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2282
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [R] Creation de plusieurs combobox suivant leur valeurs.

#5

Message par jchd »

Il faut enregistrer le fichier .ini en UTF8, pas en ANSI.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Boulanza
Niveau 10
Niveau 10
Messages : 711
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

Re: [R] Creation de plusieurs combobox suivant leur valeurs.

#6

Message 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 é
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2282
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [R] Creation de plusieurs combobox suivant leur valeurs.

#7

Message par jchd »

Il faut aussi lire le fichier en mode UTF8, bien sûr.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Boulanza
Niveau 10
Niveau 10
Messages : 711
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

Re: [R] Creation de plusieurs combobox suivant leur valeurs.

#8

Message 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+
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2282
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [R] Creation de plusieurs combobox suivant leur valeurs.

#9

Message par jchd »

La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Boulanza
Niveau 10
Niveau 10
Messages : 711
Enregistré le : mer. 31 juil. 2013 15:49
Status : Hors ligne

Re: [R] Creation de plusieurs combobox suivant leur valeurs.

#10

Message par Boulanza »

La solution pour ce problème est d'enregistre (Enregistrer sous) le fichier .ini en choisissant le codage UTF-16 LE
Répondre