[R] Array et Gui Child

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Julien
Niveau 5
Niveau 5
Messages : 141
Enregistré le : sam. 02 août 2008 17:01
Status : Hors ligne

[R] Array et Gui Child

#1

Message par Julien »

Bonjour,

Voila un petit résumé du script :
► Afficher le texte
J'ai mis l'essentiel pour l'exemple. Donc une Gui dans une Gui pour afficher une scrollbar, lorsque le tableau est mis à jour ($Button2) Array2 s'affiche correctement en revanche pour les deux autres cas (Array1 et Array3) cela ne me montre que mon tableau d'origine.

Faut il indiquer au premier GUI que le tableau est à jour ?
Comment cela est-ce possible d'autant que $Array est déclaré en Global ?

D'avance merci.
Modifié en dernier par Julien le ven. 01 juin 2012 07:49, modifié 2 fois.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Array et Gui Child

#2

Message par mikell »

En l'état, le code que tu as posté n'est pas utilisable donc ne sert à rien comme exemple
Qu'est-ce que tu veux faire au juste ?

La solution évidente serait de faire une seule gui avec une listview (qui aura une scrollbar), et des boutons pour mettre à jour la listview en même temps que l'array
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Julien
Niveau 5
Niveau 5
Messages : 141
Enregistré le : sam. 02 août 2008 17:01
Status : Hors ligne

Re: [..] Array et Gui Child

#3

Message par Julien »

Bonjour,

Effectivement le code que j'ai indiqué c'était juste les grandes lignes.

Ce que je veux faire :

Un GUI principal dans lequel il y'a un Tab (plusieurs onglets), dans un des onglets une zone avec scrollbar qui contient une série d’icône et de Checkbox (généré à la volée d'après un "Array" ou pas car je ne parviens pas à en maitriser les événements, l'icône s'affiche si une valeur est a True dans le "Array"), un clic sur une icône déclenche une action et idem pour les checkbox. Voila plus précisément ce que je veux faire.

Pour les événements je veux n'avoir à modifier que mon "Array", c'est à dire que tout le reste s'adapte en fonction de ce dernier. Les fonctions à exécuter y sont indiqués que se soit pour l’icône ou pour la checkbox.

Pour compléter, je vais avoir une fonction qui va juste créer le GUI en fonction du "Array", une fonction qui va se charger de mettre à jour le "Array" et une autre qui ne se chargera que de lire le "Array" pour mettre à jour. J'utilise le même Gui enfant pour faire du multipage (Suivant/Précédent) donc le "tableau" graphiquement est reconstruit à chaque changement de page avec mise à jour des données.

Merci.
mikell a écrit :En l'état, le code que tu as posté n'est pas utilisable donc ne sert à rien comme exemple
GUI principal :
► Afficher le texte
GUI 2 :
► Afficher le texte
Et la fonction pour les scrollbar en pièce jointe.
Fichiers joints
_GUIScrollbars_Ex.au3
(27.79 Kio) Téléchargé 99 fois
Modifié en dernier par Julien le jeu. 31 mai 2012 13:56, modifié 1 fois.
Julien
Niveau 5
Niveau 5
Messages : 141
Enregistré le : sam. 02 août 2008 17:01
Status : Hors ligne

Re: [..] Array et Gui Child

#4

Message par Julien »

Je me permet de re-poster car je viens de refaire intégralement mon exemple, le principe reste le même mais je génère les différents GUI enfant avant l'affichage du GUI principal, ce qui me permet de ne pas recréer à chaque fois l'ensemble.

Cela fonctionne mieux pour moi et je trouve cela plus propre.
Dans cet exemple je suis obligé de placer l'incude du Form2 juste avant l'affichage, ça fait vraiment moche mais dans mon application j'ai pas le même phénomène, l'include est en début de code avec les autres et cela fonctionne bien sans erreurs.

J'ai fais des test en rapport avec ma premier question de ce post et je ne reproduit pas l'erreur avec ce nouveau code.

Maintenant je m’attaque au événements sur les checkbox et icône générés à la "volé" mais je ne sais pas bien m'y prendre. Est il possible de générer le code dans le switch sachant que plusieurs GUI enfant pourront être crée en fonction de $Total_Value_Page ?

Le GUI Principal :
► Afficher le texte
Le GUI 2 :
► Afficher le texte
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Array et Gui Child

#5

Message par mikell »

Il me semble que oui

Code : Tout sélectionner

For $i = ... to ...
    Switch $nMsg[0]
           Case Eval("CheckBox" & $i)
             ....
    EndSwitch
Next
Mais vu que je n'aurais pas du tout construit le script comme ça (question d'habitude) et que je ne sais pas à quoi il va servir, je t'avoue que je suis un peu perdu dans tes guis et tes assign
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Julien
Niveau 5
Niveau 5
Messages : 141
Enregistré le : sam. 02 août 2008 17:01
Status : Hors ligne

Re: [..] Array et Gui Child

#6

Message par Julien »

Merci Mikell, je vais essayé ça. Je me pose quand même la question de savoir si je devrais pas mieux m'orienter vers le mode événementiel.

mikell a écrit :Mais vu que je n'aurais pas du tout construit le script comme ça (question d'habitude)...
Par curiosité tu aurais fait comment ?
mikell a écrit :... je ne sais pas à quoi il va servir, je t'avoue que je suis un peu perdu dans tes guis et tes assign
Il sert à créer dynamiquement une liste de cases à cocher et afficher une icône pour l'aide juste avant la checkbox si défini à true dans le tableau. En fait je veux n'avoir à toucher que mon "Array" et que la construction graphique, les actions, etc... soient tirées à partir du "Array".
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Array et Gui Child

#7

Message par mikell »

Oui non mais je voulais dire "à quoi va servir le programme"
J'imagine que sa finalité n'est pas juste d'afficher des checkboxes :mrgreen:
Julien a écrit :Par curiosité tu aurais fait comment ?
Eh bien, ça dépend du but du soft, justement !
Afficher plusieurs "pages" n'implique pas nécessairement de faire une gui par page
Apparemment, tu utilises la même array que tu mets à jour, en adaptant les icones checkboxes etc à chaque mise à jour
Donc j'aurais fait une seule gui, et des arrays icons[] et $checkbox[] évolutives en même temps que l'array principale pour contenir les ids des controles créés
A chaque modif, les arrays sont mises à jour en même temps et la gui est actualisée

On peut aussi faire une listview avec icones et checkboxes pour chaque item
Le choix est large, mais les heures de vol m'ont appris que plus tu crées de trucs, plus les risques de cagade croissent exponentiellement :mrgreen:

Et oui, le onevent (ou le GuiRegisterMsg) c'est mieux, ya pas photo
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Julien
Niveau 5
Niveau 5
Messages : 141
Enregistré le : sam. 02 août 2008 17:01
Status : Hors ligne

Re: [..] Array et Gui Child

#8

Message par Julien »

En fin de compte je vais utiliser plusieurs array. Merci Mikell pour ton aide.
J'ai transformé tout mon code pour le mode évènementiel et cela fonctionne.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] Array et Gui Child

#9

Message par mikell »

En fait, plutôt que plusieurs arrays qui évoluent en parrallèle, rien n'empêche de garder la méthode mais de tout stocker dans la même array, ça allège bien le script
Dans ce petit script c'est pour une gestion array <=> listview mais la démarche est la même
► Afficher le texte
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Julien
Niveau 5
Niveau 5
Messages : 141
Enregistré le : sam. 02 août 2008 17:01
Status : Hors ligne

Re: [R] Array et Gui Child

#10

Message par Julien »

Bonjour,

Désolé mikell de ne pas avoir répondu avant, cela fait deux fois que je ne répond pas à vos derniers messages. Je ne reçois pas les mails de notifications et n'ai pas trop le reflexe de passer par le panneu utilisateur.

Pour ce qui est du script j'ai fais plusieurs test et refait plusieurs fois le tout. Votre exemple est vraiment interessant.

Merci.
Répondre