home account info subscribe login search My ITKnowledge FAQ/help site map contact us


 
Brief Full
 Advanced
      Search
 Search Tips
To access the contents, click the chapter and section titles.

Visual Basic 6 Programming Blue Book: The Most Complete, Hands-On Resource for Writing Programs with Microsoft Visual Basic 6!
(Publisher: The Coriolis Group)
Author(s): Peter G. Aitken
ISBN: 1576102815
Publication Date: 08/01/98

Bookmark It

Search this book:
 
Previous Table of Contents Next


To add this code, display the SuperString class code in the Code Editing window. Then, at the top of the Code Editing window, select Class from the Object list and Initialize from the Procedure list. Enter the code shown in Listing 6.3.

Listing 6.3 The Class_Initialize event procedure for the SuperString class.

Private Sub Class_Initialize()

‘ Initialize the properties.

mvarValue = “”
mvarLength = 0

End Sub

Using The SuperString Class

A class by itself is not terribly useful. You need to create instances of the class—objects—to do anything. Let’s take a look at how this is done; then we’ll create a simple demonstration program to show off the SuperString class.

Creating Objects

To create an instance of an object, you use the Dim statement. The general syntax is as follows:

Dim varname As [New] classname

Here, varname is the name you will use to refer to the object; it follows regular Visual Basic naming rules. Classname is the name of the class you want to instantiate. I’ll explain the optional New keyword in a moment. Here’s an example of using Dim to create an instance of a class:

Dim SS1 As SuperString

To be precise, this statement does not actually create an instance of the SuperString class, but only creates a variable that can refer to an instance. To create the object, you must execute the following:

Set SS1 = New SuperString

If, however, you use the optional New keyword in the Dim statement, then using the Set statement is unnecessary. In other words, the following code

Dim SS1 As New SuperString

has the same effect as these two statements:

Dim SS1 As SuperString
Set SS1 = New SuperString

Why, then, would we ever need the Set statement? There are two cases.

One is when, instead of declaring the object variable as a specific type, called early binding, you use the Object keyword and late binding. Late binding involves declaring the object variable as the generic Object type rather than as a specific class type, then referencing a specific class with the Set keyword:

Dim MyObject as Object
Set MyObject = New SuperString

The second case is when you want to change the object reference of a variable. Suppose you had executed the following code:

Dim SS1 As New SuperString
Dim SS2 As SuperString
Set SS2 = SS1

You would then have two variables, SS1 and SS2, that refer to the same object. This technique can be useful for some programming tasks.

Late binding slows things down somewhat, but provides the added flexibility of being able to use the same object variable for different types of objects. For example:

Dim MyObject as Object
Set MyObject = New SuperString
‘ Do stuff here.
Set MyObject = New SomeOtherClass

As you can see, working with object references is a lot like working with ordinary Visual Basic variables, except for the use of the Set and New keywords.

The Demonstration Program

Now that you have seen how to create objects, we can return to the demonstration program that will use the SuperString class we created earlier in the chapter. We will use the same project that the SuperString class was created in—it already has a blank form. Start by designing the form, adding five Label controls, five Text Box controls, and one control array of three Command buttons. The captions for the Label controls should be set as shown in Figure 6.8. Assign the following names to the Text Box controls:

txtInsert
txtLength
txtOriginal
txtResult
txtPosition

Set the Text property of all the Text Boxes to a blank string, and position each Text Box next to the corresponding Label control. Assign captions to the three Command buttons as follows:

Index 0: Process
Index 1: Quit
Index 2: Clear

The final form is shown in Figure 6.8.

Now let’s turn to the code. Place the following statement in the General Declarations section of the form’s code:

Dim SS1 As SuperString


Figure 6.8  The form for the Class Demo program.

Next, place this code in the Form_Load event procedure:

Private Sub Form_Load()
    ‘ Create the SuperString object.
    Set SS1 = New SuperString
End Sub

Finally, here is the code that goes in the Click event procedure for the Command buttons:

Private Sub Command1_Click(Index As Integer)

Dim C As Control

Select Case Index
    Case 0:     ‘ Process
        SS1 = txtOriginal.Text
        SS1.Insert txtInsert.Text, txtPosition.Text
        txtResult.Text = SS1
        txtLength.Text = SS1.Length
    Case 1:     ‘ Quit
        End
    Case 2:     ‘Clear
        For Each C In Form1.Controls
            If TypeOf C Is TextBox Then C.Text = “”
        Next C
End Select

End Sub

That’s all there is to the program. Go ahead and run it. Enter some text in the Original String and String to Insert boxes, and enter a position in the Position box. Then click on the Process button. You’ll see the resulting string and its length displayed, courtesy of the capabilities that we built into the SuperString class. Click on Clear to blank all boxes, and, of course, click on Quit to terminate.

Let’s take a closer look at what the code does. When the user clicks on the Process button, here’s what happens:

1.  The text in the Original box is assigned to the SuperString object SS1 and is stored in its Txt property.
2.  The object’s Insert method is called, passing the new text and the position value as arguments.
3.  The value of the object’s Txt property is retrieved and placed in the Result Text Box.
4.  The value of the object’s Length property is retrieved and placed in the Length Text Box.

Using an object that you designed is just as easy as using the objects that are provided with Visual Basic. But what about the code that is executed when the Clear button is clicked? Here, I am using one of Visual Basic’s built-in collections, a topic that we will cover in detail in Chapter 7. I’ll explain only briefly here: Visual Basic automatically maintains a list of all the controls on each form in a project. Using the For...Each statement, you can loop through all of the controls on the list; using the TypeOf keyword, you can determine if each control is a Text Box. If it is, set its Text property to a blank string. This is the easiest and fastest way to clear all of the Text Boxes on a form.


Previous Table of Contents Next


Products |  Contact Us |  About Us |  Privacy  |  Ad Info  |  Home

Use of this site is subject to certain Terms & Conditions, Copyright © 1996-2000 EarthWeb Inc.
All rights reserved. Reproduction whole or in part in any form or medium without express written permission of EarthWeb is prohibited. Read EarthWeb's privacy statement.