Page 1 sur 1

Gestions des gadgets !

Publié : sam. 05/janv./2008 17:37
par Thyphoon
Bon j'ai un problème de debutant depuis des années a propos de la gestions des gadgets.
A chaque fois je me prend la tête
voici un exemple

Code : Tout sélectionner

 Dim save.s(4)
 If OpenWindow(0, 0, 0, 400, 120, "Thy se prend la tête", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
     If CreateGadgetList(WindowID(0))
       ListIconGadget(1, 10, 10, 150, 100, "ListIcon", 140, #PB_ListIcon_GridLines|#PB_ListIcon_AlwaysShowSelection) 
       For a= 1 To 4 : AddGadgetItem(1, -1, "Ligne "+Str(a)) : Next a
       StringGadget(2,200,10,100,20,"")
     EndIf
  
     Repeat
       Event = WaitWindowEvent()
       
       Select Event
       
         Case #PB_Event_Gadget
           Select EventGadget()
             Case 1
              If GetGadgetState(1)>-1
                SetGadgetText(2,save(GetGadgetState(1)))
              EndIf
             Case 2
              If GetGadgetState(1)>-1
                save(GetGadgetState(1))=GetGadgetText(2)
              EndIf
           EndSelect
       
       EndSelect
     Until Event = #PB_Event_CloseWindow
  EndIf
pour chaque ligne du listicongadget vous pouvez asimiler un text grace au stringgadget
Oui mais voilà si vous selectionné la ligne 1 que vous taper un text part exemple :"1" et que vous cliquez ensuite sur la ligne 2 et bien le text est assimilé a la ligne 2.
Comment vous faites vous ?
là l'exemple est simple mais des que j'ai un système avec des Gadgets un peu compliqué et des procedures qui mette a jour des gadgets en fonction d'autre ça devient une vrai prise de tête pour que ça ne fasse pas n'importe quoi ...
si quelqu'un de vous peut m'éclairer sur la façon de procéder !
Merci d'avance

Publié : sam. 05/janv./2008 17:48
par Chris
Comme ça, peut-être!

Code : Tout sélectionner

Dim save.s(4)
If OpenWindow(0, 0, 0, 400, 120, "Thy se prend la tête", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  If CreateGadgetList(WindowID(0))
    ListIconGadget(1, 10, 10, 150, 100, "ListIcon", 140, #PB_ListIcon_GridLines|#PB_ListIcon_AlwaysShowSelection)
    For a= 1 To 4 : AddGadgetItem(1, -1, "Ligne "+Str(a)) : Next a
    StringGadget(2,200,10,100,20,"")
  EndIf
  
  Repeat
    Event = WaitWindowEvent()
    
    Select Event
      
      Case #PB_Event_Gadget
        Select EventGadget()
          Case 1
            If EventType() = #PB_EventType_LeftClick
              Index = GetGadgetState(1)
              SetGadgetText(2, save(Index))
            EndIf
            ; If GetGadgetState(1)>-1
              ; SetGadgetText(2,save(GetGadgetState(1)))
            ; EndIf
          Case 2
            ; If GetGadgetState(1)>-1
              ; save(GetGadgetState(1))=GetGadgetText(2)
            ; EndIf
            If EventType() = #PB_EventType_Change
              save(Index) = GetGadgetText(2)
            EndIf
        EndSelect
        
    EndSelect
  Until Event = #PB_Event_CloseWindow
EndIf

Publié : sam. 05/janv./2008 17:53
par Thyphoon
Chris a écrit :Comme ça, peut-être!
Grrrrrrrrrrrrr
Oui tu as tout a fait raison lolllllllll
en verité je n'arrive pas a faire un code simple pour vous expliquer mon problème j'ai toujours des trucs currieux qui m'arrive j'ai l'impression que si on fait un commande comme setgadgetnimporte quoi et bien dans les evenements c'est comme si on avait fait le changement manuellement. Et donc si on au changement de code ça provoque quelques choses le faite de faire un setgadget provoquera la chose. et parfois ça continue en cascade

bon je suis pas tres claire...mais en tout cas un grand merci de m'avoir repondu !

Publié : sam. 05/janv./2008 19:12
par Jacobus
Et si tu dois agir sur différents gadgets et que tu as peur de ne pas t'y retrouver, créés tes fonctions sous forme de procédures, ce sera plus simple à gérer.

Publié : sam. 05/janv./2008 21:11
par micio
'save' est vide, non ?

Publié : sam. 05/janv./2008 21:20
par comtois
ou ça

Code : Tout sélectionner

If OpenWindow(0, 0, 0, 400, 120, "Thy se prend la tête", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  If CreateGadgetList(WindowID(0))
    ListIconGadget(1, 10, 10, 150, 100, "ListIcon", 140, #PB_ListIcon_GridLines|#PB_ListIcon_AlwaysShowSelection)
    For a= 1 To 4 : AddGadgetItem(1, -1, "Ligne "+Str(a)) : Next a
    StringGadget(2,200,10,100,20,"")
  EndIf
 
  Repeat
    Event = WaitWindowEvent()
   
    Select Event
     
      Case #PB_Event_Gadget
        Select EventGadget()
          Case 1
            If EventType() = #PB_EventType_LeftClick
              Index = GetGadgetState(1)
              SetGadgetText(2, GetGadgetText(1))
            EndIf
          Case 2
            If EventType() = #PB_EventType_Change
              Index = GetGadgetState(1)
              SetGadgetText(1, GetGadgetText(2))
            EndIf
        EndSelect
       
    EndSelect
  Until Event = #PB_Event_CloseWindow
EndIf

Publié : sam. 05/janv./2008 21:45
par micio
Bonjour à tous

sans conviction mais pourquoi pas

Code : Tout sélectionner

 
If OpenWindow(0, 0, 0, 400, 120, "Thy se prend la tête", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  If CreateGadgetList(WindowID(0))
    ListIconGadget(1, 10, 10, 150, 100, "ListIcon", 140, #PB_ListIcon_GridLines|#PB_ListIcon_AlwaysShowSelection)
    For a= 1 To 4 : AddGadgetItem(1, -1, "Ligne "+Str(a)) : Next a
    StringGadget(2,200,10,100,20,"")
  EndIf
EndIf

Repeat
  Event = WaitWindowEvent()

  If Event = #PB_Event_Gadget
    Select EventGadget()
      Case 1
        If GetGadgetState(1)>-1
          SetGadgetText(2,GetGadgetItemText(1, GetGadgetState(1)))
        EndIf
    EndSelect
  EndIf
Until Event = #PB_Event_CloseWindow
cordialement micio

Publié : sam. 05/janv./2008 22:34
par micio
Bonjour à tous

ou peut-être

Code : Tout sélectionner

 
If OpenWindow(0, 0, 0, 400, 120, "Thy se prend la tête", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  If CreateGadgetList(WindowID(0))
    ListIconGadget(1, 10, 10, 150, 100, "ListIcon", 140, #PB_ListIcon_GridLines|#PB_ListIcon_AlwaysShowSelection)
    For a= 1 To 4 : AddGadgetItem(1, -1, "Ligne "+Str(a)) : Next a
    StringGadget(2,200,10,100,20,"")
  EndIf
EndIf

Repeat
  Event = WaitWindowEvent()
  evgadg = EventGadget()
 
  If event = #PB_Event_Gadget
    If evgadg = 1
      SetGadgetText(2,GetGadgetItemText(1, GetGadgetState(1)))
    EndIf
    If evgadg = 2
      s = GetGadgetState(1)
      SetGadgetItemText(1, s, GetGadgetText(2))
    EndIf
  EndIf 
Until Event = #PB_Event_CloseWindow 
cordialement micio

Publié : dim. 06/janv./2008 8:17
par Thyphoon
Merci beaucoup a tous !

J'ai compris comment proceder maintenant ! :D