Page 1 of 1

Validate the 4 checkboxes if all of them are not checked

Posted: Tue May 21, 2024 8:45 am
by hoangdiemtinh
I am new to PB.
My primary language is not US/UK. I am using Google Translate.

I add 4 checkboxes to window. How to validate the 4 checkboxes if all of them are not checked.
Thanks.

Re: Validate the 4 checkboxes if all of them are not checked

Posted: Tue May 21, 2024 8:53 am
by BarryG
What do you mean by "validate"? Could mean anything.

Re: Validate the 4 checkboxes if all of them are not checked

Posted: Tue May 21, 2024 9:01 am
by hoangdiemtinh

Code: Select all

If (cb1 ! #PB_Checkbox_Checked) And If (cb2 ! #PB_Checkbox_Checked) And If (cb3 ! #PB_Checkbox_Checked) And If (cb4 ! #PB_Checkbox_Checked)
MessageRequester("infor", "Please select one Checbox at least", #PB_MessageRequester_Info)
EndIf
Does PB support this ?

Re: Validate the 4 checkboxes if all of them are not checked

Posted: Tue May 21, 2024 9:08 am
by Caronte3D

Code: Select all

  If OpenWindow(0, 0, 0, 270, 160, "CheckBoxGadgets Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    
    CheckBoxGadget(0, 10,  10, 250, 20, "CheckBox 1") : SetGadgetState(0,1)
    CheckBoxGadget(1, 10,  40, 250, 20, "CheckBox 2")
    CheckBoxGadget(2, 10,  70, 250, 20, "CheckBox 3")
    CheckBoxGadget(3, 10, 100, 250, 20, "CheckBox 4")
    
    
    Repeat
      
      If Not GetGadgetState(0) And Not GetGadgetState(1) And Not GetGadgetState(2) And Not GetGadgetState(3)
        Debug ("All Checks off")
        End
      EndIf
      
    Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf

Re: Validate the 4 checkboxes if all of them are not checked

Posted: Tue May 21, 2024 9:15 am
by Demivec
hoangdiemtinh wrote: Tue May 21, 2024 9:01 am

Code: Select all

If (cb1 ! #PB_Checkbox_Checked) And If (cb2 ! #PB_Checkbox_Checked) And If (cb3 ! #PB_Checkbox_Checked) And If (cb4 ! #PB_Checkbox_Checked)
MessageRequester("infor", "Please select one Checbox at least", #PB_MessageRequester_Info)
EndIf
Does PB support this ?

Code: Select all

If (GetGadgetState(cb1) <> #PB_Checkbox_Checked) And 
  (GetGadgetState(cb2) <> #PB_Checkbox_Checked) And
  (GetGadgetState(cb3) <> #PB_Checkbox_Checked) And 
  (GetGadgetState(cb4) <> #PB_Checkbox_Checked)
  MessageRequester("infor", "Please select one Checbox at least", #PB_MessageRequester_Info)
EndIf

Re: Validate the 4 checkboxes if all of them are not checked

Posted: Wed May 22, 2024 5:11 pm
by tua
Or less verbose:

Code: Select all

...
  If Not(GetGadgetState(0) + GetGadgetState(1) + GetGadgetState(2) + GetGadgetState(3))
...

Re: Validate the 4 checkboxes if all of them are not checked

Posted: Wed May 22, 2024 6:16 pm
by AZJIO

Code: Select all

GetGadgetState(cb1) & #PB_CheckBox_Unchecked
edit: this doesn't work because #PB_CheckBox_Unchecked=0 and will always return 0

Re: Validate the 4 checkboxes if all of them are not checked

Posted: Thu May 23, 2024 8:33 am
by mk-soft

Code: Select all

If Not (GetGadgetState(0) | GetGadgetState(1) | GetGadgetState(2) | GetGadgetState(3) & #PB_Checkbox_Checked)

Re: Validate the 4 checkboxes if all of them are not checked

Posted: Thu May 23, 2024 8:36 am
by mk-soft
AZJIO wrote: Wed May 22, 2024 6:16 pm

Code: Select all

GetGadgetState(cb1) & #PB_CheckBox_Unchecked
This does not work because the result is always zero.

Re: Validate the 4 checkboxes if all of them are not checked

Posted: Thu May 23, 2024 9:11 am
by RASHAD
Hi

#1 :

Code: Select all

If OpenWindow(0, 0, 0, 270, 160, "CheckBoxGadgets Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    
    CheckBoxGadget(0, 10,  10, 250, 20, "CheckBox 0") 
    CheckBoxGadget(1, 10,  40, 250, 20, "CheckBox 1")
    CheckBoxGadget(2, 10,  70, 250, 20, "CheckBox 2")
    CheckBoxGadget(3, 10, 100, 250, 20, "CheckBox 3")

    Repeat
      Select WaitWindowEvent(1)
        Case #PB_Event_CloseWindow
          Quit = 1          
        
        Case #PB_Event_Gadget
            Select EventGadget()
              Case 0 To 3
                If GetGadgetState(EventGadget()) & #PB_Checkbox_Checked 
                  MessageRequester("Info","Gadget "+Str(EventGadget())+" Checked",#PB_MessageRequester_Ok)
                  For n = 0 To 3
                    SetGadgetState(n,0)
                  Next  
              EndIf
            EndSelect 
        EndSelect      
    Until Quit = 1
  EndIf
#2 :

Code: Select all

If OpenWindow(0, 0, 0, 270, 160, "CheckBoxGadgets Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    
    CheckBoxGadget(0, 10,  10, 250, 20, "CheckBox 0") 
    CheckBoxGadget(1, 10,  40, 250, 20, "CheckBox 1")
    CheckBoxGadget(2, 10,  70, 250, 20, "CheckBox 2")
    CheckBoxGadget(3, 10, 100, 250, 20, "CheckBox 3")
    AddWindowTimer(0,125,100)
    Repeat
      Select WaitWindowEvent(1)
        Case #PB_Event_CloseWindow
          Quit = 1          
        
        Case #PB_Event_Timer
          If checkflag = 1
            checkflag = 0
             For n = 0 To 3
              SetGadgetState(n,0)
            Next  
          EndIf
            
        Case #PB_Event_Gadget
            Select EventGadget()
              Case 0 To 3
                If GetGadgetState(EventGadget()) & #PB_Checkbox_Checked 
                  MessageRequester("Info","Gadget "+Str(EventGadget())+" Checked",#PB_MessageRequester_Ok)
                  checkflag = 1
                EndIf
            EndSelect 
        EndSelect      
    Until Quit = 1
  EndIf