Gestions des gadgets !

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Gestions des gadgets !

Message 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
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message 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
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message 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 !
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Message 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.
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
micio
Messages : 17
Inscription : jeu. 06/déc./2007 11:12

Message par micio »

'save' est vide, non ?
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message 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
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
micio
Messages : 17
Inscription : jeu. 06/déc./2007 11:12

Message 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
micio
Messages : 17
Inscription : jeu. 06/déc./2007 11:12

Message 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
Dernière modification par micio le dim. 06/janv./2008 8:55, modifié 1 fois.
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Message par Thyphoon »

Merci beaucoup a tous !

J'ai compris comment proceder maintenant ! :D
Répondre