Page 1 sur 1

[R] Probleme sur la génération d'un gui

Posté : lun. 22 mars 2010 16:13
par Dydy049
Bonjour,
J'ai un soucis sur la génération de mon GUI. En effet, je le crée dans le code en fonction des noms que classe que je récupère d'une requête SQL. Mais je ne sais pas comment faire pour former le nom des checkbox et savoir lesquelles ont été cliqué car je les nommes toujours pareil ! ... Le soucis est que j'arrive pas a les notés différemment sans qu'il me génère une erreur ... Voyez vous se que je veux dire ?

Mon code est exposé ci-dessous :

Code : Tout sélectionner

                _SQLite_Query ($bdd, "SELECT DISTINCT COUNT(*) FROM users", $hQuery)
                _SQLite_FetchData($hQuery, $aRow)

                $height = $arow[0] * 20
                $Form1 = GUICreate("Form1", 243, 70 + $height, 192, 114)
                $lblInfo = GUICtrlCreateLabel("Selectionner les classes a supprimer", 10, 10, 238, 18)
                GUICtrlSetFont(-1, 8, 800, 0, "Georgia")
                $grpClasse = GUICtrlCreateGroup("Liste des classes : ", 10, 32, 233, 29 + $height)

                $top = 55
                For $i = 0 To $aRow
                    _SQLite_Query ($bdd, "SELECT DISTINCT classe FROM users", $hQueryClasse)
                    While (_SQLite_FetchData ($hQueryClasse, $aRowClasse) = $SQLITE_OK)
                        $chk = GUICtrlCreateCheckbox($aRowClasse[0], 17, $top, 97, 17)
                        $top = $top + 20
                    WEnd
                Next

                GUICtrlCreateGroup("", -99, -99, 1, 1)
                GUISetState(@SW_SHOW)

                While 1
                    $nMsg2 = GUIGetMsg()
                    Switch $nMsg2
                        Case $GUI_EVENT_CLOSE
                            MsgBox(0, "", GUICtrlRead(-10))
                            Exit
                    EndSwitch
                WEnd

Re: [..] Probleme sur la génération d'un gui

Posté : lun. 22 mars 2010 17:42
par Tlem
Regardez du coté de la fonction Eval(). ;)

Re: [..] Probleme sur la génération d'un gui

Posté : lun. 22 mars 2010 18:54
par xabu
Peut être une piste (si j'ai bien compris ton script), j'ai généré un GUI de la même façon (il me semble) sauf qu'au lieu de parcourir une base de données je parcours un tableau...

Et les résultats des checkbox je les envoie dans un tableau voir le script :
http://www.autoitscript.fr/forum/viewto ... f=4&t=4917

Si ça peut aider ...

Re: [..] Probleme sur la génération d'un gui

Posté : mar. 23 mars 2010 01:50
par SagePourpre
Comme TLEM l'a mentionné, tu peux faire exactement ce que tu souhaites à l'aide
des fonctions assign et eval.

Cela te permettra de d'assigner à une variable différente chaque "checkbox" créées

Re: [..] Probleme sur la génération d'un gui

Posté : mar. 23 mars 2010 09:17
par Dydy049
Ok ! Je vais tester ca je vous redis ca !
Merci beaucoup x)

Re: [..] Probleme sur la génération d'un gui

Posté : mar. 23 mars 2010 09:40
par Dydy049
Donc, j'ai toujours un soucis ^^7

J'ai modifier mon code en :

Code : Tout sélectionner

For $i = 0 To $aRow
        _SQLite_Query ($bdd, "SELECT DISTINCT classe FROM users", $hQueryClasse)
    While (_SQLite_FetchData ($hQueryClasse, $aRowClasse) = $SQLITE_OK)
        Assign("chk" & $i, GUICtrlCreateCheckbox($aRowClasse[0], 20, $top, 97, 17), 1)
        $top = $top + 20
    WEnd
Next
Et pour la lecture :

Code : Tout sélectionner

For $i = 0 To $aRow
    _SQLite_Query ($bdd, "SELECT DISTINCT classe FROM users", $hQueryClasse)
    While (_SQLite_FetchData ($hQueryClasse, $aRowClasse) = $SQLITE_OK)
            Assign("chk" & $i, GUICtrlCreateCheckbox($aRowClasse[0], 20, $top, 97, 17), 1)
        $top = $top + 20
    WEnd
Next
Je pense que je dois mal l'utiliser car je n'arrive pas a savoir si ma case est coché ou non ...

Cordialement, Dydy

Re: [..] Probleme sur la génération d'un gui

Posté : mar. 23 mars 2010 10:01
par SagePourpre
Utilise cette fonction, gracieuseté de TLEM pour vérifier l'état de tes "checkbox"

Code : Tout sélectionner

Func _IsChecked($control)
    Return BitAnd(GUICtrlRead($control),1) = 1
EndFunc
dans ton cas, tu peux vérifier toutes tes boîtes dans une boucle avec eval.

Re: [..] Probleme sur la génération d'un gui

Posté : mar. 23 mars 2010 10:18
par Dydy049
Hum si j'ai bien compris j'appelle ma fonction grâce a une boucle donc en faisant comme ceci :

DEBUTBOUCLE
_IsChecked(eval("chk" & $i))
FINBOUCLE

Re: [..] Probleme sur la génération d'un gui

Posté : mar. 23 mars 2010 10:22
par Dydy049
C'est bon x)
Merci beaucoup les gars !

Juste un dernier p'tit truc, est que l'on peut récupéré le texte d'un checkbox ?
Car je n'y arrive pas :shock:

Re: [..] Probleme sur la génération d'un gui

Posté : mar. 23 mars 2010 10:31
par SagePourpre
GUICtrlRead($checkbox,1)


Code : Tout sélectionner

DEBUTBOUCLE
$eval = eval("chk" & $i)
  Switch _IsChecked($eval) 
    Case "0"
        ; Case décochée
    Case "1" 
        ; Case cochée
        $lirenomdelacasecochee = GUICtrlRead($eval,[b]1[/b])

EndSwitch


FINBOUCLE

Re: [..] Probleme sur la génération d'un gui

Posté : mar. 23 mars 2010 10:34
par Dydy049
Merci beaucoup !

Re: [R] Probleme sur la génération d'un gui

Posté : mar. 23 mars 2010 15:54
par Tlem
N'oubliez pas la balise [R] dans le titre de votre premier message si votre sujet est résolu.