![]() |
Introduction to Objects |
|
Fundamentals of Windows Controls |
A computer application, such as those that run on Microsoft Windows, is equipped with objects called Windows controls. These are the objects that allow a person to interact with the computer. |
|
The Form |
|
The primary control used on most applications is called a form. To create a form, on the main menu of Microsoft Visual Basic, you can click Insert -> UserForm. This would add a form to your project. The form is primarily used as a platform on which you add other controls. For this reason, a form is referred to as a container. By itself, a form is not particularly useful. You should add other objects to it. When you create or add a form, a module is also automatically created for it. To access the module associated with a form, you can right-click the form and click View Code. |
When working in Microsoft Excel, you can use Windows controls either on the work area or in a form in Microsoft Visual Basic. Therefore, just like a form, a spreadsheet also is a container of controls.
The main objects used to help a person interact with the computer are Windows controls. There are two main ways you can access these objects when working with Microsoft Excel. If you are working in Microsoft Excel, you can add or position some Windows controls on the document. To do that, on the Ribbon, click Developer. In the Control section, click Insert:
This would display the list of controls available in Microsoft Excel. The controls appear in two sections: Form Controls and ActiveX Controls. If you are working on a spreadsheet in Microsoft Excel, you should use only the controls in the ActiveX Controls section. If you are working on a form in Microsoft Visual Basic, a Toolbox equipped with various controls will appear.
The Developer tab of the Ribbon in Microsoft Excel provides the most regularly used controls. These controls are enough for any normal spreadsheet you are developing. Besides these objects, other controls are left out but are still available. To use one or more of these left out controls, in the Controls section of the Ribbon, click Insert and click the More Controls button:
This would open the More Controls dialog box:
You can scroll up and down in the window to locate the desired control. If you see a control you want to use, click it and click OK. In Microsoft Visual Basic, to access more controls, on the main menu, you can click Tools -> Additional Controls... This would open the Additional Controls dialog box:
To select a control, you can click its check box. After selecting the controls, click OK.
Every control in the Developer tab of the Ribbon or in the Toolbox of Microsoft Visual Basic has a specific name. You may be familiar with some of these controls. If you are not sure, you can position the mouse on a control and a tool tip would come up. In our lessons, we will use the tool tip of a control to name it. The names we will use are:
To use one of the controls from the Ribbon or the Toolbox, you can click it. If you then simply click its container, the control would be added where you clicked and with some default dimensions. In Microsoft Excel, if you click the button control in the Form Controls section and click the work area, just after the control has been added the Assign Macro dialog box would come up:
In our lessons, when working in Microsoft Excel, we will avoid using the objects in the Form Controls section. If you want, instead of clicking and releasing the mouse, you can click and drag. This allows you to "draw" the control and give the dimensions of your choice. If the control has already been added but you want it to assume different dimensions, you can click it to select it and then drag one of its border handles. To programmatically add a control to a spreadsheet, use the following formula: Private Sub Exercise()
Worksheets(1).OLEObjects.Add "Forms.ControlName.1"
End Sub
The only thing you need to know and change about this formula is the ControlName factor. We will learn about Worksheets(1) in Lesson 12. Use the following names:
Here is an example that creates and positions a text box on a spreadsheet: Private Sub Exercise()
Worksheets(1).OLEObjects.Add "Forms.TextBox.1"
End Sub
The above technique is used to add one control at a time. If you want to add the same control again, you must click it on the Ribbon or in the Toolbox and click its container again. If you plan to add the same control many times, in the Toolbox of Microsoft Visual Basic, double-click the control and click the form as many times as necessary. When you have reached the desired number of copies of that control, to dismiss it, in the Toolbox, click the same control again, click another control, or click the Select Objects button.
After you have added a control to a container, in order to perform any type of configuration on the control, you must first select it. Sometimes you will need to select a group of controls. To select a control in the work area in Microsoft
Excel, first, in the
Controls section of the Ribbon, click the Design Mode button In Microsoft Excel, when a control is selected, it is surrounded by 8 small circles, also called handles. Here is an example: ![]() In Microsoft Visual Basic, when a control is selected, it is surrounded by 8 small squares:
To select more than one control on a spreahsheet, click the first. Press and hold Shift. Then click each of the desired controls. If you click a control that should not be selected, click it again. After selecting the group of controls, release Shift: ![]() If you are working on a form in Microsoft Visual Basic, first click one of the controls you want to select, then press and hold Ctrl. Click each of the desired controls. If you click a control that should not be selected, click it again. After selecting the group of controls, release Ctrl that you were holding. As another technique you can use to select various controls, click an unoccupied area on the form, hold the mouse down, drawing a fake rectangle that would either include each of the desired controls or would touch each, then release the mouse: ![]() Every control touched by the fake rectangle or included in it would be selected: ![]() When a group of controls is selected, the first selected control displays 8 handles but its handles are white while the others are dark.
If there is a control on your form or your workarea but you don't need it, you can remove it. To delete a control, first select it and then press Delete. You can also right-click a control and click Cut. To remove a group of controls, first select them, then press Delete or right-click the selection and click Cut.
The language of Microsoft Visual Basic uses the concept of class to identify or manage the parts of an application. Consider an object like a house. It has such characteristics as its type (single family, townhouse, condominium, etc), the number of bedrooms, the number of bathrooms, etc:
These characteristics are used to describe a house to somebody who wants to buy it. To get such an object, you must first define the criteria that describe it. Here is an example: House
[
Address
Type of House
Number of Bedrooms
Number of Bathrooms
Has Indoor Garage
The Living Room is Covered With Carpet
The Kitchen Has an Island Stove
]
This information is used to describe a house. Based on this, House is called a class. To actually describe a real house, you must provide information for each of the above characteristics. Here is an example: House: Langston
[
Address: 6802 Leighton Ave
Type of House: Single Family
Number of Bedrooms: 4
Number of Bathrooms: 3
Has Indoor Garage: Yes
The Living Room is Covered With Carpet: Yes
The Kitchen Has an Island Stove: No
]
In this case, Langston is not a class anymore, it is a real house and is explicitly described. Therefore, Langston is called an object. Based on this, a class is a technique used to provide the criteria to define an object. An object is the result of a description based on a class.
In our example of a house, we used words to describe it. Examples are: Address, Type of House, Number of Bedrooms, Number of Bathrooms. In computer programming, the characteristics used to describe an object are referred to as its properties. To display the characteristics of a Windows control, in Microsoft Excel:
Any of these two actions would display the Properties window for the control that was right-clicked:
![]() The Properties window would stay on the screen of Microsoft Excel as long as you want. To show the properties of another control, simply click it in the work area. If you are working in Microsoft Visual Basic, to show the characteristics of a control, right-click it and click Properties. This also would display the Properties window and show the characteristics of the selected control. While the Properties window in Microsoft Excel floats and does not hold a specific position, by default, in Microsoft Visual Basic, the Properties window is position on the lower-left side: ![]() You can move it by dragging its title bar. The Properties window allows you view or change a characteristic of the control. The properties of an object can be changed when designing it or by writing code. You can also manipulate these characteristics both at design and at run times. This means that you can set some properties at design time and some others at run time. The items in the Properties window display in two lists. In the beginning, you may be regularly lost when looking for a particular property. To get the list in alphabetic order, click the Alphabetic tab. To get the list by categories, click the Categorized tab. When a control is selected, the Properties window displays only its characteristics. When various controls have been selected, the Properties window displays only the characteristics that are common to the selected controls.
|
After you have added a control to a work area or to a form, in order to perform any type of configuration on the control, we saw that you must first select it. Besides the techniques we reviewed, to select a control, if you know its name, you can click the arrow of the combo box in the top section of the Properties window and select it:
![]()
After adding a control to your application, you can manipulate its
characteristics. If you are working in Microsoft Excel, to put a control
into edit mode, in the Controls section of the Ribbon, click the Design
Mode button
Each field in the Properties window has two sections: the property’s
name and the property's value: ![]() The name of a property is represented in the left column. This is the official name of the property. Notice that the names of properties are in one word. Based on this, our House class would have been defined as follows: House
[
Address
TypeOfHouse
NumberOfBedrooms
NumberOfBathrooms
HasIndoorGarage
LivingRoomCoveredWithCarpet
KitchenHasIslandStove
]
You can use this same name to access the property in code.
To access a property of a control using code, type the name of the control, followed by a period, followed by the name of the property. Based on this, if you have a House object named Langston, to access its TypeOfHouse property, you would write: Langston.TypeOfHouse
The box on the right side of each property name represents the value of the property that you can set for an object. There are various kinds of fields you will use to set the properties. To know what particular kind a field is, you can click its name. To set or change a property, you use the box on the right side of the property’s name: the property's value, also referred to as the field's value.
To programmatically change the value of a property, type the name of the control, followed by a period, followed by the name of the property, followed by =. Then, on the right side of equal, you must provide the value but this depends on the type of value. The people who developed the controls also assigned some primary values to their properties. This is the type of value that a property either is most likely to have or can use unless you decide to change it. The primary value given to a property is referred to as its default value. Most of the time, you can use that property. In some other assignments, the default value will not be suitable.
Langston.Address = "6802 Leighton Ave"
Some fields expect a numeric value. In this case, you can click the name of the field and type the desired value. If you type an invalid value, you would receive a message box notifying you of the error: ![]() When this happens, click OK and type a valid value. If the value is supposed to be an integer, make sure you don't type it with a fractional part.
To change the value of some of the fields, you would first click the arrow of their combo box to display the available values. After clicking the arrow, a list would display:
There are various types of list-based fields. Some of them display just two items. To change their value, you can just double-click the field. Some other fields have more than two values in the list. To change them, you can click their arrow and select from the list. You can also double-click a few times until the desired value is selected. Some other items would dispplay a window from where you would click the option you want:
To programmatically specify the value of a list-based property, you must use one from a list. For example, suppose you had defined a list of types of house as tpeSingleFamily, tpeTownHouse, and tpeCondominium. To use one of these values for a House object named Langston, you would type: Langston.TypeOfHouse = tpeSingleFamily In most cases, each member of such a list also uses a natural number. An example would be:
Although we used 0, 1, and 2 in this list, there are no predefined rules as to the number allocated for each member of the list. The person who created the list also decided what number, if any, each member of the list would have (if you are curious, in most programming languages or libraries, these types of properties are created using an enumeration (in C++ or in the the .NET Framework) or a set (Borland VCL)). Based on this, the above code would also be written as: Langston.TypeOfHouse = 0
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
||
| Previous | Copyright © 2008 FunctionX, Inc. | Next |
|
|
||