Older Version Newer Version

JanetTerra JanetTerra Dec 3, 2009

**This is Part 4 of a 4 Part Series** * Part 1 - [[ButtonsAndMore|What is a Button?]] * Part 2 - [[CheckboxesAndMore|What is a Checkbox?]] * Part 3 - [[RadiobuttonsAndMore|What is a Radiobutton?]] * Part 4 - What is a Groupbox? * Conclusion - [[ButtonChoicesAndMore|Making the Best Choice]] ==What is a Checkbox?== All [[RadiobuttonsAndMore|radiobuttons]] within the same window are seen as one radio-set, or group. From the helpfile {{It is possible for only one radiobutton in a radio-set to be "set" at one time. The groupbox allows the window to have multiple radio-sets of radiobuttons. Only one of all radiobuttons in a groupbox will be allowed to be in a set state. Click on one to set it, and all the others will be reset.}} In the demo being used for this tutorial, we'll define three groups (sun/cloud, yellow flower/pink flower, ladybug/caterpillar). Each of these pairs will be contained in a separate groupbox. The groupbox is declared before the window is opened: {{GROUPBOX #handle.ext, "label", x, y, wide, high}} All radiobuttons that lie within the groupbox will be recognized as being in the same radio-set. Notice that the code doesn't change. We have already included the Reset of the Other Radiobutton in the Set This Radiobutton code. But, now, we can see 3 distinct choices offered in the 3 sets of radiobuttons. [[code format="vbnet"]] ' Demo to Illustrate Groupboxes Nomainwin WindowWidth = 800 WindowHeight = 600 UpperLeftX = Int((DisplayWidth-WindowWidth)/2) UpperLeftY = Int((DisplayHeight-WindowHeight)/2) Radiobutton #main.rbtn1, "Draw Sun", [drawSun], [eraseSun], 20, 530, 100, 24 Radiobutton #main.rbtn2, "Draw Cloud", [drawCloud], [eraseCloud], 150, 530, 100, 24 Groupbox #main.gbx1, "Celestial", 10, 510, 250, 50 Radiobutton #main.rbtn3, "Draw Yellow Flower", [drawYellowFlower], [eraseYellowFlower], 280, 530, 112, 24 Radiobutton #main.rbtn4, "Draw Pink Flower", [drawPinkFlower], [erasePinkFlower], 410, 530, 108, 24 Groupbox #main.gbx2, "Agricultural", 270, 510, 250, 50 Radiobutton #main.rbtn5, "Draw Ladybug", [drawLadybug], [eraseLadybug], 540, 530, 100, 24 Radiobutton #main.rbtn6, "Draw Caterpillar", [drawCaterpillar], [eraseCaterpillar], 670, 530, 100, 24 Groupbox #main.gbx3, "Entomological", 530, 510, 250, 50 Graphicbox #main.gb, 1, 1, 791, 500 Open "The Radiobuttons" for Window as #main #main, "Trapclose [endDemo]" #main.gb, "Down" 'Draw the Blue Sky #main.gb, "Color Darkblue; Backcolor Darkblue; Place 0 0" #main.gb, "Boxfilled 790 250" 'Draw the Green Ground #main.gb, "Color Darkgreen; Backcolor Darkgreen; Place 0 250" #main.gb, "Boxfilled 790 500" Wait [endDemo] Close #main End [drawSun] Gosub [drawSunRoutine] Gosub [eraseCloudRoutine] Wait [drawCloud] Gosub [drawCloudRoutine] Gosub [eraseSunRoutine] Wait [drawYellowFlower] Gosub [drawYellowFlowerRoutine] Gosub [erasePinkFlowerRoutine] Wait [drawPinkFlower] Gosub [drawPinkFlowerRoutine] Gosub [eraseYellowFlowerRoutine] Wait [drawLadybug] Gosub [drawLadybugRoutine] Gosub [eraseCaterpillarRoutine] Wait [drawCaterpillar] Gosub [drawCaterpillarRoutine] Gosub [eraseLadybugRoutine] Wait [drawSunRoutine] #main.gb, "Color Yellow; Backcolor Yellow" For angle = 10 to 360 Step 10 #main.gb, "Place 200 125; North; Turn ";angle #main.gb, "Go ";Int(Rnd(1) * 20) + 60 Next angle #main.gb, "Place 200 125; Circlefilled 50" Return [eraseSunRoutine] #main.gb, "Color Darkblue; Backcolor Darkblue" #main.gb, "Place 40 0; Boxfilled 300 210" Return [drawCloudRoutine] #main.gb, "Color White; Backcolor White" For i = 1 to 10 x = Int(Rnd(1)*100) + 600 y = Int(Rnd(1)*100) + 80 #main.gb, "Place ";x;" ";y width = Int(Rnd(1)*10) * 5 + 50 height = Int(Rnd(1)*10) * 2 + 20 #main.gb, "Ellipsefilled ";width;" ";height Next i Return [eraseCloudRoutine] #main.gb, "Color Darkblue; Backcolor Darkblue" #main.gb, "Place 550 50; Boxfilled 750 200" Return [drawYellowFlowerRoutine] #main.gb, "Color Green; Backcolor Green" For x = 295 to 305 #main.gb, "Line ";x;" 315 ";x;" 375" Next x #main.gb, "Color Yellow; Backcolor Yellow" For angle = 0 to 360 Step 60 #main.gb, "Place 300 300; North; Up; Turn ";angle #main.gb, "Go 20; Down; Circlefilled 15" Next angle #main.gb, "Color Pink; Backcolor Pink" #main.gb, "Place 300 300; Circlefilled 10" Return [eraseYellowFlowerRoutine] #main.gb, "Color Darkgreen; Backcolor Darkgreen" #main.gb, "Place 265 265; Boxfilled 335 380" Return [drawPinkFlowerRoutine] #main.gb, "Color Green" For x = 495 to 505 #main.gb, "Line ";x;" 315 ";x;" 375" Next x #main.gb, "Color Pink; Backcolor Pink" For angle = 0 to 360 Step 60 #main.gb, "Place 500 300; North; Up; Turn ";angle #main.gb, "Go 20; Down; Circlefilled 15" Next angle #main.gb, "Color Yellow; Backcolor Yellow" #main.gb, "Place 500 300; Circlefilled 10" Return [erasePinkFlowerRoutine] #main.gb, "Color Darkgreen; Backcolor Darkgreen" #main.gb, "Place 465 265; Boxfilled 535 380" Return [drawLadybugRoutine] #main.gb, "Color Red; Backcolor Red" #main.gb, "Place 100 400" #main.gb, "Ellipsefilled 80 50" #main.gb, "Color Black; Backcolor Black" #main.gb, "Place 80 400; Circlefilled 5" #main.gb, "Place 90 390; Circlefilled 5" #main.gb, "Place 90 410; Circlefilled 5" #main.gb, "Place 110 385; Circlefilled 5" #main.gb, "Place 105 400; Circlefilled 5" #main.gb, "Place 110 415; Circlefilled 5" #main.gb, "Place 125 392; Circlefilled 5" #main.gb, "Place 125 408; Circlefilled 5" #main.gb, "Line 136 396 150 380; Circlefilled 3" #main.gb, "Line 136 404 150 420; Circlefilled 3" Return [eraseLadybugRoutine] #main.gb, "Color Darkgreen; Backcolor Darkgreen" #main.gb, "Place 50 375; Boxfilled 155 425" Return [drawCaterpillarRoutine] #main.gb, "Color Darkcyan; Backcolor Darkcyan" x = 620 For i = 1 to 4 y = 400 - 10 * (i/2 = Int(i/2)) #main.gb, "Place ";x;" ";y #main.gb, "Ellipsefilled 50 20" x = x + 30 Next i #main.gb, "Color Black; Backcolor Black" #main.gb, "Place 616 400; Circlefilled 4" #main.gb, "Place 624 400; Circlefilled 4" Return [eraseCaterpillarRoutine] #main.gb, "Color Darkgreen; Backcolor Darkgreen" #main.gb, "Place 590 375; Boxfilled 750 425" Return [[code]] Now the visual display matches the code. ----