[résolu] saveas : rafraichir ExploComboG et ExploListG ?
Publié : mer. 20/mai/2009 10:24
Talut !
J'essaye de rajouter une choix saveas / enregistrer sous à mon interface, et je me heurte à la synchronisation des modifications des gadgets.
Si je touche l'ExplorerComboG je demande à mettre à jour l'ExplorerListG ...
Mais quand je touche l'ExplorerListG, comment ne pas entrer en boucle pour que l'ExploComboG soit mis à jour ?
Merci de votre aide
Voici mon code :
J'essaye de rajouter une choix saveas / enregistrer sous à mon interface, et je me heurte à la synchronisation des modifications des gadgets.
Si je touche l'ExplorerComboG je demande à mettre à jour l'ExplorerListG ...
Mais quand je touche l'ExplorerListG, comment ne pas entrer en boucle pour que l'ExploComboG soit mis à jour ?
Merci de votre aide

Voici mon code :
Structure ftype
intitule.s
format.s
EndStructure
;{ Définition;
Dim myCBGchoice.ftype(4)
myCBGchoice(0)\intitule= "CSV (délimité par virgule) (*.csv)"
myCBGchoice(0)\format= "*.csv"
myCBGchoice(1)\intitule= "Page Web (*.htm; *.html)"
myCBGchoice(1)\format= "*.htm;*.html"
myCBGchoice(2)\intitule= "Fichiers texte (*.txt; *.text)"
myCBGchoice(2)\format= "*.txt;*.text"
myCBGchoice(3)\intitule= "Tous les fichiers"
myCBGchoice(3)\format= "*.*"
;}
largeur=430
If openwindow (0, 0, 0, largeur, 360, "Enregistrer sous" , #PB_Window_SystemMenu | #PB_Window_ScreenCentered )
;{ Installation des gadgets
myECG= explorercombogadget ( #PB_Any ,10,10,240,25, getcurrentdirectory ())
myELG= explorerlistgadget ( #PB_Any , 10, 45, largeur-20 ,250 , getcurrentdirectory ()+ "*.csv" , #PB_Explorer_MultiSelect )
myTGfile= textgadget ( #PB_Any ,10,305,90,20, "Nom du fichier :" )
mySGfile= stringgadget ( #PB_Any ,110,300,largeur-220 ,20, "FileName" )
myBGsave= buttongadget ( #PB_Any ,largeur-90,300,80,20, "Enregistrer" )
myTGtype= textgadget ( #PB_Any ,10,330,100,20, "Type :" )
myCBG= comboboxgadget ( #PB_Any ,110,325,largeur-220 ,20)
myBGcancel= buttongadget ( #PB_Any ,largeur-90,325,80,20, "Annuler" )
For dumpvar=0 To 3
addgadgetitem (myCBG, dumpvar, myCBGchoice(dumpvar)\intitule)
Next
setgadgetstate (myCBG,0)
;}
;{ Boucle Principale
Repeat
EventID = waitwindowevent ()
If EventID = #PB_Event_Gadget
Select eventgadget ()
;{ Modification du répertoire par l'exploComboGagdet ou Modification du type de fichier par la ComboBox
Case myECG, myCBG ;si on change le repertoire depuis l'ExploCombo ou si on change le type de fichier depuis ComboBox
dumpvar= getgadgetstate (myCBG) ;quel choix de type de fichier depuis le ComboBox
mytype$=myCBGchoice( getgadgetstate (myCBG))\format ;on récupère le type de fichier depuis le tableau
mydir$= getgadgettext (myECG) ;on récupère le repertoire depuis l'ExploCombo
myfulldir$=mydir$+mytype$ ;association repertoire + extension
setgadgettext (myELG,myfulldir$) ;Change l'affichage de l'explorerListGadget avec la bon repertoire et la bonne extension
Debug str (dumpvar)+ " " +mytype$+ " " +mydir$+ " " +myfulldir$
;}
;{ Modification du répertoire par l'ExploListGadget
Case myELG ;si on change le repertoire depuis l'ExploList
dumpvar= getgadgetstate (myCBG) ;quel choix de type de fichier depuis le ComboBox
mytype$=myCBGchoice( getgadgetstate (myCBG))\format ;on récupère le type de fichier depuis le tableau
mydir$= getgadgettext (myELG) ;on récupère le repertoire depuis l'ExploList cette fois ci
myfulldir$=mydir$+mytype$ ;association repertoire + extension
;SetGadgetText(myELG,myfulldir$) ;si je modifie ELG ici, je pars en boucle !
;SetGadgetText(myECG,mydir$) ;si je modifier ECG, et comme ECG modifie ELG, je pars en boucle
;}
;{ Annuler
Case myBGcancel
Break
;}
EndSelect
EndIf
Until EventID= #PB_Event_CloseWindow
;}
EndIf