Page 1 sur 1

[R] Aide simplification code

Posté : mar. 01 mars 2011 23:33
par SurPriseS
Bonjour ici !
J'aurais besoin d'un petit conseil !

Je bosse sur un ptit script, mais j'ai une grosse partie du code qui va être répété plusieurs fois quasiment à l'identique (seul le nom des variables va changer)

En gros quelques mots seulement vont être remplacer, donc je pense qu'il serrais plus simple et propre d'écrire une fonction, et de l'appeler quand j'en ai besoin... Mais je sais pas trop comment faire une fonction en changement certaine chose au milieu...

La partie du code qui va être répliquée se trouve après la section : Groupe tweet (voir fichier joint).

Je ne pense pas que se soit très compliqué, mais vu que je ne m'étais jamais posé la question auparavant (et surtout que sa fait un bail que j'avais pas lancé auto it...)

Juste une pister déjà m'aiderais !

Merci :)

Re: [..] Aide simplification code

Posté : mar. 01 mars 2011 23:34
par Tlem
Sujet nettoyé et fichiers mis en pièce jointe ( c'est mieux pour des code de plus de 50 lignes).

Re: [..] Aide simplification code

Posté : mer. 02 mars 2011 11:12
par zeshrek
Alors, apres avoir recherché l'UDF Midiudf.au3 (à défaut ed le mettre avec ton source, ca aurait été sympa de dire ou le trouver, ca éviterait a ceux qui veulent t'aider de devoir aller se le rechercher...), je lance ton source et j'obtient une série d'erreurs et de warnings
Donc recherches plus poussées pour trouver ici une version qui marche.
Bref.
Moi je te proposerai :
1/ créer une variable ($CurrentSetting dans mon exemple) qui contiendrait le nom du setting en cours (tweeter, medium...etc)
2/ virer les lignes 240 a 440 et créer une seule et un seul ensemble de groupe et non pas un pour chaque setting
ligne 80 :$group1 = GUICtrlCreateGroup($ini_titre3, 205, 10, 570, 560)
ligne 85 $group2 = GUICtrlCreateGroup("Tweeter droit", 205, 40, 570, 530)
ligne 146 : $group3 = GUICtrlCreateGroup("Tweeter gauche", 205, 275, 570, 295)

3/ Mettre tous les controles dans un tableau lignes 92 a 240 :
► Afficher le texte
4/ dans ta boucle while le test des actions dans la gui deviendrait un truc du genre :
► Afficher le texte
5/ créer une fonction qui ferait le dispatch des traitements puis des fonctions qui les effectuerait:
► Afficher le texte

Re: [..] Aide simplification code

Posté : mer. 02 mars 2011 18:43
par SurPriseS
Oups, désolé pour l'oubli de l'udf midi :$
J'ai virer les lignes qui l'utilise pour la suite ;)

Donc, merci ! J'ai un peu galérer mais ça marche !

Je pense qu'il est possible d'utiliser

Code : Tout sélectionner

$ControleActive
pour utiliser le fichier ini, selon où l'on est placé...
Je vais testé tout ça !

Merci en tout cas ! ;)

Re: [..] Aide simplification code

Posté : mer. 02 mars 2011 21:42
par SurPriseS
Bon, j'ai fait quelques tests infructueux :\

Dans mon ini, j'ai entre autre mis la possibilité de désactivé certaine cases selon la section choisis (tweet/med/...), mais sa ne fonctionne plus :\
J'ai essayer plusieurs choses, mais si je désactive, un bouton, je n'arrive pas à le réactivé dans une autre section.

J'ai essayer de lire au clic du bouton à nouveau le ini :

Code : Tout sélectionner

$ini_HPF = IniRead("conf.ini","1","HPF","")
Et de le réutilisé à plusieurs endroits avec :

Code : Tout sélectionner

            if $ini_HPF = 0 then GUICtrlSetState($Control[1], $GUI_disable) 
            if $ini_HPF = 1 then GUICtrlSetState($Control[1], $GUI_show)
J'ai controler la valeur de $ini_HPF avec les msgbox, et sa roule pourtant...

Mais sans succès, j'ai peut être raté quelques choses ?

Merci

Re: [..] Aide simplification code

Posté : jeu. 03 mars 2011 09:53
par zeshrek
C'est 'normal' :D
D'une part tu confondais $GUI_show et $GUI_Enable. Du coup tu demandais d'afficher le controle pas de le réactiver
D'autre part, tu mettais cet ordre uniquement au moment de la création du controle, pas quand tu passais de twwet a sub, woofer...etc. Du coup, le controle restait comme il était.

Sinon, j'ai vu que tu mettais des GUICtrlSetState(-1, $GUI_show) apres chaque création d'un controle. Totalement inutile, je me suis donc permis de les supprimer :D

Donc apres une petite correction ca donne ca :

Re: [..] Aide simplification code

Posté : jeu. 03 mars 2011 11:11
par SurPriseS
Rofl, l'erreur bête...
Merci en tout cas !

Je continu mes modif ^^