Petit problème de fonctionnement d'une ComboBoxGadget

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Malo
Messages : 79
Inscription : dim. 09/août/2009 17:48

Petit problème de fonctionnement d'une ComboBoxGadget

Message 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
Avatar de l’utilisateur
venom
Messages : 3138
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

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

Message 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.







@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Octavius
Messages : 312
Inscription : jeu. 26/juil./2007 12:10

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

Message 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
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

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

Message 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
Malo
Messages : 79
Inscription : dim. 09/août/2009 17:48

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

Message 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.....
Répondre