Page 1 sur 1

Petit problème de fonctionnement d'une ComboBoxGadget

Publié : mar. 24/nov./2009 0:14
par Malo
Bonsoir à Tous

Comme précisé dans le titre je bloque sur un petit problème concernant le fonctionement
d'une ComboBoxGadget.

Je demande dans la procédure qui alimente ma ComboBoxGadget de selectionner un index par défaut,
pour cibler au plus près le choix possible de l'utilisateur dans la ComboBoxGadget.
Cela fonctionne bien sauf que je n'arrive pas par la suite à récupérer le nom d'un nouvel élement
selectionné, j'ai toujours celui par défaut que j'avais déterminé.

Code : Tout sélectionner

Procedure Combo_Heure()
 a=0
 
  If  CountGadgetItems(valCombo)=0
      For a = 0 To 23
      c=0
         For b=1 To 4 
               AddGadgetItem(valCombo, -1,Str(a)+":" + Str(c))
            c=c+15
            If c=60 : c=00 : EndIf
         Next
      Next a
   EndIf
    SetGadgetState(valCombo, 28); si je désactive cette ligne je peux selectionner dans la ComboBoxGadget
    valRetCombo$=GetGadgetText(valCombo)
posi=FindString(valRetCombo$,":",1)
   
   
   For x=1 To Len(valRetCombo$)
      y$=Mid(valRetCombo$,x,1)
      If x<posi
         hrCb$=hrCb$+y$
      EndIf
      If x>posi
         mnCb$=mnCb$+y$
      EndIf
   Next
    hrCb=Val(hrCb$)
    mnCb=Val(mnCb$)
   valRetCombo=hrCb*4+(mnCb/15)
      

EndProcedure
;
;
;
Select EventGadget()
Case #S_ExtDeb_1
       valCombo=#S_ExtDeb_1
       Combo_Heure()
       debExtPlg1=valRetCombo

Merci par avance pour vos réponses

Re: Petit problème de fonctionnement d'une ComboBoxGadget

Publié : mar. 24/nov./2009 6:33
par venom
Bonjour Malo,

malheureusement ont ne peut exécuté ton code il manque un morceau.
Pour avoir une réponse plus facilement, essaie de donné un code qui fonctionne.







@++

Re: Petit problème de fonctionnement d'une ComboBoxGadget

Publié : mar. 24/nov./2009 10:58
par Octavius
Bon, c'est pas facile à deviner avec un bout de code tiré de son contexte et qu'on ne peut pas exécuter... Mais il semblerait que tu obliges ta combobox à re-sélectionner la position 28 chaque fois que tu fais une action sur ce gadget. Donc c'est normal, impossible de changer la sélection puisque chaque fois ta procedure Combo_Heure() retourne à la position 28.

Je te suggère de ne sélectionner la position 28 seulement si aucune position n'est au préalable sélectionnée.

Code : Tout sélectionner

If GetGadgetState(valCombo)=-1
  SetGadgetState(valCombo, 28)
EndIf

Re: Petit problème de fonctionnement d'une ComboBoxGadget

Publié : mar. 24/nov./2009 13:06
par kernadec
bonjour Malo
voila, en utilisant le code d' Octavius et en séparant
le formatage du combobox et son resultat avec la boucle event_gadget()

Code : Tout sélectionner

Procedure combo_heure()
valRetCombo$=GetGadgetText(valCombo)
posi.l=FindString(valRetCombo$,":",1)
For x=1 To Len(valRetCombo$)
	y$=Mid(valRetCombo$,x,1)
	If x<posi
	 hrCb$=hrCb$+y$
	EndIf
	If x>posi
	 mnCb$=mnCb$+y$
	EndIf
Next
hrCb=Val(hrCb$)
mnCb=Val(mnCb$)
valRetCombo=hrCb*4+(mnCb/15)
hrCb$=""
mnCb$=""
Debug hrCb
Debug mnCb
Debug valRetCombo	 
EndProcedure
OpenWindow(0,10,10,80,80,"heure",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
 ComboBoxGadget(valCombo.l,30,20,55,20)
  ButtonGadget(1,30,50,55,20,"OK")
  If  CountGadgetItems(valCombo)=0
	 For a = 0 To 23
		c=0
		 For b=1 To 4 
			AddGadgetItem(valCombo, -1,Str(a)+":" + Str(c))
				c=c+15
				If c=60 : c=00 : EndIf
		 Next
		Next a
	EndIf
	
	If GetGadgetState(valCombo)=-1   ; recommandation d'Octavius
    SetGadgetState(valCombo, 28) 
  EndIf 
;  
Repeat
 Event=WaitWindowEvent()
  Select Event
   Case #PB_Event_Gadget
    Select EventGadget()
     Case 1
      combo_heure()
    EndSelect
  EndSelect
Until Event=#PB_Event_CloseWindow
Cordialement

Re: Petit problème de fonctionnement d'une ComboBoxGadget RESOLU

Publié : mar. 24/nov./2009 19:58
par Malo
Bonsoir

Merci à vous trois d'avoir répondu si promptement.
Effectivement j'ai été un court dans mon code, désolé, je serai plus vigilant la prochaine fois.

J'ai transposé le code proposée dans le mien, ça fonctionne très bien.
Merci encore pour la solution , je commençais à m'embourber en triturant dans tous les sens
les Get et les Set de Gadget.

A bientôt pour de nouvelles questions.....