problème avec eventgadgetid()

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
gadjet35
Messages : 190
Inscription : ven. 21/oct./2005 7:49
Localisation : Quelque part en france !

problème avec eventgadgetid()

Message par gadjet35 »

voila un code:

Code : Tout sélectionner

OpenWindow(0,200,100,500,500,#PB_Window_SystemMenu,"transformation binaire en décimale")

 CreateGadgetList(WindowID(0))
  StringGadget(1,250,200,100,20,"")
  ButtonGadget(10,180,280,80,50,"transformer")
  StringGadget(11,100,200,100,20,"")

 Repeat
  u = 0
  pointeur = 1
  Select EventGadgetID()
      Case 10
        Repeat
        Select pointeur
         Case 1
          poids = 128
         Case 2
          poids = 64
         Case 3
          poids = 32
         Case 4 
          poids = 16
         Case 5
          poids = 8
         Case 6
          poids = 4
         Case 7
          poids = 2   
         Case 8 
          poids = 1
         EndSelect
          Debug pointeur
          Debug EventGadgetID()
          octet$ = GetGadgetText(11)
          bit$ = Mid(octet$,pointeur,1)
           If bit$ <> "0" Or bit$ <> "1"
            MessageRequester("erreur","que les nombres 0 et 1 sont accéptés (nombre binaire)")
            Break
           EndIf
          u = u + Val(bit$) * poids
          pointeur = pointeur + 1
          SetGadgetText(1,Str(u))
        Until pointeur = 9
  EndSelect    
Until WaitWindowEvent()=#PB_Event_CloseWindow
pouquoi après un break le eventgadgetid() est toujours égal à 10 ?
comment sortir de la boucle ?
bonne journer à tous !!!
bernard13
Messages : 1221
Inscription : mer. 05/janv./2005 21:30

Message par bernard13 »

j'ai essayer quelque chose

Code : Tout sélectionner




 If OpenWindow(0,200,100,500,500,#PB_Window_SystemMenu,"transformation binaire en décimale") 

 CreateGadgetList(WindowID(0)) 
  StringGadget(1,250,200,100,20,"") 
  ButtonGadget(10,180,280,80,50,"transformer") 
  StringGadget(11,100,200,100,20,"") 
   EndIf
 Repeat 
  u = 0 
  pointeur = 1 
  Select EventGadgetID() 
      Case 10 
        Repeat 
        Select pointeur 
         Case 1 
          poids = 128 
         Case 2 
          poids = 64 
         Case 3 
          poids = 32 
         Case 4 
          poids = 16 
         Case 5 
          poids = 8 
         Case 6 
          poids = 4 
         Case 7 
          poids = 2    
         Case 8 
          poids = 1 
         EndSelect 
          Debug pointeur 
          Debug EventGadgetID() 
          octet$ = GetGadgetText(11) 
          bit$ = Mid(octet$,pointeur,1) 
           If bit$ <> "0" Or bit$ <> "1" 
            MessageRequester("erreur","que les nombres 0 et 1 sont accéptés (nombre binaire)") 
            End 
           EndIf 
          u = u + Val(bit$) * poids 
          pointeur = pointeur + 1 
          SetGadgetText(1,Str(u)) 
        Until pointeur = 9 
   EndSelect    
  



Until WaitWindowEvent()=#PB_Event_CloseWindow

End
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Message par Droopy »

Essaye ça :

Code : Tout sélectionner

;/ Droopy : Conversion Binaire vers Décimale
; 28/10/05

Enumeration
#Input
#Output
#Bouton
EndEnumeration

OpenWindow(0,0,0,220,130,#PB_Window_SystemMenu | #PB_Window_ScreenCentered,"Binaire vers Décimal") 
CreateGadgetList(WindowID(0)) 
StringGadget(#Input,10,10,200,20,"") 
StringGadget(#Output,10,40,200,20,"") 
DisableGadget(#Output,1)
ButtonGadget(#Bouton,10,70,200,50,"CONVERTIR") 
ActivateGadget(#Input)

Procedure ConversionBin2Dec()
  Entree.s=GetGadgetText(#Input)
  For n=1 To Len(Entree)
    Digit.s=Mid(Entree,Len(Entree)-n+1,1)
    If Digit="0" Or Digit="1"
      If Digit="1"
        Valeur=Valeur+Pow(2,n-1)
      EndIf
    Else
      Erreur=1
    EndIf
  Next
  
  If Erreur
    SetGadgetText(#Output,"Erreur ! Digit non binaire saisi")
  Else
    SetGadgetText(#Output,Str(Valeur))
  EndIf
EndProcedure

Repeat
  Evenement=WaitWindowEvent()
  If (Evenement=#PB_Event_Gadget And EventGadgetID()=#Bouton And EventType()=#PB_EventType_LeftClick ) Or EventwParam()=#VK_RETURN
    ConversionBin2Dec()
    Flag=1
  EndIf
Until Evenement =#PB_Event_CloseWindow 
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

il faut récupérer le type d'évennement avec waitwindowevent

Dri
Répondre