Interaction ExplorerGadget & StringGadget

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Heis Spiter
Messages : 1092
Inscription : mer. 28/janv./2004 16:22
Localisation : 76
Contact :

Interaction ExplorerGadget & StringGadget

Message par Heis Spiter »

Voici un bout de code qui montre comment faire interagir deux gadgets et qui montre aussi comment utiliser les types d'évenement.
Ce code demande que l'utilisateur entre un répertoire qui est affiché dans l'ExplorerGadget et vice-versa.

Code : Tout sélectionner

Enumeration
  #Window_0
  #reptxt
  #repcho
  #reptype
EndEnumeration
AppName$ = "Application Name"
LenAppName = Len(AppName$)
If OpenWindow(#Window_0, 298, 148, 502, 369,  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered , "Install")
  If CreateGadgetList(WindowID())
    TextGadget(#reptxt, 30, 110, 442, 20, "Choose directory where you want to install "+AppName$+" :")
    StringGadget(#reptype, 30, 150, 442, 20, "C:\"+AppName$)
    ExplorerTreeGadget(#repcho, 30, 190, 442, 100, "C:\", #PB_Explorer_NoFiles | #PB_Explorer_NoMyDocuments | #PB_Explorer_AutoSort | #PB_Explorer_NoLines | #PB_Explorer_NoButtons | #PB_Explorer_AlwaysShowSelection)
  EndIf
  Repeat
    Delay(1)
    Event = WindowEvent()
    If Event = #PB_EventGadget
      GadgetID = EventGadgetID()
      If GadgetID = #repcho
        TEvent = EventType()
        If Tevent = #PB_EventType_Change
          If autochange = 0
            SetGadgetText(#reptype, GetGadgetText(#repcho)+AppName$)
          Else
            autochange = 0
          EndIf
        EndIf
      ElseIf GadgetID = #reptype
        TEvent = EventType()
        If Tevent = #PB_EventType_Change
          folder$ = GetGadgetText(#reptype)
          If Right(folder$, LenAppName) = AppName$
            folder$ = Left(folder$, Len(folder$)-LenAppName)
          EndIf
          SetGadgetText(#repcho, folder$)
          autochange = 1
        EndIf
      EndIf
    EndIf
  Until Event = #PB_EventCloseWindow
EndIf
Heis Spiter, webmaster du site http://www.heisspiter.net
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL :D