Page 1 sur 1

Donner le focus à ExplorerListGadget

Publié : mar. 06/nov./2007 15:46
par SpaceMan
salut à tous !
je voudrais fais un truc banal mais impossible pour moi 8O L'ExplorerCombo doit donner le focus à Explorerlist après qu'on ait sélectionné un repertoire

Code : Tout sélectionner

;{- Enumerations
;{ Windows
Enumeration
  #Window_0
EndEnumeration
;}
;{ Status bars
Enumeration
  #StatusBar_Window_0
EndEnumeration
;}
;{ Gadgets
Enumeration
  #ExplorerComboGadget
  #ExplorerListGadget_0
EndEnumeration
Global Disk$
Disk$ = "C:\"
;}
;}

Procedure OpenWindow_Window_0()
  If OpenWindow(#Window_0, 170, 120, 652, 410, "Example", #PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_SizeGadget|#PB_Window_MaximizeGadget|#PB_Window_MinimizeGadget)
    CreateGadgetList(WindowID(#Window_0))  
      ExplorerComboGadget(#ExplorerComboGadget, 1, 3, 650, 200, Disk$, #PB_Explorer_Editable)
      ExplorerListGadget(#ExplorerListGadget_0, 0, 30, 651, 360, Disk$, #PB_Explorer_MultiSelect|#PB_Explorer_AutoSort);|#PB_Explorer_FullRowSelect)
      SetGadgetItemAttribute(#ExplorerListGadget_0, 0,#PB_Explorer_ColumnWidth, 330)
      CreateStatusBar(#StatusBar_Window_0, WindowID(#Window_0))
      ; Gadget Resizing
      ;PureRESIZE_SetGadgetResize(#ExplorerListGadget_0, 1, 1, 1, 1)
      ;PureRESIZE_SetGadgetResize(#ExplorerComboGadget, 1, 1, 1, 1)
    EndIf
EndProcedure

OpenWindow_Window_0()

Repeat
  Select WaitWindowEvent()
    
    ; ///////////////////
      Case #PB_Event_Gadget
      EventGadget = EventGadget()
      EventType = EventType()
      Select EventGadget()
        Case #ExplorerComboGadget:Disk$ = GetGadgetText(#ExplorerComboGadget)
          SetGadgetText(#ExplorerListGadget_0, Disk$)
          
        Case #ExplorerListGadget_0
          If  EventType() = #PB_EventType_LeftDoubleClick
            MessageRequester("Info","double clique",#MB_ICONINFORMATION|#MB_OK)
          EndIf   
      EndSelect
      ; //////////////////////  
      
    Case #PB_Event_CloseWindow
      EventWindow = EventWindow()
      If EventWindow = #Window_0
        Break
      EndIf
  EndSelect 
ForEver
;comment faire pour qu'après sélection, ExplorerComboGadget perd le focus et le donne à explorerList ?
;sinon on clique 2 fois avant de pouvoir sélectionner un élément après un changement de répertoire !

Publié : mar. 06/nov./2007 17:07
par gnozal
SetActiveGadget(#ExplorerListGadget_0)

Publié : mar. 06/nov./2007 22:07
par SpaceMan
Merci gnozal deja essayer mas ça ne marche pas 8O
le changement de repertoire ne se fait meme pas anant que l'ExplorerList ne prenne la main.

Publié : mer. 07/nov./2007 9:10
par gnozal
Je pense que je ne comprends pas exactement ton problème ...

Publié : mer. 07/nov./2007 14:45
par nico

Code : Tout sélectionner

      Select EventGadget()
        Case #ExplorerComboGadget:Disk$ = GetGadgetText(#ExplorerComboGadget)
          SetGadgetText(#ExplorerListGadget_0, Disk$)
          If  EventwParam()
            SetActiveGadget(#ExplorerListGadget_0)
          EndIf 

Publié : mer. 07/nov./2007 19:56
par SpaceMan
@gnozal
je crois que j'ai un probleme d'expression que je vais tâcher de résoudre.
Merci quand même

nickel nico
Merci beaucoup :D

Publié : mer. 20/mai/2009 10:22
par kerkael
Help ... Je lis le code et je ne comprends pas cela :

Code : Tout sélectionner

 Case #ExplorerComboGadget:Disk$ = GetGadgetText(#ExplorerComboGadget)
          SetGadgetText(#ExplorerListGadget_0, Disk$)
Que représente l'utilisation des 2 points : dans le case ?

Je ne comprends pas la syntaxe.

Merci

Publié : mer. 20/mai/2009 11:26
par Ar-S
Les : évitent simplement le retour à la ligne

Code : Tout sélectionner

enumeration
#aaa : #bbb : #ccc
endenumeration

équivaut à

enumeration
#aaa 
#bbb 
#ccc
endenumeration

Publié : mer. 20/mai/2009 11:37
par kerkael
M'ci.

C'est bien ce qu'il me semblait, mais comme ça venait après un case je me demandais si ça avait une incidence sur la sélection.
Comme les sélection multiples se font avec une virgule, je voyais pas ce que les 2 points faisaient là.