sélection dans ExplorerListGadget

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
SpaceMan
Messages : 290
Inscription : mar. 26/oct./2004 19:35
Contact :

sélection dans ExplorerListGadget

Message par SpaceMan »

salut à tous !
je cherche depuis ce matin la commande qui permet de sélectionner un élément dans une ExplorerListGadget (comme "setgadgetstate" pour la listIconGadget)
Merci
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Message par Ollivier »

Code : Tout sélectionner

Selection.L = GetGadgetStat(#Gadget)
SpaceMan
Messages : 290
Inscription : mar. 26/oct./2004 19:35
Contact :

sélection dans ExplorerListGadget

Message par SpaceMan »

Slt Ollivier

Code : Tout sélectionner

Selection.L = GetGadgetStat(#Gadget)
permet de recupérer
une sélection enfin je crois. mais ce que je cherche c'est plutot du genre
SetGadgetState(#Gadget,#Etat) qui ne marche malheureusement pas dans ExplorerListGadget.(je voudrais qu'un élément soit Présélectionné lorsque j'exécute mon programme).
Voici un petit code

Code : Tout sélectionner

If OpenWindow(0, 0, 0, 500, 250, "ExplorerListGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) 
  CreateGadgetList(WindowID(0))
  ExplorerListGadget(0, 10, 10, 480, 230, "C:\", #PB_Explorer_MultiSelect)
  ;SetGadgetState(0,5)
  SetGadgetItemState(0,1,#PB_Explorer_Selected)
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf 
; jaPBe Version=3.7.7.650
; Build=0
; Language=0x0000 Language Neutral
; FirstLine=0
; CursorPosition=6
; ExecutableFormat=Windows
; DontSaveDeclare
; EOF
j'utilise SetGadgetState(0,5) qui ne marche pas et SetGadgetItemState(0,1,#PB_Explorer_Selected) non plus.
Au secours SVP ![/quote]
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Message par Ollivier »

Ah oui... En effet... Beh non! :(
gnozal
Messages : 832
Inscription : mar. 07/déc./2004 17:35
Localisation : France
Contact :

Message par gnozal »

Code : Tout sélectionner

If OpenWindow(0, 0, 0, 500, 250, "ExplorerListGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) 
  CreateGadgetList(WindowID(0)) 
  ExplorerListGadget(0, 10, 10, 480, 230, "C:\", #PB_Explorer_MultiSelect | #PB_Explorer_AlwaysShowSelection) 
  ;
  ; WINDOWS UNIQUEMENT
  ;
  ; Sélectionner l'élément 1 du gadget 0
  LVITEM.LV_ITEM
  LVITEM\mask = #LVIF_STATE	
  LVITEM\state = #LVIS_SELECTED
  LVITEM\stateMask = #LVIS_SELECTED
  SendMessage_(GadgetID(0), #LVM_SETITEMSTATE, 1, @LVITEM)
  ;
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow 
EndIf
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Message par Ollivier »

Ah non... En effet... Beh si! :D :D :D
SpaceMan
Messages : 290
Inscription : mar. 26/oct./2004 19:35
Contact :

Message par SpaceMan »

@ Ollivier
Ah non... En effet... Beh si! :D :D :D
ben ouais :D :D :D
Merci à vous :D
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Message par Ollivier »

C'était Gnozal parce que moi pas possible
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

Avce le code de Gnozal que je salue ici ainsi que tout le monde, tu peux aussi selectionner plusieurs lignes simultanéement :

Code : Tout sélectionner

If OpenWindow(0, 0, 0, 500, 250, "ExplorerListGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  CreateGadgetList(WindowID(0))
  ExplorerListGadget(0, 10, 10, 480, 230, "C:\", #PB_Explorer_MultiSelect | #PB_Explorer_AlwaysShowSelection)
  LVITEM.LV_ITEM
  LVITEM\mask = #LVIF_STATE   
  LVITEM\state = #LVIS_SELECTED
  LVITEM\stateMask = #LVIS_SELECTED
  SendMessage_(GadgetID(0), #LVM_SETITEMSTATE, 3, @LVITEM)
  SendMessage_(GadgetID(0), #LVM_SETITEMSTATE, 4, @LVITEM)
  SendMessage_(GadgetID(0), #LVM_SETITEMSTATE, 7, @LVITEM)

  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
Denis

Bonne Jounée à tous
SpaceMan
Messages : 290
Inscription : mar. 26/oct./2004 19:35
Contact :

Salut à tous

Message par SpaceMan »

@ brosden
merci pour ce supplément ca va me servir c'est certain. :)

Merci à tous pour votre aide.
SpaceMan
Messages : 290
Inscription : mar. 26/oct./2004 19:35
Contact :

Message par SpaceMan »

bonjour à tous
jai un serieux problème que je ne comprends pas d'ailleurs
Tout était normal avec ce code maintenant je ne peux copier qu' 1 dossier même si j'en sélectionnais 6.
pour les fichier pas de problème.

essayer ce code SVP !

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  ; 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_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) 
                  
                ElseIf  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))     
                
                EndIf 
              EndIf 
            Next 
          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 
; jaPBe Version=3.7.7.650 
; Build=0 
; Language=0x0000 Language Neutral 
; FirstLine=87 
; CursorPosition=97 
; ExecutableFormat=Windows 
; DontSaveDeclare 
; EOF
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Message par Ollivier »

Houlà! Un code pour les fichiers le matin avant d'aller au boulot ça va pas le faire! Pour ma part, je regarde ça ce soir vers 18h.
Lna
Messages : 181
Inscription : mar. 21/juin/2005 11:11

Message par Lna »

Ca fonctionne mieux avec les points sur les i. 8)

CopyDirectory(GetGadgetText(#ExplorerList_1) + GetGadgetItemText(#ExplorerList_1, i, 0),Chemin$ + GetGadgetItemText(#ExplorerList_1, i, 0), "*.*" ,#PB_FileSystem_Recursive)

Pour la peine, tu seras condamné à réviser ton alphabet en regardant le clip de Peter Kitsch. :wink:

Image

http://www.youtube.com/watch?v=Db0LCDY-AjQ

@ peluche
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

@LNA

Salut, ça fait un bail que l'on a pas lu tes jolis POSTS poetiques.

D'ailleur on parlait de toi, y'a pas bien longtemps ...

http://www.purebasic.fr/french/viewtopi ... 7868#67868

Je suis content de voir qu'une des seules et trop rare représentantes de la gente féminine va bien.
Et toujours aussi performante à ce que je vois :wink:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Kwai chang caine a écrit :@LNA

Salut, ça fait un bail que l'on a pas lu tes jolis POSTS poetiques.

D'ailleur on parlait de toi, y'a pas bien longtemps ...

http://www.purebasic.fr/french/viewtopi ... 7868#67868

Je suis content de voir qu'une des seules et trop rare représentantes de la gente féminine va bien.
Et toujours aussi performante à ce que je vois :wink:

t'es vraiment qu'un fayot toi !! 8O :roll: :lol: :lol:
Répondre