08 04 54YDD2M46MBG736FERWEYCCTZU77VMMFWN2W2WY




Visual Basic 6 Programming Blue Book: The Most Complete, Hands-On Resource for Writing Programs with Microsoft Visual Basic 6!:ActiveX Components
function GetCookie (name) { var arg = name + "="; var alen = arg.length; var clen = document.cookie.length; var i = 0; while (i < clen) { var j = i + alen; if (document.cookie.substring(i, j) == arg) { var end = document.cookie.indexOf (";", j); if (end == -1) end = document.cookie.length; return unescape(document.cookie.substring(j, end)); } i = document.cookie.indexOf(" ", i) + 1; if (i == 0) break; } return null; } var m1=''; var gifstr=GetCookie("UsrType"); if((gifstr!=0 ) && (gifstr!=null)) { m2=gifstr; } document.write(m1+m2+m3);            Keyword Title Author ISBN Publisher Imprint Brief Full  Advanced      Search  Search Tips Please Select ----------- Components Content Mgt Certification Databases Enterprise Mgt Fun/Games Groupware Hardware IBM Redbooks Intranet Dev Middleware Multimedia Networks OS Prod Apps Programming Security UI Web Services Webmaster Y2K ----------- New Titles ----------- Free Archive 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 function isIE4() { return( navigator.appName.indexOf("Microsoft") != -1 && (navigator.appVersion.charAt(0)=='4') ); } function bookMarkit() { var url="http://www.itknowledge.com/PSUser/EWBookMarks.html?url="+window.location+"&isbn=0"; parent.location.href=url; //var win = window.open(url,"myitk"); //if(!isIE4()) // win.focus(); } Search this book:  














Previous
Table of Contents
Next





But now, let’s get back to the client program. In the form’s General declarations section, we create a reference to the ActiveX class by declaring a variable of that type, as shown here:



Private Ob1 As New AXDEMO


Note the use of the New keyword, which is necessary, because we want to create a new instance of AXDEMO to which the variable Ob1 will refer. Without New, we could make Ob1 refer to only an existing AXDEMO object, using the Set statement. Of course, that existing instance of AXDEMO would need to be created earlier with New. Note also that the AXDEMO class is available in the Auto list that Visual Basic displays after you type the As keyword. This is an excellent demonstration of how Visual Basic is well integrated to make your life as a programmer as easy as possible.
Declaring a variable of type AXDEMO does not actually create an instance of the class. This occurs the first time a property or method of the class is referenced. We’ll do this in the client app’s Form_Load procedure by using the ChangeName method to assign a name to the server’s Name property:


Private Sub Form_Load()
Ob1.ChangeName(“MyObject”)
End Sub


The one line of code in this procedure calls the ChangeName method in Ob1. As we saw earlier, Ob1 refers to an instance of AXDEMO. Code in the ChangeName procedure assigns the argument (in this case MyObject) to the private variable objName.
Having the object perform the calculations is a simple matter. Clicking on either the Cube Root or Square Root button assigns the number in the first Text Box to the object’s Number property. Because the code that performs the calculations is located in the Number property’s Let procedure, it is performed automatically each time this property is changed. We can then immediately read back the answer from the appropriate object property—either CubeRoot or SquareRoot.
To obtain information about the object, we access its Name and Created properties, placing them together in a string that is displayed with the MsgBox procedure. To terminate the program, we destroy the AXDEMO object by setting Ob1 to the special keyword Nothing, then call End to terminate. Listing 8.5 shows the code for the Click event procedure for the array of Command Buttons.
Listing 8.5 The Click event procedure for the demo program’s Command Buttons.


Private Sub Command1_Click(Index As Integer)

Dim Msg As String

Select Case Index
Case 0 ‘ Square root
Ob1.Number = txtInput.Text
txtOutput.Text = Ob1.SquareRoot
Case 1 ‘ Cube root
Ob1.Number = txtInput.Text
txtOutput.Text = Ob1.CubeRoot
Case 2 ‘ Information
Msg = “Object ” & Ob1.Name & “ was created ” _
& Ob1.Created
MsgBox (Msg)
Case 3 ‘ Quit
Set Ob1 = Nothing
End
End Select

End Sub


That’s all there is to the client app. Run it, enter a value in the first Text Box, and click on one of the calculation buttons. Because the program has no error checking, be sure to enter a positive value—no negative numbers, please. Click on the Information button to see the object’s name and creation time/date.

What if you need to make changes in the DLL code? Switch to the first copy of Visual Basic and make the changes. Be sure to execute the DLL within Visual Basic (to register any changes) and to use the Make command on the File menu to create the DLL file on disk. Then you can switch to the second copy of Visual Basic and run the client program again to see the effects of your changes.

TIP:  Overcoming The DLL-To-Disk Hurdle
After testing your client program and switching back to modify the DLL, you may find that you are unable to write the modified DLL to disk. This problem may be solved by the time you read this, but you can get around it by closing the second copy of Visual Basic (the one you are using to develop the client program) before trying to make the DLL. Then restart the second copy of Visual Basic to continue with your testing.



Registering Components
As you have seen, for an ActiveX component to be available to other programs, it must be registered with Windows. If you run an ActiveX server from within the Visual Basic environment, it is automatically—but temporarily—added to the Windows registry. When you terminate execution, the registry entry vanishes. If you “make” the project, creating an EXE or DLL file, the server and its classes are permanently added to the registry. But what about end users who are not running Visual Basic? For them, the class is registered when it is installed by using the Setup tool kit, or when it is executed as a regular EXE file. It can also be registered using the Windows REGSVR32.EXE utility.

Creating An ActiveX EXE
We have seen how to create an ActiveX component contained within a DLL file. You could include more than one ActiveX class in a single DLL simply by adding additional class modules to the project. But what about an ActiveX EXE? As I mentioned earlier in the chapter, an ActiveX EXE combines one or more ActiveX components with a functional program. In almost all cases, the functional part of the ActiveX EXE makes use of its own ActiveX components as well as exposing them for use by other programs. How do you do this?

It’s really quite simple. I won’t walk you though a complete example, but I will describe the process using our earlier demonstration programs for examples. Suppose you want to combine our ActiveX server with the client demonstration to create an ActiveX EXE that does the following:

•  Defines a class to calculate square and cube roots
•  Exposes this class for use by other programs
•  Provides a visual interface permitting the user to enter data and read the result of the calculations

You can easily accomplish these tasks by creating an ActiveX EXE project. The project will have two modules: a class module containing the same code as the class module in our DLL example, and a regular Visual Basic form module with the same controls and code as the client example. In this case, the class and its client are part of the same Visual Basic project, and the class is also available (once it has been registered) for use by other Windows programs.




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.

Wyszukiwarka

Podobne podstrony:
2014 08 04 ROLADKI CHRZANOWE
sart white peper PL 08 04 23
08 04 08 sem VII
Rozporządzenie Ministra Finansów z dnia 08 04 09 r w sprawie uprawnienia do prowadzenia ksiąg rachu
08 04 2010
08 04 2013
0207 08 04 2009, wykład nr 7 , Cykl komórkowy Paul Esz
08 04 S1 W J Obcy
08 04 S1 W J Obcy
08 04
08 04 KPGO Spr z realizcji
04 03 08 sem III
technik elektryk11[08] z3 04 n
22 04 08 sem IX
technik elektryk11[08] z4 04 n

więcej podobnych podstron