Page 1 sur 1
ExplorerListGadget, j'ai loupé un épisode ?
Publié : lun. 18/juil./2005 16:00
par gansta93
Bonjour,
Dans ce code, j'ai plain de collones indésirables qui sont là, comment cela se fait-il ?
Code : Tout sélectionner
If OpenWindow(0,0,0,608,608,#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered|#PB_Window_SystemMenu|#PB_Window_TitleBar,"Explorer MP3") = 0 Or CreateGadgetList(WindowID()) = 0
End
EndIf
ExplorerListGadget(0,4,4,600,600,"E:\*.mp3;*.wav;*.m3U;*.pls",#PB_Explorer_GridLines|#PB_Explorer_HeaderDragDrop|#PB_Explorer_NoDriveRequester|#PB_Explorer_NoMyDocuments|#PB_Explorer_AlwaysShowSelection)
ChangeListIconGadgetDisplay(0,3)
AddGadgetColumn(0,0,#PB_Explorer_Name,200)
AddGadgetColumn(0,1,#PB_Explorer_Type,200)
AddGadgetColumn(0,2,#PB_Explorer_Size,200)
For n=3 To 5
RemoveGadgetColumn(0,n)
Next
ActivateGadget(0)
WaitUntilWindowIsClosed()
End
J'ai fais une boucle pour effacer ce que je peux, mais... ça change rien, reste des collones et si je mais 6 au lieux de cinq, ça plante.
Quelqu'un a-t-il une solution pour moi ?
Merci d'avance.
Re: ExplorerListGadget, j'ai loupé un épisode ?
Publié : lun. 18/juil./2005 17:31
par gansta93
Bon allé... quatres personnes l'ont vue... personne ne comprand ? C qd mm pas un bug !
Publié : lun. 18/juil./2005 17:33
par bernard13
j'ai voulu tester ton code
mais pB me marque une erreur au niveau de la commande:
WaitUntilWindowIsClosed()
Publié : lun. 18/juil./2005 17:54
par gansta93
Cette fonction vient de la lib droopy.
Publié : lun. 18/juil./2005 17:59
par Anonyme2
L'explorerListGadget a 4 colonnes
Le nom du fichier, sa taille, le type de document et la date de la dernière modif du fichier
Ces 4 colonnes seront remplies automatiquement
Tu peux ajouter des colonnes mais je pense qu'il faut les ajouter après celles qui existent et pas avant comme tu veux le faire, surtout pour ajouter des colonnes qui existent déjà

Publié : lun. 18/juil./2005 18:08
par Anonyme2
Apparement on peut ajouter des colonnes ou on veut
Je pense qu'il faut retirer les colonnes avant d'en recréer d'autres.
Tu veux faire quoi au juste ?
Publié : lun. 18/juil./2005 18:25
par Anonyme2
Bon,
je viens de comprendre ce qui fait planter
tu as une boucle pour supprimer les colonnes
tu supprimes la colonne indice 3 donc la 4eme
une fois supprimée, les 3 dernières colonnes ont l'indice 3, 4 et 5 mais dans ta boucle tu passe à l'indice 4, donc une colonne ne sera pas effacée
Le mieux c'est d'effacer en partant de la fin car toutes les colonnes à supprimer sont en dernier
C'est exactement le même raisonnement pour effacer plusieurs éléments dans la liste, chaque fois que tu effaces un élément la liste réajuste ses indices et c'est pour cela qu'une boucle d'effacement de plusiuers éléments d'un liste doit commencer par effacer en partant de la fin (c'est plus simple)
voici ton code mais pas en partant de la fin
j'ai juste changé ça
For n=3 To 5
RemoveGadgetColumn(0,3) ; ici
Next
Code : Tout sélectionner
If OpenWindow(0,0,0,608,608,#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered|#PB_Window_SystemMenu|#PB_Window_TitleBar,"Explorer MP3") = 0 Or CreateGadgetList(WindowID()) = 0
End
EndIf
ExplorerListGadget(0,4,4,600,600,"E:\*.mp3;*.wav;*.m3U;*.pls",#PB_Explorer_GridLines|#PB_Explorer_HeaderDragDrop|#PB_Explorer_NoDriveRequester|#PB_Explorer_NoMyDocuments|#PB_Explorer_AlwaysShowSelection)
ChangeListIconGadgetDisplay(0,3)
AddGadgetColumn(0,0,#PB_Explorer_Name,200)
AddGadgetColumn(0,1,#PB_Explorer_Type,200)
AddGadgetColumn(0,2,#PB_Explorer_Size,200)
For n=3 To 5
RemoveGadgetColumn(0,3)
Next
ActivateGadget(0)
Repeat
Until WaitWindowEvent() = #PB_EventCloseWindow
End
Publié : lun. 18/juil./2005 19:14
par Droopy
Oui ou tu supprime les colonnes pour ensuite les ajouter
Code : Tout sélectionner
OpenWindow(0,0,0,608,608,#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered|#PB_Window_SystemMenu|#PB_Window_TitleBar,"Explorer MP3")
CreateGadgetList(WindowID())
ExplorerListGadget(0,4,4,600,600,"c:\windows\*.txt;*.exe;*.m3U;*.pls",#PB_Explorer_GridLines|#PB_Explorer_HeaderDragDrop|#PB_Explorer_NoDriveRequester|#PB_Explorer_NoMyDocuments|#PB_Explorer_AlwaysShowSelection)
ChangeListIconGadgetDisplay(0,3)
For n=1 To 4
RemoveGadgetColumn(0,0)
Next
AddGadgetColumn(0,0,#PB_Explorer_Name,200)
AddGadgetColumn(0,1,#PB_Explorer_Type,200)
AddGadgetColumn(0,2,#PB_Explorer_Size,200)
ActivateGadget(0)
WaitUntilWindowIsClosed()
L'erreur que j'ai trouvé dans ton code Gangsta93 est dans la boucle for/next qui supprime les colonnes, quand tu supprime la colone 2, tout est décalé, donc tu peux continuer à supprimer la colone 2 ( ex colone 3 )
Publié : lun. 18/juil./2005 19:49
par gansta93
Merci les gars pour votre aide, maintenant ça marche.

Mais ce que je ne comprand pas, c que qd je mettais pas le débogueur, ça faisait juste planter une fois. Mais une fois que je le mettais, là, j'avais un écran qui me bloquait tout, et quand j'arrivais à le fermer, le programme qui plantait indéfiniment même quand je cliquais sur fermer (windows 98 SE). Avez-vous utilisé le débogueur pour trouver cette erreur ? Si oui, lequel ?
Encore merci pour votre aide et vos solutions.

Publié : mar. 19/juil./2005 4:46
par Anonyme2
gansta93 a écrit :Avez-vous utilisé le débogueur pour trouver cette erreur ? Si oui, lequel ?
Non, le debugger donnait une erreur fatale je crois
Publié : mar. 19/juil./2005 10:38
par gansta93
Erreur très fatale, j'ai due rebooter (en faisant un appui long sur la touche d'allumage).
Publié : mar. 19/juil./2005 10:56
par Droopy
Windows 98 est moins stable que XP
