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
Code : Tout sélectionner
$Control[0] = GUICtrlCreateLabel("Pente Haute", 215, 80)
GUICtrlSetFont(-1, 12)
GUICtrlSetState(-1, $GUI_show)
$Control[1] = GUICtrlCreateButton(" + ", 350, 70, 40, 40)
GUICtrlSetState(-1, $GUI_show)
If $ini_HPF = 0 Then GUICtrlSetState(-1, $GUI_disable)
$Control[2] = GUICtrlCreateButton(" - ", 550, 70, 40, 40)
GUICtrlSetState(-1, $GUI_show)
If $ini_HPF = 0 Then GUICtrlSetState(-1, $GUI_disable)
$Control[3] = GUICtrlCreateLabel("Coupure Haute", 215, 130)
GUICtrlSetFont(-1, 12)
GUICtrlSetState(-1, $GUI_show)
$Control[4] = GUICtrlCreateButton(" + ", 350, 120, 40, 40)
GUICtrlSetState(-1, $GUI_show)
If $ini_HPF = 0 Then GUICtrlSetState(-1, $GUI_disable)
$Control[5] = GUICtrlCreateButton(" - ", 550, 120, 40, 40)
GUICtrlSetState(-1, $GUI_show)
If $ini_HPF = 0 Then GUICtrlSetState(-1, $GUI_disable)
... etc
4/ dans ta boucle while le test des actions dans la gui deviendrait un truc du genre :
► Afficher le texte
Code : Tout sélectionner
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
Exit
Case $msg = $bouton_tweet
$CurrentSetting=1
GUICtrlSetData($group1,$ini_titre3)
GUICtrlSetData($group2,"Tweeter droit")
GUICtrlSetData($group2,"Tweeter gauche")
Case $msg = $bouton_medium
$CurrentSetting=2
GUICtrlSetData($group1,$ini_titre4)
GUICtrlSetData($group2,"Medium droit")
GUICtrlSetData($group2,"Medium gauche")
Case $msg = $bouton_woofer
$CurrentSetting=3
GUICtrlSetData($group1,$ini_titre5)
GUICtrlSetData($group2,"Woofer droit")
GUICtrlSetData($group2,"Woofer gauche")
Case $msg = $bouton_sub
$CurrentSetting=4
GUICtrlSetData($group1,$ini_titre6)
GUICtrlSetData($group2,"Sub droit")
GUICtrlSetData($group2,"Sub gauche")
Case $msg = $bouton_equa
$CurrentSetting=5
GUICtrlSetData($group1,$ini_titre7)
GUICtrlSetData($group2,"Equa droit")
GUICtrlSetData($group2,"Equa gauche")
Case else
for $i = 0 to Nb_Total_Des_Controls (cf étape 3 ci dessus)
if $msg=$Control[$i] then
_TraitementControls($CurrentSetting,$i)
endif
next
EndSelect
5/ créer une fonction qui ferait le dispatch des traitements puis des fonctions qui les effectuerait:
► Afficher le texte
Code : Tout sélectionner
sub _TraitementControls($Setting,$ControleActive)
switch $Setting
case 1
_tweeter($ControleActive)
case 2
_medium($ControleActive)
case 3
_woofer($ControleActive)
case 4
_sub($ControleActive)
case 5
_equa($ControleActive)
endswitch
endfunc
func _tweeter($ControleActive)
Switch ($ControleActive)
case 1
; ici le code pour clic + pente haute du tweeter droit
case 2
; ici le code pour clic - pente haute du tweeter droit
case 3
; ici le code pour clic + coupure haute du tweeter droit
case 4
; ici le code pour clic - coupure haute du tweeter droit
... etc
endfunc
func _medium($ControleActive)
Switch ($ControleActive)
case 1
; ici le code pour clic + pente haute du medium droit
case 2
; ici le code pour clic - pente haute du medium droit
case 3
; ici le code pour clic + coupure haute du medium droit
case 4
; ici le code pour clic - coupure haute du medium droit
... etc
endfunc
et ainsi de suite pour les autres fonctions