Page 2 of 2

Re: Event Handling: Buttons vs. StringGadgets

Posted: Thu May 12, 2016 2:50 pm
by mestnyi
In my opinion it should be so.

Code: Select all

EnableExplicit
Enumeration
  #Window_mainForm 
  #string1
  #string2
  #string3
EndEnumeration

Define Event

Global Tries = 0

Procedure StringGadgetHandler()
  Tries + 1
  Debug "You clicked on gadget " + EventGadget() + " on try " + Str(Tries)
EndProcedure

If OpenWindow(#Window_mainForm,0,0,800,250,"Test with StringGadgets",#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_ScreenCentered)
  
  StringGadget(#string1,100, 30, 150, 60, "stringGadget 1",#ES_MULTILINE|#ES_AUTOVSCROLL|#ESB_DISABLE_LEFT|#ESB_DISABLE_RIGHT|#ES_READONLY)
  BindGadgetEvent(#string1,@StringGadgetHandler(),#PB_EventType_Focus)  
  
  StringGadget(#string2,300, 30, 150, 60, "stringGadget 2",#ES_MULTILINE|#ES_AUTOVSCROLL|#ESB_DISABLE_LEFT|#ESB_DISABLE_RIGHT|#ES_READONLY)
  BindGadgetEvent(#string2,@StringGadgetHandler(),#PB_EventType_Focus)  
  
  StringGadget(#string3,500, 30, 150, 60, "stringGadget 3",#ES_MULTILINE|#ES_AUTOVSCROLL|#ESB_DISABLE_LEFT|#ESB_DISABLE_RIGHT|#ES_READONLY)
  BindGadgetEvent(#string3,@StringGadgetHandler(),#PB_EventType_Focus)  
  
  
  Repeat
    
    Event = WaitWindowEvent()
    
    If EventType() = #PB_EventType_Focus
      SetActiveGadget(-1)
    EndIf
    
    If Tries = 4
      Tries = 0
      SetActiveGadget(-1)
      MessageRequester("","No more clicks for you. Resetting.")
    EndIf
    
  Until Event = #PB_Event_CloseWindow
  
EndIf