Stringgadget generate two events. Why?

Just starting out? Need help? Post your questions and find answers here.
Johanson
User
User
Posts: 40
Joined: Sat Aug 01, 2020 9:53 am

Stringgadget generate two events. Why?

Post by Johanson »

Code: Select all

OpenWindow(#PB_Any, 100,100, 250,80, "")
StringGadget(1, 100,20, 50,25, "abc")
Repeat
  Select WindowEvent()
    Case #PB_Event_Gadget
      If EventGadget()=1
        Debug "gadget 1"
      EndIf
    Case #PB_Event_CloseWindow
      Break
  EndSelect
Until false
User avatar
Bisonte
Addict
Addict
Posts: 1226
Joined: Tue Oct 09, 2007 2:15 am

Re: Stringgadget generate two events. Why?

Post by Bisonte »

Different Eventtypes !

Code: Select all

 OpenWindow(#PB_Any, 100,100, 250,80, "")
StringGadget(1, 100,20, 50,25, "abc")
Repeat
  Select WindowEvent()
    Case #PB_Event_Gadget
      If EventGadget()=1
        Debug "gadget 1"
        Debug EventType()
      EndIf
    Case #PB_Event_CloseWindow
      Break
  EndSelect
Until false
PureBasic 6.04 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom​​
English is not my native language... (I often use DeepL to translate my texts.)
Johanson
User
User
Posts: 40
Joined: Sat Aug 01, 2020 9:53 am

Re: Stringgadget generate two events. Why?

Post by Johanson »

Fact
14000 and 256

Thanks
Johanson
User
User
Posts: 40
Joined: Sat Aug 01, 2020 9:53 am

Re: Stringgadget generate two events. Why?

Post by Johanson »

EvenType()=14000 means "Get the focus"

and .. EvenType()=256 ???

Are there any other besides:
0 Left mouse button click
1 Right mouse button click
2 Left mouse button double click
3 Right mouse button double click
768 Content change
14000 Get the focus
14001 Lose the focus
14002 EventType_DragStart ?
User avatar
mk-soft
Always Here
Always Here
Posts: 5313
Joined: Fri May 12, 2006 6:51 pm
Location: Germany

Re: Stringgadget generate two events. Why?

Post by mk-soft »

Check always the valid event types. See gadget helps ...

Code: Select all

If OpenWindow(0, 100,100, 250,80, "")
  StringGadget(1, 100,20, 50,25, "abc")
  Repeat
    Select WindowEvent()
      Case #PB_Event_Gadget
        Select EventGadget()
          Case 1
            Debug "gadget 1"
            Select EventType()
              Case #PB_EventType_Change    : Debug "The text has been modified by the user."
              Case #PB_EventType_Focus     : Debug "The StringGadget got the focus."
              Case #PB_EventType_LostFocus : Debug "The StringGadget lost the focus."
                
            EndSelect
            
        EndSelect
        
      Case #PB_Event_CloseWindow
        Break
        
    EndSelect
    
  ForEver
EndIf
My Projects ThreadToGUI / OOP-BaseClass / EventDesigner V3
PB v3.30 / v5.75 - OS Mac Mini OSX 10.xx - VM Window Pro / Linux Ubuntu
Downloads on my Webspace / OneDrive
Lima
User
User
Posts: 40
Joined: Tue Jul 14, 2015 2:52 pm

Re: Stringgadget generate two events. Why?

Post by Lima »

If it is necessary to display a message to the user, it enters an infinite cycle
" got the focus", " lost the focus".
IIs this correct?
Or where is the error?

Code: Select all

If OpenWindow(0, 100,100, 250,200, "")
  StringGadget(1, 100,20, 50,25, "abc")
    StringGadget(2, 100,50, 50,25, "xyz")
  Repeat
    Select WindowEvent()
      Case #PB_Event_Gadget
        Select EventGadget()
          Case 1
            Debug "gadget 1"
            Select EventType()
              Case #PB_EventType_Change    : Debug "The text has been modified by the user."
              Case #PB_EventType_Focus    
                Debug "The StringGadget got the focus."
                   MessageRequester(""," got the focus")
                
              Case #PB_EventType_LostFocus 
                Debug "The StringGadget lost the focus."
                MessageRequester(""," lost the focus")
                
            EndSelect
            
        EndSelect
     
        
      Case #PB_Event_CloseWindow
        Break
        
    EndSelect
    
  ForEver
EndIf

   
User avatar
mk-soft
Always Here
Always Here
Posts: 5313
Joined: Fri May 12, 2006 6:51 pm
Location: Germany

Re: Stringgadget generate two events. Why?

Post by mk-soft »

Of course it is true that the EditGadget loses focus when another window like the MessageRequester is created. Only one object can have focus at a time.
My Projects ThreadToGUI / OOP-BaseClass / EventDesigner V3
PB v3.30 / v5.75 - OS Mac Mini OSX 10.xx - VM Window Pro / Linux Ubuntu
Downloads on my Webspace / OneDrive
Post Reply