How to resolve the algorithm GUI component interaction step by step in the PureBasic programming language

Published on 12 May 2024 09:40 PM

How to resolve the algorithm GUI component interaction step by step in the PureBasic programming language

Table of Contents

Problem Statement

Almost every application needs to communicate with the user in some way. Therefore, a substantial part of the code deals with the interaction of program logic with GUI components. Typically, the following is needed:

For a minimal "application", write a program that presents a form with three components to the user:

The field is initialized to zero. The user may manually enter a new value into the field, or increment its value with the "increment" button. Entering a non-numeric value should be either impossible, or issue an error message. Pressing the "random" button presents a confirmation dialog, and resets the field's value to a random value if the answer is "Yes". (This task may be regarded as an extension of the task Simple windowed application).

Let's start with the solution:

Step by Step solution about How to resolve the algorithm GUI component interaction step by step in the PureBasic programming language

Source code in the purebasic programming language

Enumeration 
  #StringGadget
  #Increment
  #Random
EndEnumeration

If OpenWindow(0,#PB_Ignore,#PB_Ignore,180,50,"PB-GUI",#PB_Window_SystemMenu)
  StringGadget(#StringGadget,5,5,170,20,"",#PB_String_Numeric)
  ButtonGadget(#Increment,5,25,80,20, "Increment")
  ButtonGadget(#Random,  90,25,80,20, "Random")
  Repeat
    Event=WaitWindowEvent()
    If Event=#PB_Event_Gadget
      Select EventGadget()
        Case #Increment
          CurrentVal=Val(GetGadgetText(#StringGadget))
          SetGadgetText(#StringGadget,Str(CurrentVal+1))
        Case #Random
          Flag=#PB_MessageRequester_YesNo
          Answer=MessageRequester("Randomize","Are you sure?",Flag)
          If Answer=#PB_MessageRequester_Yes
            SetGadgetText(#StringGadget,Str(Random(#MAXLONG)))
          EndIf
      EndSelect
    EndIf
  Until Event=#PB_Event_CloseWindow
  CloseWindow(0)
EndIf

  

You may also check:How to resolve the algorithm Floyd-Warshall algorithm step by step in the Ruby programming language
You may also check:How to resolve the algorithm Self numbers step by step in the Python programming language
You may also check:How to resolve the algorithm Conditional structures step by step in the Befunge programming language
You may also check:How to resolve the algorithm First-class functions step by step in the min programming language
You may also check:How to resolve the algorithm RPG attributes generator step by step in the Run BASIC programming language