[R] Aide simplification code

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
SurPriseS
Niveau 6
Niveau 6
Messages : 293
Enregistré le : jeu. 06 sept. 2007 11:35
Localisation : Finistère sud
Status : Hors ligne

[R] Aide simplification code

#1

Message 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 :)
Fichiers joints
MidiConf.zip
(2.75 Kio) Téléchargé 92 fois
Modifié en dernier par SurPriseS le ven. 04 mars 2011 12:18, modifié 3 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Aide simplification code

#2

Message par Tlem »

Sujet nettoyé et fichiers mis en pièce jointe ( c'est mieux pour des code de plus de 50 lignes).
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [..] Aide simplification code

#3

Message 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
Si vis pacem para bellum
SurPriseS
Niveau 6
Niveau 6
Messages : 293
Enregistré le : jeu. 06 sept. 2007 11:35
Localisation : Finistère sud
Status : Hors ligne

Re: [..] Aide simplification code

#4

Message 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 ! ;)
Fichiers joints
MidiConf.au3
(12.32 Kio) Téléchargé 73 fois
SurPriseS
Niveau 6
Niveau 6
Messages : 293
Enregistré le : jeu. 06 sept. 2007 11:35
Localisation : Finistère sud
Status : Hors ligne

Re: [..] Aide simplification code

#5

Message 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
Fichiers joints
Midi_Conf.au3
(12.86 Kio) Téléchargé 62 fois
conf.ini
(604 Octets) Téléchargé 76 fois
Avatar du membre
zeshrek
Niveau 10
Niveau 10
Messages : 984
Enregistré le : mer. 17 nov. 2010 09:31
Localisation : Sur ma chaise
Status : Hors ligne

Re: [..] Aide simplification code

#6

Message 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 :
Fichiers joints
Midi_Conf.au3
(11.7 Kio) Téléchargé 64 fois
Si vis pacem para bellum
SurPriseS
Niveau 6
Niveau 6
Messages : 293
Enregistré le : jeu. 06 sept. 2007 11:35
Localisation : Finistère sud
Status : Hors ligne

Re: [..] Aide simplification code

#7

Message par SurPriseS »

Rofl, l'erreur bête...
Merci en tout cas !

Je continu mes modif ^^
Répondre