Page 1 sur 1

Copie de multisélection depuis ExplorerListGadget

Publié : ven. 13/juil./2007 21:12
par SpaceMan
salut à tous!
j'étais en vaccances et je m'amusais à creér un petit programme de copie mais je me suis heurté à un problème.
en fait je voudrais que la sélection(élément sélectionné) de l'ExplorerList soit copiée dans un repertoire choisi par l'utilisateur, mais je buche et je trébuche :( .
Merci de jeter un coup d'oeil
voici le code:

Code : Tout sélectionner

;{- Enumerations / DataSections
;{ Windows
Enumeration
  #Window_0
EndEnumeration
;}
;{ Toolbars
Enumeration
  #Toolbar_Window_0
EndEnumeration
;}
;{ Menu bars
Enumeration
  #Menu_Window_0
EndEnumeration
;}
;{ Menu/Toolbar items
Enumeration
  #Menu_Window_0_0_Couper
  #Menu_Window_0_1_Coupier
  #Menu_Window_0_2_Coller
  #Menu_Window_0_3_Quitter
  #Menu_Window_0_4_Aide
  #Menu_Window_0_5_APropos
  #Toolbar_Window_0_0_Copy
  #Toolbar_Window_0_1_Cut
  #Toolbar_Window_0_2_Paste
  #Toolbar_Window_0_3_Properties
  #Toolbar_Window_0_4_Help
EndEnumeration
;}
;{ Gadgets
Enumeration
  #ExplorerCombo_0
  #ExplorerList_1
  #Button_2
  #Button_3
  #Button_4
EndEnumeration
;}
Global Disk$,Disk1$
Disk$ = "C:\"
Define.l Event, EventWindow, EventGadget, EventType, EventMenu
;}
Procedure OpenWindow_Window_0()
  If OpenWindow(#Window_0, 524, 379, 485, 313, "Window_0", 

#PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
    If CreateMenu(#Menu_Window_0, WindowID(#Window_0))
      MenuTitle("Menu")
      MenuItem(#Menu_Window_0_0_Couper, "Couper")
      MenuItem(#Menu_Window_0_1_Coupier, "Coupier")
      MenuItem(#Menu_Window_0_2_Coller, "Coller")
      MenuBar()
      MenuItem(#Menu_Window_0_3_Quitter, "Quitter")
      MenuTitle("Aide")
      MenuItem(#Menu_Window_0_4_Aide, "Aide")
      MenuItem(#Menu_Window_0_5_APropos, "A Propos")
    EndIf
    If CreateToolBar(#Toolbar_Window_0, WindowID(#Window_0))
      ToolBarStandardButton(#Toolbar_Window_0_0_Copy, #PB_ToolBarIcon_Copy)
      ToolBarStandardButton(#Toolbar_Window_0_1_Cut, #PB_ToolBarIcon_Cut)
      ToolBarStandardButton(#Toolbar_Window_0_2_Paste, #PB_ToolBarIcon_Paste)
      ToolBarStandardButton(#Toolbar_Window_0_3_Properties, #PB_ToolBarIcon_Properties)
      ToolBarStandardButton(#Toolbar_Window_0_4_Help, #PB_ToolBarIcon_Help)
    EndIf
    If CreateGadgetList(WindowID(#Window_0))
      ExplorerComboGadget(#ExplorerCombo_0, 5, 30, 475, 100, "c:\")
      ExplorerListGadget(#ExplorerList_1, 5, 60, 475, 190, "c:\")
      ButtonGadget(#Button_2, 185, 265, 100, 20, "Couper")
      ButtonGadget(#Button_3, 5, 265, 100, 20, "Copier")
      ButtonGadget(#Button_4, 375, 265, 100, 20, "Coller")
    EndIf
  EndIf
EndProcedure

OpenWindow_Window_0()

;{- Event loop
Repeat
  Event = WaitWindowEvent()
  Select Event
    ; ///////////////////
    Case #PB_Event_Gadget
      EventGadget = EventGadget()
      EventType = EventType()
      If EventGadget = #ExplorerCombo_0
        Disk$ = GetGadgetText(#ExplorerCombo_0)
        SetGadgetText(#ExplorerList_1, GetGadgetText(#ExplorerCombo_0))
        
      ElseIf EventGadget = #ExplorerList_1
        If  EventType() = #PB_EventType_LeftDoubleClick
          

MessageRequester("Info",""+GetGadgetItemText(#ExplorerList_1,GetGadgetState(#ExplorerList_1),0),#

MB_ICONERROR|#MB_OK)
        EndIf
      ElseIf EventGadget = #Button_2
      ElseIf EventGadget = #Button_3
        CheminInitial$ = "C:\"
        Chemin$ = PathRequester("Choisissez le répertoire de destination", CheminInitial$)
        If Chemin$;si repertoire de detination existe,copier la sélection
          ;Debug GetGadgetData(#ExplorerList_1)
        
         CopyFile(GetGadgetItemData(#ExplorerList_1,GetGadgetState(#ExplorerList_1)),Chemin$)
         
        EndIf
      ElseIf EventGadget = #Button_4
      EndIf
      ; /////////////////
    Case #PB_Event_Menu
      EventMenu = EventMenu()
      If EventMenu = #Menu_Window_0_0_Couper
      ElseIf EventMenu = #Menu_Window_0_1_Coupier
      ElseIf EventMenu = #Menu_Window_0_2_Coller
      ElseIf EventMenu = #Menu_Window_0_3_Quitter
      ElseIf EventMenu = #Menu_Window_0_4_Aide
      ElseIf EventMenu = #Menu_Window_0_5_APropos
      ElseIf EventMenu = #Toolbar_Window_0_0_Copy
      ElseIf EventMenu = #Toolbar_Window_0_1_Cut
      ElseIf EventMenu = #Toolbar_Window_0_2_Paste
      ElseIf EventMenu = #Toolbar_Window_0_3_Properties
      ElseIf EventMenu = #Toolbar_Window_0_4_Help
      EndIf
      ; ////////////////////////
    Case #PB_Event_CloseWindow
      EventWindow = EventWindow()
      If EventWindow = #Window_0
        CloseWindow(#Window_0)
        Break
      EndIf
  EndSelect
ForEver
;
;}
 
; jaPBe Version=3.7.7.649
; Build=0
; Language=0x0000 Language Neutral
; FirstLine=83
; CursorPosition=98
; ExecutableFormat=Windows
; DontSaveDeclare
; EOF

Publié : sam. 14/juil./2007 8:20
par gnozal
Après le coup d'oeil :wink:

Code : Tout sélectionner

;{- Enumerations / DataSections 
;{ Windows 
Enumeration 
  #Window_0 
EndEnumeration 
;} 
;{ Toolbars 
Enumeration 
  #Toolbar_Window_0 
EndEnumeration 
;} 
;{ Menu bars 
Enumeration 
  #Menu_Window_0 
EndEnumeration 
;} 
;{ Menu/Toolbar items 
Enumeration 
  #Menu_Window_0_0_Couper 
  #Menu_Window_0_1_Coupier 
  #Menu_Window_0_2_Coller 
  #Menu_Window_0_3_Quitter 
  #Menu_Window_0_4_Aide 
  #Menu_Window_0_5_APropos 
  #Toolbar_Window_0_0_Copy 
  #Toolbar_Window_0_1_Cut 
  #Toolbar_Window_0_2_Paste 
  #Toolbar_Window_0_3_Properties 
  #Toolbar_Window_0_4_Help 
EndEnumeration 
;} 
;{ Gadgets 
Enumeration 
  #ExplorerCombo_0 
  #ExplorerList_1 
  #Button_2 
  #Button_3 
  #Button_4 
EndEnumeration 
;} 
Global Disk$,Disk1$ 
Disk$ = "C:\" 
Define.l Event, EventWindow, EventGadget, EventType, EventMenu 
;} 
Procedure OpenWindow_Window_0() 
  If OpenWindow(#Window_0, 524, 379, 485, 313, "Window_0", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar) 
    If CreateMenu(#Menu_Window_0, WindowID(#Window_0)) 
      MenuTitle("Menu") 
      MenuItem(#Menu_Window_0_0_Couper, "Couper") 
      MenuItem(#Menu_Window_0_1_Coupier, "Coupier") 
      MenuItem(#Menu_Window_0_2_Coller, "Coller") 
      MenuBar() 
      MenuItem(#Menu_Window_0_3_Quitter, "Quitter") 
      MenuTitle("Aide") 
      MenuItem(#Menu_Window_0_4_Aide, "Aide") 
      MenuItem(#Menu_Window_0_5_APropos, "A Propos") 
    EndIf 
    If CreateToolBar(#Toolbar_Window_0, WindowID(#Window_0)) 
      ToolBarStandardButton(#Toolbar_Window_0_0_Copy, #PB_ToolBarIcon_Copy) 
      ToolBarStandardButton(#Toolbar_Window_0_1_Cut, #PB_ToolBarIcon_Cut) 
      ToolBarStandardButton(#Toolbar_Window_0_2_Paste, #PB_ToolBarIcon_Paste) 
      ToolBarStandardButton(#Toolbar_Window_0_3_Properties, #PB_ToolBarIcon_Properties) 
      ToolBarStandardButton(#Toolbar_Window_0_4_Help, #PB_ToolBarIcon_Help) 
    EndIf 
    If CreateGadgetList(WindowID(#Window_0)) 
      ExplorerComboGadget(#ExplorerCombo_0, 5, 30, 475, 100, "c:\") 
      ExplorerListGadget(#ExplorerList_1, 5, 60, 475, 190, "c:\") 
      ButtonGadget(#Button_2, 185, 265, 100, 20, "Couper") 
      ButtonGadget(#Button_3, 5, 265, 100, 20, "Copier") 
      ButtonGadget(#Button_4, 375, 265, 100, 20, "Coller") 
    EndIf 
  EndIf 
EndProcedure 

OpenWindow_Window_0() 

;{- Event loop 
Repeat 
  Event = WaitWindowEvent() 
  Select Event 
    ; /////////////////// 
    Case #PB_Event_Gadget 
      EventGadget = EventGadget() 
      EventType = EventType() 
      If EventGadget = #ExplorerCombo_0 
        Disk$ = GetGadgetText(#ExplorerCombo_0) 
        SetGadgetText(#ExplorerList_1, GetGadgetText(#ExplorerCombo_0)) 
        
      ElseIf EventGadget = #ExplorerList_1 
        If  EventType() = #PB_EventType_LeftDoubleClick 
          ; //////////////////////////
          MessageRequester("Info",GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, GetGadgetState(#ExplorerList_1), 0),# MB_ICONINFORMATION) 
          ; //////////////////////////
        EndIf 
      ElseIf EventGadget = #Button_2 
      ElseIf EventGadget = #Button_3 
        ; //////////////////////////
        If  GetGadgetState(#ExplorerList_1) > -1 ; un fichier est sélectionné
          CheminInitial$ = "C:\" 
          Chemin$ = PathRequester("Choisissez le répertoire de destination", CheminInitial$) 
          If Chemin$;si repertoire de detination existe,copier la sélection
            Debug "Copier " + GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, GetGadgetState(#ExplorerList_1), 0) + " vers " + Chemin$ + GetGadgetItemText(#ExplorerList_1, GetGadgetState(#ExplorerList_1), 0)
            CopyFile(GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, GetGadgetState(#ExplorerList_1), 0),Chemin$ + GetGadgetItemText(#ExplorerList_1, GetGadgetState(#ExplorerList_1), 0)) 
          EndIf 
        EndIf
        ; //////////////////////////
      ElseIf EventGadget = #Button_4 
      EndIf 
      ; ///////////////// 
    Case #PB_Event_Menu 
      EventMenu = EventMenu() 
      If EventMenu = #Menu_Window_0_0_Couper 
      ElseIf EventMenu = #Menu_Window_0_1_Coupier 
      ElseIf EventMenu = #Menu_Window_0_2_Coller 
      ElseIf EventMenu = #Menu_Window_0_3_Quitter 
      ElseIf EventMenu = #Menu_Window_0_4_Aide 
      ElseIf EventMenu = #Menu_Window_0_5_APropos 
      ElseIf EventMenu = #Toolbar_Window_0_0_Copy 
      ElseIf EventMenu = #Toolbar_Window_0_1_Cut 
      ElseIf EventMenu = #Toolbar_Window_0_2_Paste 
      ElseIf EventMenu = #Toolbar_Window_0_3_Properties 
      ElseIf EventMenu = #Toolbar_Window_0_4_Help 
      EndIf 
      ; //////////////////////// 
    Case #PB_Event_CloseWindow 
      EventWindow = EventWindow() 
      If EventWindow = #Window_0 
        CloseWindow(#Window_0) 
        Break 
      EndIf 
  EndSelect 
ForEver 
; 
;}

Publié : sam. 14/juil./2007 11:34
par Ollivier
c'est ce qu'il te fallait?

Copie impossible depuis ExplorerListGadget

Publié : sam. 14/juil./2007 23:07
par SpaceMan
@ Gnozal
très bon coup d'oeil :D
exactement ce qu'il me fallait.
Merci à vous.

Copie de plusieurs selections

Publié : mer. 18/juil./2007 14:51
par SpaceMan
Slt à tous
je ramène ce code qui permet de copier un dossier ou un fichier alors que j'aurais voulu copier tous les éléments sélectionnés dans l' ExplorerList.
Si vous avez le temps jetez-y un oeil pleaz !

Code : Tout sélectionner

;{- Enumerations / DataSections 
;{ Windows 
Enumeration 
  #Window_0 
EndEnumeration 
;} 
;{ Toolbars 
Enumeration 
  #Toolbar_Window_0 
EndEnumeration 
;} 
;{ Menu bars 
Enumeration 
  #Menu_Window_0 
EndEnumeration 
;} 
;{ Menu/Toolbar items 
Enumeration 
  #Menu_Window_0_0_Couper 
  #Menu_Window_0_1_Coupier 
  #Menu_Window_0_2_Coller 
  #Menu_Window_0_3_Quitter 
  #Menu_Window_0_4_Aide 
  #Menu_Window_0_5_APropos 
  #Toolbar_Window_0_0_Copy 
  #Toolbar_Window_0_1_Cut 
  #Toolbar_Window_0_2_Paste 
  #Toolbar_Window_0_3_Properties 
  #Toolbar_Window_0_4_Help 
EndEnumeration 
;} 
;{ Gadgets 
Enumeration 
  #ExplorerCombo_0 
  #ExplorerList_1 
  #Button_2 
  #Button_3 
  #Button_4 
EndEnumeration 
;} 
Global Disk$,Disk1$ 
Disk$ = "C:\" 
Define.l Event, EventWindow, EventGadget, EventType, EventMenu 
;} 
Procedure OpenWindow_Window_0() 
  If OpenWindow(#Window_0, 524, 379, 485, 313, "Window_0", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_ScreenCentered) 
    If CreateMenu(#Menu_Window_0, WindowID(#Window_0)) 
      MenuTitle("Menu") 
      MenuItem(#Menu_Window_0_0_Couper, "Couper") 
      MenuItem(#Menu_Window_0_1_Coupier, "Coupier") 
      MenuItem(#Menu_Window_0_2_Coller, "Coller") 
      MenuBar() 
      MenuItem(#Menu_Window_0_3_Quitter, "Quitter") 
      MenuTitle("Aide") 
      MenuItem(#Menu_Window_0_4_Aide, "Aide") 
      MenuItem(#Menu_Window_0_5_APropos, "A Propos") 
    EndIf 
    If CreateToolBar(#Toolbar_Window_0, WindowID(#Window_0)) 
      ToolBarStandardButton(#Toolbar_Window_0_0_Copy, #PB_ToolBarIcon_Copy) 
      ToolBarStandardButton(#Toolbar_Window_0_1_Cut, #PB_ToolBarIcon_Cut) 
      ToolBarStandardButton(#Toolbar_Window_0_2_Paste, #PB_ToolBarIcon_Paste) 
      ToolBarStandardButton(#Toolbar_Window_0_3_Properties, #PB_ToolBarIcon_Properties) 
      ToolBarStandardButton(#Toolbar_Window_0_4_Help, #PB_ToolBarIcon_Help) 
    EndIf 
    If CreateGadgetList(WindowID(#Window_0)) 
      ExplorerComboGadget(#ExplorerCombo_0, 5, 30, 475, 100, "c:\") 
      ExplorerListGadget(#ExplorerList_1, 5, 60, 475, 190, "c:\",#PB_Explorer_MultiSelect);|#PB_Explorer_NoDirectoryChange) permet de ne pas changer de rep
      ButtonGadget(#Button_2, 185, 265, 100, 20, "Couper") 
      ButtonGadget(#Button_3, 5, 265, 100, 20, "Copier") 
      ButtonGadget(#Button_4, 375, 265, 100, 20, "Coller") 
    EndIf 
  EndIf 
EndProcedure 

OpenWindow_Window_0() 

;{- Event loop 
Repeat 
  Event = WaitWindowEvent() 
  Select Event 
    ; /////////////////// 
    Case #PB_Event_Gadget 
      EventGadget = EventGadget() 
      EventType = EventType() 
      If EventGadget = #ExplorerCombo_0 
        Disk$ = GetGadgetText(#ExplorerCombo_0) 
        SetGadgetText(#ExplorerList_1, GetGadgetText(#ExplorerCombo_0)) 
        
      ElseIf EventGadget = #ExplorerList_1 
        If  EventType() = #PB_EventType_LeftDoubleClick 
          ; ////////////////////////// 
          MessageRequester("Info",GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, GetGadgetState(#ExplorerList_1), 0),# MB_ICONINFORMATION) 
          ; ////////////////////////// 
        EndIf 
      ElseIf EventGadget = #Button_2 
      ElseIf EventGadget = #Button_3 ; pour copier des éléments sélectionnés
        ; ////////////////////////// 
        Resultat = GetGadgetItemState(#ExplorerList_1, GetGadgetState(#ExplorerList_1))
        If  GetGadgetState(#ExplorerList_1) > -1  And Resultat = 5
          Debug Resultat
          CheminInitial$ = "C:\" 
            Chemin$ = PathRequester("Choisissez le répertoire de destination", CheminInitial$)
            If Chemin$;si repertoire de detination existe,copier la sélection 
              Debug "Copier " + GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, GetGadgetState(#ExplorerList_1), 0) + " vers " + Chemin$ + GetGadgetItemText(#ExplorerList_1, GetGadgetState(#ExplorerList_1), 0) 
              CopyFile(GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, GetGadgetState(#ExplorerList_1), 0),Chemin$ + GetGadgetItemText(#ExplorerList_1, GetGadgetState(#ExplorerList_1), 0)) 
            EndIf
            
          ElseIf GetGadgetState(#ExplorerList_1) > -1 And Resultat = 6
              Debug Resultat
              CheminInitial$ = "C:\" 
              Chemin$ = PathRequester("Choisissez le répertoire de destination", CheminInitial$)
              If Chemin$
                CopyDirectory(GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, GetGadgetState(#ExplorerList_1), 0),Chemin$ + GetGadgetItemText(#ExplorerList_1, GetGadgetState(#ExplorerList_1), 0), "*.*" ,#PB_FileSystem_Recursive)
        
          ElseIf GetGadgetState(#ExplorerList_1) > -1 And Resultat = 5 And Resultat = 6
              Debug  Resultat
              CheminInitial$ = "C:\" 
              Chemin$ = PathRequester("Choisissez le répertoire de destination", CheminInitial$)
              If Chemin$
               CopyFile(GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, GetGadgetState(#ExplorerList_1), 0),Chemin$ + GetGadgetItemText(#ExplorerList_1, GetGadgetState(#ExplorerList_1), 0)) 
               CopyDirectory(GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, GetGadgetState(#ExplorerList_1), 0),Chemin$ + GetGadgetItemText(#ExplorerList_1, GetGadgetState(#ExplorerList_1), 0), "*.*" ,#PB_FileSystem_Recursive)
              EndIf 
           EndIf 
        EndIf 
   ; EndIf
        ; ////////////////////////// 
      ElseIf EventGadget = #Button_4 
      EndIf 
      ; ///////////////// 
    Case #PB_Event_Menu 
      EventMenu = EventMenu() 
      If EventMenu = #Menu_Window_0_0_Couper 
      ElseIf EventMenu = #Menu_Window_0_1_Coupier 
      ElseIf EventMenu = #Menu_Window_0_2_Coller 
      ElseIf EventMenu = #Menu_Window_0_3_Quitter 
      ElseIf EventMenu = #Menu_Window_0_4_Aide 
      ElseIf EventMenu = #Menu_Window_0_5_APropos 
      ElseIf EventMenu = #Toolbar_Window_0_0_Copy 
      ElseIf EventMenu = #Toolbar_Window_0_1_Cut 
      ElseIf EventMenu = #Toolbar_Window_0_2_Paste 
      ElseIf EventMenu = #Toolbar_Window_0_3_Properties 
      ElseIf EventMenu = #Toolbar_Window_0_4_Help 
      EndIf 
      ; //////////////////////// 
    Case #PB_Event_CloseWindow 
      EventWindow = EventWindow() 
      If EventWindow = #Window_0 
        CloseWindow(#Window_0) 
        Break 
      EndIf 
  EndSelect 
ForEver 
; 
;} 
; jaPBe Version=3.7.7.649
; Build=0
; Language=0x0000 Language Neutral
; FirstLine=95
; CursorPosition=124
; ExecutableFormat=Windows
; DontSaveDeclare
; EOF

Publié : mer. 18/juil./2007 15:32
par gnozal
1. Il faut ajouer le flag #PB_Explorer_MultiSelect à ExplorerListGadget()
2. Pour voir quels éléments sont sélectionnés:

Code : Tout sélectionner

        For i = 0 To CountGadgetItems(#ExplorerList_1) - 1
          If GetGadgetItemState(#ExplorerList_1, i) & #PB_Explorer_Selected  
            Debug  GetGadgetItemText(#ExplorerList_1, i, 0) + " est sélectionné"
          Else
            Debug  GetGadgetItemText(#ExplorerList_1, i, 0) + " N'est PAS sélectionné"
          EndIf
        Next

Publié : jeu. 19/juil./2007 19:59
par SpaceMan
Tanks Gnozal

Publié : ven. 20/juil./2007 12:11
par SpaceMan
Merci Gnozal
Avant tout je te remercie pour ton aide malgré l'énorme travail que tu fais donc synonime de manque de temps.

en effet par rapport à ton code d'hier voilà ce que j'ai produit mais comme d'habitude je me heurte à des ...
- Lorsque je sélectionne un fichier tout est ok(sauf pour les fichiers systèmes)
- Lorsque je sélectionne un dossier tout est ok
- Lorsque je sélectionne un dossier et un fichier,SEUL le DOSSIER est copié je ne comprends pas :roll:

le code:

Code : Tout sélectionner

;{- Enumerations / DataSections 
;{ Windows 
Enumeration 
  #Window_0 
EndEnumeration 
;} 
;{ Toolbars 
Enumeration 
  #Toolbar_Window_0 
EndEnumeration 
;} 
;{ Menu bars 
Enumeration 
  #Menu_Window_0 
EndEnumeration 
;} 
;{ Menu/Toolbar items 
Enumeration 
  #Menu_Window_0_0_Couper 
  #Menu_Window_0_1_Coupier 
  #Menu_Window_0_2_Coller 
  #Menu_Window_0_3_Quitter 
  #Menu_Window_0_4_Aide 
  #Menu_Window_0_5_APropos 
  #Toolbar_Window_0_0_Copy 
  #Toolbar_Window_0_1_Cut 
  #Toolbar_Window_0_2_Paste 
  #Toolbar_Window_0_3_Properties 
  #Toolbar_Window_0_4_Help 
EndEnumeration 
;} 
;{ Gadgets 
Enumeration 
  #ExplorerCombo_0 
  #ExplorerList_1 
  #Button_2 
  #Button_3 
  #Button_4 
EndEnumeration 
;} 
Global Disk$,Disk1$,Chemin$
Disk$ = "C:\" 
Define.l Event, EventWindow, EventGadget, EventType, EventMenu 
;} 
Procedure OpenWindow_Window_0() 
  If OpenWindow(#Window_0, 524, 379, 485, 313, "Window_0", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_ScreenCentered) 
    If CreateMenu(#Menu_Window_0, WindowID(#Window_0)) 
      MenuTitle("Menu") 
      MenuItem(#Menu_Window_0_0_Couper, "Couper") 
      MenuItem(#Menu_Window_0_1_Coupier, "Coupier") 
      MenuItem(#Menu_Window_0_2_Coller, "Coller") 
      MenuBar() 
      MenuItem(#Menu_Window_0_3_Quitter, "Quitter") 
      MenuTitle("Aide") 
      MenuItem(#Menu_Window_0_4_Aide, "Aide") 
      MenuItem(#Menu_Window_0_5_APropos, "A Propos") 
    EndIf 
    If CreateToolBar(#Toolbar_Window_0, WindowID(#Window_0)) 
      ToolBarStandardButton(#Toolbar_Window_0_0_Copy, #PB_ToolBarIcon_Copy) 
      ToolBarStandardButton(#Toolbar_Window_0_1_Cut, #PB_ToolBarIcon_Cut) 
      ToolBarStandardButton(#Toolbar_Window_0_2_Paste, #PB_ToolBarIcon_Paste) 
      ToolBarStandardButton(#Toolbar_Window_0_3_Properties, #PB_ToolBarIcon_Properties) 
      ToolBarStandardButton(#Toolbar_Window_0_4_Help, #PB_ToolBarIcon_Help) 
    EndIf 
    If CreateGadgetList(WindowID(#Window_0)) 
      ExplorerComboGadget(#ExplorerCombo_0, 5, 30, 475, 100, "c:\") 
      ExplorerListGadget(#ExplorerList_1, 5, 60, 475, 190, "c:\",#PB_Explorer_MultiSelect);|#PB_Explorer_NoDirectoryChange) permet de ne pas changer de rep 
      ButtonGadget(#Button_2, 185, 265, 100, 20, "Couper") 
      ButtonGadget(#Button_3, 5, 265, 100, 20, "Copier") 
      ButtonGadget(#Button_4, 375, 265, 100, 20, "Coller") 
    EndIf 
  EndIf 
EndProcedure 

OpenWindow_Window_0() 

;{- Event loop 
Repeat 
  Event = WaitWindowEvent() 
  Select Event 
    ; /////////////////// 
    Case #PB_Event_Gadget 
      EventGadget = EventGadget() 
      EventType = EventType() 
      If EventGadget = #ExplorerCombo_0 
        Disk$ = GetGadgetText(#ExplorerCombo_0) 
        SetGadgetText(#ExplorerList_1, GetGadgetText(#ExplorerCombo_0)) 
        
      ElseIf EventGadget = #ExplorerList_1 
        If  EventType() = #PB_EventType_LeftDoubleClick 
          ; ////////////////////////// 
          MessageRequester("Info",GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, GetGadgetState(#ExplorerList_1), 0),# MB_ICONINFORMATION) 
          ; ////////////////////////// 
        EndIf 
      ElseIf EventGadget = #Button_2 
      ElseIf EventGadget = #Button_3 ; pour copier des éléments sélectionnés
        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
     ; If  GetGadgetState(#ExplorerList_1) > -1
        For i = 0 To CountGadgetItems(#ExplorerList_1) - 1 
          If GetGadgetItemState(#ExplorerList_1, i) & #PB_Explorer_Selected  
            Debug  GetGadgetItemText(#ExplorerList_1, i, 0) + " est sélectionné"
            CheminInitial$ = "C:\" 
            Chemin$ = PathRequester("Choisissez le répertoire de destination", CheminInitial$)
          If Chemin$
            CopyFile(GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, GetGadgetState(#ExplorerList_1), 0),Chemin$ + GetGadgetItemText(#ExplorerList_1, GetGadgetState(#ExplorerList_1), 0))
            CopyDirectory(GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, GetGadgetState(#ExplorerList_1), 0),Chemin$ + GetGadgetItemText(#ExplorerList_1, GetGadgetState(#ExplorerList_1), 0), "*.*" ,#PB_FileSystem_Recursive)
          EndIf
            Else 
            Debug  GetGadgetItemText(#ExplorerList_1, i, 0) + " N'est PAS sélectionné" 
          EndIf 
        Next
     ; EndIf
        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        
      ElseIf EventGadget = #Button_4 
      EndIf 
      ; ///////////////// 
    Case #PB_Event_Menu 
      EventMenu = EventMenu() 
      If EventMenu = #Menu_Window_0_0_Couper 
      ElseIf EventMenu = #Menu_Window_0_1_Coupier 
      ElseIf EventMenu = #Menu_Window_0_2_Coller 
      ElseIf EventMenu = #Menu_Window_0_3_Quitter 
      ElseIf EventMenu = #Menu_Window_0_4_Aide 
      ElseIf EventMenu = #Menu_Window_0_5_APropos 
      ElseIf EventMenu = #Toolbar_Window_0_0_Copy 
      ElseIf EventMenu = #Toolbar_Window_0_1_Cut 
      ElseIf EventMenu = #Toolbar_Window_0_2_Paste 
      ElseIf EventMenu = #Toolbar_Window_0_3_Properties 
      ElseIf EventMenu = #Toolbar_Window_0_4_Help 
      EndIf 
      ; //////////////////////// 
    Case #PB_Event_CloseWindow 
      EventWindow = EventWindow() 
      If EventWindow = #Window_0 
        CloseWindow(#Window_0) 
        Break 
      EndIf 
  EndSelect 
ForEver 
; 
;} 
; jaPBe Version=3.7.7.649 
; Build=0 
; Language=0x0000 Language Neutral 
; FirstLine=95 
; CursorPosition=124 
; ExecutableFormat=Windows 
; DontSaveDeclare 
; EOF 
; jaPBe Version=3.7.7.650
; Build=0
; Language=0x0000 Language Neutral
; FirstLine=87
; CursorPosition=97
; ExecutableFormat=Windows
; DontSaveDeclare
; EOF

Publié : ven. 20/juil./2007 14:40
par gnozal
Voilà, je pense que çà devrait t'aider (non testé)

Code : Tout sélectionner

        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
        If GetGadgetState(#ExplorerList_1) > -1  ; au moins un élément est sélectionné
          CheminInitial$ = "C:\" 
          Chemin$ = PathRequester("Choisissez le répertoire de destination", CheminInitial$) 
          If Chemin$ ; un chemin a été choisi
            For i = 0 To CountGadgetItems(#ExplorerList_1) - 1
              If GetGadgetItemState(#ExplorerList_1, i) & #PB_Explorer_Selected ; un élément est sélectionné et c'est ...
                Debug GetGadgetItemText(#ExplorerList_1, i, 0) + " est sélectionné" 
                If GetGadgetItemState(#ExplorerList_1, i) & #PB_Explorer_File ; ... un fichier
                  Debug "CopyFile(" + GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, i, 0)+ ", " + Chemin$ + GetGadgetItemText(#ExplorerList_1, i, 0) + ") "
                  ; CopyFile(GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, i, 0), Chemin$ + GetGadgetItemText(#ExplorerList_1, i, 0)) 
                ElseIf GetGadgetItemState(#ExplorerList_1, i) & #PB_Explorer_Directory ; ... un répertoire
                  Debug "CopyDirectory(" + GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, i, 0) + ", " + Chemin$ + ", " + #DQUOTE$ + "*.*" + #DQUOTE$ + " ,#PB_FileSystem_Recursive )"
                  ; CopyDirectory(GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, i, 0), Chemin$ , "*.*" ,#PB_FileSystem_Recursive) 
                EndIf
              EndIf 
            Next 
          EndIf
        EndIf 
        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 

Publié : ven. 20/juil./2007 21:55
par SpaceMan
Salut Gnozal :)
Je teste le code et je te tiens informer.

Publié : sam. 21/juil./2007 14:29
par SpaceMan
Salut Gnozal :D
Ca y est c'est fait tout est ok mais j'ai juste modifié la ligne du dernier "copyDirectory" .
je poste le code complet dès que je termine le programme

Code : Tout sélectionner

 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
        If GetGadgetState(#ExplorerList_1) > -1  ; au moins un élément est sélectionné 
          CheminInitial$ = "C:\" 
          Chemin$ = PathRequester("Choisissez le répertoire de destination", CheminInitial$) 
          If Chemin$ ; un chemin a été choisi 
            For i = 0 To CountGadgetItems(#ExplorerList_1) - 1 
              If GetGadgetItemState(#ExplorerList_1, i) & #PB_Explorer_Selected ; un élément est sélectionné et c'est ... 
                Debug GetGadgetItemText(#ExplorerList_1, i, 0) + " est sélectionné" 
                If GetGadgetItemState(#ExplorerList_1, i) & #PB_Explorer_File ; ... un fichier 
                  Debug "CopyFile(" + GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, i, 0)+ ", " + Chemin$ + GetGadgetItemText(#ExplorerList_1, i, 0) + ") " 
                   CopyFile(GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, i, 0), Chemin$ + GetGadgetItemText(#ExplorerList_1, i, 0)) 
                ElseIf GetGadgetItemState(#ExplorerList_1, i) & #PB_Explorer_Directory ; ... un répertoire 
                  Debug "CopyDirectory(" + GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, i, 0) + ", " + Chemin$ + ", " + #DQUOTE$ + "*.*" + #DQUOTE$ + " ,#PB_FileSystem_Recursive )" 
                   CopyDirectory(GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, GetGadgetState(#ExplorerList_1), 0),Chemin$ + GetGadgetItemText(#ExplorerList_1, GetGadgetState(#ExplorerList_1), 0), "*.*" ,#PB_FileSystem_Recursive) 
                EndIf 
              EndIf 
            Next 
          EndIf 
        EndIf 
        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;