设为首页设为首页
 添加收藏添加收藏
 进入音乐版音 乐 版
  汉南在线网页设计Asp动态程序

ASP讲座之十
作  者:汉南居士
关键字:ASP讲座



自己动手编写组件

 

在前面的内容中,我们学习了组件的使用,网上的组件虽然不少,但往往小小的一个组件就要你掏出美元来,而国产的组件又太少,想掏点人民币还没地儿好掏,算了,您干脆自己写吧,其实编写组件并不难,无非是刚开始写低水平的组件,慢慢开始写高水平的组件而已。要编写ActiveX Server Components,有多种工具可供选择:Visual BasicC++Java等等,这里选择最简单的VB6.0,只要你以前用过VB,包你不到1小时之内,做一个小组件出来。

 

一、组件编写速成——编写组件最基本的步骤

本部分主要讲解编写组件的基本步骤,如果你有进一步学习的欲望,请参照VB6.0帮助文档中“创建 ActiveX DLL”部分(MSDN Library中文档文件名为Vbcon98.chm)。

目的:编写一个最简单的加法器组件,这个组件有两个属性,一个方法。我们从最熟悉的地方开始,那就是先假设这个组件已经存在,看看在ASP使用该组件的代码:

<%

Dim objSum

先创建该组件,组件标识为 TestDll.Sum

Set objSum = Server.CreateObject("TestDll.Sum")

记住TestDll.Sum 中的“TestDll”,“Sum”。

objSum.augend = 10.52       augend 属性为被加数

objSum.addend = 382.41      addend 属性为加数

Result = objSum.Plus        Plus 方法求和

Response.Write Result

Set objSum = Nothing

%>

请务必记住这几个关键词:TestDllSumaugendaddendPlus,这将与接下来的工作紧密关联。下面是详细步骤:

1. 运行VB6.0,在“文件”菜单中,单击“新建工程”→在“新建工程”对话框中,双击“ActiveX DLL图标→Visual Basic 将向该新工程中自动添加一个类模块 Class1(在“工程资源管理器”中可以看到,如图1)。

 


2.按 F4 键打开“属性”窗口。双击“名称”属性把“Class1改成 Sum

3.在“工程”菜单中,单击“工程1 属性”打开“工程属性”对话框。在“工程名称”中填写TestDll,在“工程描述”中填写“创建ActiveX DLL示例”。如图2

 


    提示:ASP创建组件中的标识TestDLL.Sum这两项的意思明白了吧。

4.在“文件”菜单中,单击“保存工程”,分别使用下面的名称保存工程文件:SetupDll.clsSetupDll.vbp

5.为 Sum 类创建属性:

(1)在“工具”菜单中,选择“添加过程”打开“添加过程”对话框。在“名称”框中,输入augend,单击“属性”,然后单击“确定”,如图3(注意:当前焦点应在代码窗口,否则“添加过程”菜单无效)。

 

 

(2)
在“工具”菜单中,选择“添加过程”打开“添加过程”对话框。在“名称”框中,输入addend,单击“属性”,然后单击“确定”。

6.为 Sum 类创建方法:

在“工具”菜单中,单击“添加过程”打开“添加过程”对话框。在“名称”框中,输入Plus,在类型中,你可以选择“子程序”或“函数”,本例中由于要返回加数与被加数之和,故单击“函数”,然后单击“确定”。

现在,前面ASP代码中的五个关键词语都已用上,这下很多东西都明白了吧。

7.类模块Sum代码窗口中所有代码如下:

Option Explicit

Private mdbl_augend As Double

Private mdbl_addend As Double

 

Public Property Get augend() As Double

    augend = mdbl_augend

End Property

 

Public Property Let augend(ByVal vNewValue As Double)

    mdbl_augend = vNewValue

End Property

 

Public Property Get addend() As Double

    addend = mdbl_addend

End Property

 

Public Property Let addend(ByVal vNewValue As Double)

    mdbl_addend = vNewValue

End Property

 

Public Function Plus()

    Plus = augend + addend

End Function

你已经注意到以上代码与系统生成的代码有点不同,主要是Public Property Get augend() As Variant部分用实际的数据类型Double替代了。

注意:实际上,当执行 x = objSum.augend 语句时,调用的是 Property Get 过程,获取mdbl_augend的值,而执行 objSum.augend = 10.52 语句时,将调用 Property Let 过程,将10.52赋给 mdbl_augend

8.最后一步,在“文件”菜单中,单击“生成.Dll(K)”,生成文件SetupDll.dll

 

到这里,组件已创建好了。现在,我们可以先在VB6中编写一个测试工程,测试一下该文件正确与否。

1.在“文件”菜单中,单击“新建工程” →双击“标准EXE”。

2.在“工程”菜单中,单击“引用” →在“引用”对话框中按“浏览”按钮,选择刚刚编译过的“SetupDll.dll”文件→单击“确定”。

3.最后在代码窗口中编写如下代码:

Option Explicit

Private Sub Form_Load()

    Dim objSum As TestDll.Sum

    Set objSum = New Sum

   

    objSum.augend = 10.52

    objSum.addend = 382.41

    MsgBox objSum.Plus

End Sub

运行一下,结果正确,接下来我们在ASP中使用这个组件。将SetupDll.dll拷到Web服务器中,并用“Regsvr32.exe setupdll.dll”命令注册该组件,然后在浏览器中执行本部分开头的ASP程序。如果不行的话,你可以尝试先用VB6的打包工具打包,然后再安装,组件会自动注册,而且一些必需的VB6运行文件也会自动安装。

说明:本部分所有程序均在下载包的Setupdll.zip中。

    上面的例子中我们使用属性过程Property GetProperty Let来添加属性(Property Get读取属性的值,而Property Let给属性赋值),若需要对设置的值进行校验,可在Property Let过程编写适当代码。如下面代码:

Public Property Let augend(ByVal vNewValue As Double)

来源:互联网
阅读:388
日期:2004-12-9

【 双击滚屏 】 【 收藏 】 【 打印 】 【 关闭 】 【 字体: 】 
上一篇:ASP讲座之九
下一篇:ASP讲座之十一

  >> 相关文章  
  ·ASP讲座之九
  ·ASP讲座之八
  ·ASP讲座之七
  ·ASP讲座之六
  ·ASP讲座之五
  ·ASP讲座之四
  ·ASP讲座之三
  ·ASP讲座之二
授权使用:汉南在线 http://www.hzwz.net/(2008-2009)   
Copyright (c) 2002-2007 汉南在线. All Rights Reserved . 
经营许可证:陕ICP备05000109号 Powered by:汉南在线