## Visual Basic in 12 Easy Lessons velp06.htm

- Stop & Type
  - The Program's Description
  - The Program's Action
  - The Event Procedures
  - Descriptions
  - Close the Application

#
Project 6

##
Combining Code and Controls

###
Stop & Type

This lesson taught you how to work with advanced array data as well as how to place option button and check box controls on the form. The arrays simplify your programs by letting you step through data and controls using For loops. The option buttons and check boxes offer your users additional ways to select from choices that your program offers.

You can now add control to your programs by putting loops in the code that repeat sections of the program. Computers are excellent tools for repeating calculations as many times as necessary to produce results. Loops also provide ways for you to check user input against good and bad values and repeat the input prompting as many times as necessary for the user to enter data in the required format and range.

In this lesson, you saw the following:

- How arrays help simplify the definition of multiple variables
- How control arrays help work with multiple controls (instead of several event procedures, you need to write only one)
- When to use check boxes and when to use option buttons
- Where to use framed option button groups to create sets of option buttons from which the user can select

####
The Program's Description

Figure P6.1 shows the PROJECT6.MAK application as soon as you load and run the program. The project is simple but uses two sets of framed option buttons and two control arrays of option buttons. The project's controls are as follows:

- Two frames, one holding 16 color option buttons and the second holding three beeping options
- 16 option buttons inside the left frame that select a background color for the form
- 3 option buttons inside the right frame that determine how many beeps the user wants to hear
- An Exit command button to terminate the application

Figure P6.1. The project's opening screen.

The application is simple because of the control arrays. Control arrays greatly simplify an application in which several similar controls are needed to perform similar functions. Without the control arrays, this extremely introductory project would be burdened by at least twenty event procedures just to perform the same task that it currently performs with only three event procedures!

####
The Program's Action

When you first run the program, the form's background color is set to Black simply because the first option button in the left frame is selected. None of the beeping options is set when the program first executes.

You can select one of the beeping options in addition to the color options. Remember that when option buttons appear in separate frames, the option buttons are grouped to allow for one selection from each group. Without the frames, you could select a color or select a beep option button, but not both.

Click the second beeping option button and you'll hear two beeps. Select a different color option button and the form's background color changes accordingly.

####
The Event Procedures

Listing P6.1 contains PROJECT6.MAK's event procedures. The Index value sent to the optBeep_Click() and to the optColor_Click() event procedures are used inside each procedure to beep or set an appropriate form color.

> > Note: The QBColor() function is a built-in Visual Basic that returns a hexadecimal color code so that you don't have to know anything about hexadecimal values. When you use an integer value from 0 to 15 inside QBColor()'s parentheses, Visual Basic function sets a color that matches that number. The colors correspond to the order shown on the form. The Index values for the sixteen color values are numbered from 0 to 15, so the event procedure can use that color code inside QBColor().

Listing P6.1. The color changing, beeping, and exit event procedures.

    1: Sub optCol_Click (Index As Integer)

    2: ' One of the color option buttons

    3: ' triggered this event

    4:
    frmOpt.BackColor = QBColor(Index)

    5: End Sub

    6: Sub optBeep_Click (Index As Integer)

    7: ' The beeping option buttons have Index

    8: ' properties that begin with 1 that

    9: ' correspond to the number of beeps.

    10: Dim Ctr As Integer

    11: Dim Delay As
    Long

    12: For Ctr = 1 To Index

    13: Beep

    14: For Delay = 1 To 80000

    15: ' Do nothing but waste time...

    16: Next Delay

    17: Next Ctr

    18: End Sub

    19: Sub cmdExit_Click ()

    20: End

    21: End Sub

####
Descriptions

1: The color-changing option buttons make up the control array named optCol, so the name of the Click event procedure is optCol_Click(). No matter which of the 16 color option buttons the user clicks, this event procedure executes.

2: A remark helps explain the purpose of the event procedure.

3: A remark helps explain the purpose of the event procedure.

4: Sets the form's background color property to the QBColor() value of the Index that corresponds to the option button clicked.

5: Terminate the event procedure.

> > 5: Without control arrays, each option button would require its own event procedure.

6: The beeping option buttons make up the control array named optBeep, so the name of the Click event procedure is optBeep_Click(). No matter which of the 3 beeping option buttons the user clicks, this event procedure executes.

7: A remark helps explain the purpose of the event procedure.

8: A remark helps explain the purpose of the event procedure.

9: A remark helps explain the purpose of the event procedure.

10: Define an integer variable used for the loop control variable.

11: Define a long integer variable used for slowing down the loop.

12: Loops enough times to match the option button's Index value, which, according to the Property window, contains the values from 1 to 3.

13: Beep the computer's speaker.

14: Begin a huge For loop that slows down the beeps.

15: A remark is the only thing inside the innermost nested loop.

> > 15: A nested loop slows down the computer's beeping speed.

16: Continue wasting some time by repeating the inner loop.

17: Beep again if the beeps have not completed yet.

18: Terminate the event procedure.

####
Close the Application

You can now exit the application and exit Visual Basic.

Are you getting tired of beeping and color-changing programs? The simple applications that you've been working with have kept your mind focused on the Visual Basic environment and language. You've now reached the halfway point of this book's education. You have enough tools in your Visual Basic programming repertoire to begin writing more powerful applications, and you'll do just that in the next lesson.