MENU DEROULANT pb valider la sélection

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
david
Messages : 208
Inscription : jeu. 03/févr./2005 21:10

MENU DEROULANT pb valider la sélection

Message par david »

le vrai programme ouvre un fichier comprenant:
LIBELLE1
NOM1
LIBELL2
NOM2
LIBELLE3
NOM3.....
..... et affecte celles-ci à ''''Dim InfoSource.s (10)''''

Lorsque le volet déroulant affiche la ligne1 (libellé)
je voudrais que la fenêtre à côté mette à jour
la valeur de la ligne 2 (nom correspondant).


j'ai crée une liste de 10 valeurs (0 à 9) pour simplifier ici
peut-être quelqu'un verra-t-il d'où ça pêche?
j'ai un volet déroulant (affichant les valeurs : 0,2,4,6,8) (avec utilisation STEP2)
je voudrais que lorsque je modifie l'information dans le volet deroulant (selection d'une information) il mette à jour l'information correspondante dans la fenetre à côté

Je n'arrive pas à lui dire "Si #ListeRead est modifiée...
Ni non plus à mettre les deux infos en correspondance...
merci d'avance

Code : Tout sélectionner

;- Window Constants
Enumeration
  #Window_0
  #PB_EventGadget
EndEnumeration

;- Gadget Constants
Enumeration
  #ListeRead
  #String_0
  #Valide_0
EndEnumeration

;
;
   Dim InfoSource.s (10) ;charge les 10 lignes d'infos (a traiter avec STEP2)

  For a = 0 To 9 : InfoSource(a) = Str(a) : Next a
   If OpenWindow(#Window_0, 216, 0, 239, 63, "COMPTE-A-REBOURS",#PB_Window_SystemMenu |#PB_Window_ScreenCentered | #PB_Window_TitleBar) And CreateGadgetList(WindowID(0))
        
   
     
  ComboBoxGadget(#ListeRead, 0, 0, 130, 100)
   For a = 0 To 9 Step 2  : AddGadgetItem(#ListeRead, -1,InfoSource(a)) : Next a
  SetGadgetState(#ListeRead, 0)   ; sélectionne le premier élément (la numérotation commence à 0)
       a = GetGadgetState(#ListeRead)+1 ;donne le chrono correspondant
    
    
        StringGadget(#String_0, 130, 0, 70, 20, InfoSource(a))
        ButtonGadget(#Valide_0, 201, 2, 40, 20, "OK")  
        
Repeat 
Event=WaitWindowEvent() 
If Event=#PB_Event_Gadget
If EventType()=#PB_EventType_LeftClick 
Select EventGadget() 
                          
                         Case #ListeRead
                         
  MessageRequester("test", "teste fonctionnement choix", #MB_ICONERROR)
 ;a = GetGadgetState(#ListeRead)   ; va voir quel n° ligne dans libellé
 ;GetGadgetState(#String_0)+1 = a;donne le chrono correspondant
                         
                         
                         
                         Case #Valide_0
                         End
                        
       EndSelect 
    EndIf 
  EndIf 
Until Event=#PB_Event_CloseWindow 
EndIf
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message par Guimauve »

Je pense que c'est ça.

A+
Guimauve

Code : Tout sélectionner

;- Window Constants
Enumeration
  #Window_0
  #PB_EventGadget
EndEnumeration

;- Gadget Constants
Enumeration
  #ListeRead
  #String_0
  #Valide_0
EndEnumeration

;
;
Dim InfoSource.s (10) ;charge les 10 lignes d'infos (a traiter avec STEP2)

For a = 0 To 9 : InfoSource(a) = Str(a) : Next a
If OpenWindow(#Window_0, 216, 0, 239, 63, "COMPTE-A-REBOURS",#PB_Window_SystemMenu |#PB_Window_ScreenCentered | #PB_Window_TitleBar) And CreateGadgetList(WindowID(0))
  
  
  
  ComboBoxGadget(#ListeRead, 0, 0, 130, 100)
  For a = 0 To 9 Step 2  : AddGadgetItem(#ListeRead, -1,InfoSource(a)) : Next a
  SetGadgetState(#ListeRead, 0)   ; sélectionne le premier élément (la numérotation commence à 0)
  a = GetGadgetState(#ListeRead)+1 ;donne le chrono correspondant
  
  
  StringGadget(#String_0, 130, 0, 70, 20, InfoSource(a))
  ButtonGadget(#Valide_0, 201, 2, 40, 20, "OK") 
  
  Repeat
    Event=WaitWindowEvent()
    If Event=#PB_Event_Gadget
      
      
      Select EventGadget()
        
        Case #ListeRead
          SetGadgetText(#String_0, GetGadgetItemText(#ListeRead,GetGadgetState(#ListeRead),0))
          ; MessageRequester("test", "teste fonctionnement choix", #MB_ICONERROR)
          ;a = GetGadgetState(#ListeRead)   ; va voir quel n° ligne dans libellé
          ;GetGadgetState(#String_0)+1 = a;donne le chrono correspondant
          
          
          
        Case #Valide_0
          End
          
      EndSelect
    EndIf
  Until Event=#PB_Event_CloseWindow
EndIf 
Répondre