Page 1 of 1

MessageRequester triggers itself

Posted: Wed Jun 12, 2024 9:57 am
by Erolcum
MessageRequester creates the same event number with a StringGadget. Problem is : when I click OK button in requester, it opens again. Click to read-only stringgadget ro see the problem.

Code: Select all

Enumeration
  #WIN_MAIN
  #TEXT_INPUT
  #TEXT_INPUT2
  #STRING_INPUT
  #STRING_INPUT2
  #BUTTON_INTERACT
  #BUTTON_CLOSE
EndEnumeration
Global Quit.b = #False
#FLAGS = #PB_Window_SystemMenu | #PB_Window_ScreenCentered
OpenWindow(#WIN_MAIN, 0, 0, 300, 200, "Interaction", #FLAGS) 
TextGadget(#TEXT_INPUT, 10, 10, 280, 20, "Enter text here:")
StringGadget(#STRING_INPUT, 10, 30, 280, 20, "")
StringGadget(#STRING_INPUT2, 10, 70, 280, 20, "buraya yazamazsın dene bakalım",
             #PB_String_ReadOnly)
TextGadget(#TEXT_INPUT2, 10, 110, 280, 20, "TextGadget")
ButtonGadget(#BUTTON_INTERACT, 10, 170, 120, 20, "Echo text")
ButtonGadget(#BUTTON_CLOSE, 190, 170, 100, 20, "Close window")
SetActiveGadget(#STRING_INPUT)
Repeat
  Event = WaitWindowEvent()
  Select Event
    Case #PB_Event_Gadget
      Debug EventGadget()
      Select EventGadget()
        Case #BUTTON_INTERACT
          text.s = GetGadgetText(#STRING_INPUT)
          SetGadgetText(#TEXT_INPUT2,text)
        Case #STRING_INPUT2
          MessageRequester("Uyarı", "Buraya yazamazsın",#PB_MessageRequester_Warning) 
        Case #BUTTON_CLOSE
          Quit = #True
      EndSelect
  EndSelect
Until Event = #PB_Event_CloseWindow Or Quit = #True
End

Re: MessageRequester triggers itself

Posted: Wed Jun 12, 2024 10:20 am
by Comfort
This is constantly being triggered by a Focus event type. Maybe add tooltip instead.

Code: Select all

  Case #STRING_INPUT2
    MessageRequester("Uyarı", "Buraya yazamazsın",#PB_MessageRequester_Warning) 

Re: MessageRequester triggers itself

Posted: Wed Jun 12, 2024 10:31 am
by infratec
Maybe this works:

Code: Select all

Enumeration
  #WIN_MAIN
  #TEXT_INPUT
  #TEXT_INPUT2
  #STRING_INPUT
  #STRING_INPUT2
  #BUTTON_INTERACT
  #BUTTON_CLOSE
EndEnumeration

Global Quit.b = #False

#FLAGS = #PB_Window_SystemMenu | #PB_Window_ScreenCentered
OpenWindow(#WIN_MAIN, 0, 0, 300, 200, "Interaction", #FLAGS) 
TextGadget(#TEXT_INPUT, 10, 10, 280, 20, "Enter text here:")
StringGadget(#STRING_INPUT, 10, 30, 280, 20, "")
StringGadget(#STRING_INPUT2, 10, 70, 280, 20, "buraya yazamazsın dene bakalım", #PB_String_ReadOnly)
TextGadget(#TEXT_INPUT2, 10, 110, 280, 20, "TextGadget")
ButtonGadget(#BUTTON_INTERACT, 10, 170, 120, 20, "Echo text")
ButtonGadget(#BUTTON_CLOSE, 190, 170, 100, 20, "Close window")
SetActiveGadget(#STRING_INPUT)

Repeat
  Event = WaitWindowEvent()
  Select Event
    Case #PB_Event_Gadget
      Debug EventGadget()
      Select EventGadget()
        Case #BUTTON_INTERACT
          text.s = GetGadgetText(#STRING_INPUT)
          SetGadgetText(#TEXT_INPUT2,text)
        Case #STRING_INPUT2
          If EventType() = #PB_EventType_Focus
            SetActiveGadget(-1)
            MessageRequester("Uyarı", "Buraya yazamazsın", #PB_MessageRequester_Warning) 
          EndIf
        Case #BUTTON_CLOSE
          Quit = #True
      EndSelect
  EndSelect
Until Event = #PB_Event_CloseWindow Or Quit = #True

Re: MessageRequester triggers itself

Posted: Wed Jun 12, 2024 10:54 am
by Erolcum
Thank you so much. It works as expected.