说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

用Delphi编写ASP的ActiveX

HTML文档下载 WORD文档下载 PDF文档下载
用Delphi编写ASP的ActiveX

ASP中的ActiveX服务器组件为标准的Automation ActiveX组件,只要使用由ASP提供的接口和遵守ASP有关规则便可。Delphi 4.0作为一种高效、快速、强大的开发语言,为开发COM组件提供了很强的功能,但不知道什么原因,很少有人运用Delphi编写ASP中的ActiveX服务器组件。本文意在通过举例介绍如何运用Delphi编写ASP中的ActiveX 组件。

通过以下步骤创建ASP中的ActiveX 服务器组件:

1.创建一个ActiveX library工程

打开Delphi编辑器,选择选单中的File/New,在New Item中选择 the ActiveX 项中的ActiveX Library选项,Delphi将自动生成以下代码:

library Project1;

uses

ComServ;

exports

DllGetClassObject

DllCanUnloadNow

DllRegisterServer

DllUnregisterServer;

{$R *.RES}

begin

end.

这是Delphi编译COM组件时必须的函数,DllGetClassObject函数负责将输入调用从COM库转换到相应的类工厂中;DllCanUnloadNow函数是通知OLE引擎如果没有程序引用将自动释放内存;DllRegisterServer与DllUnregisterServer函数用来登记COM服务器。总之Delphi已经为你做好了一切辅助工作,你只需用心编写主要功能模块便可。

2.在该工程中新增一个automation对象

选择Delphi编辑器选单中的File/New,在New Item中选择ActiveX 项中的Automation Object选项,系统将显示the Automation Object导向,在物件名称中输入TestObject和选择Multiple Instance选项

按OK键后系统将弹出类型编辑器,其实这时系统已经生成了两个单元(Project1—TLB.pas与unit1.pas),unit1.pas中有如下代码:

initialization

TAutoObjectFactory.Create(ComServer

TTestObject

Class—TestObject

ciMultiInstance);

end.

这是告诉类工厂物件执行的方式与位置。

3.增加组件中的属性与方法

在类型编辑器中单击工具栏中的方法按钮增加以下方法:

OnStartPage(unk:IUnknown)

OnEndPage.

Test.

注意在增加方法OnStartPage时,在Parameters项中增加参数unk,类型为Iunknown,增加三项方法后,在类型编辑器中按Refrash键,Unit1.pas中将会出现三个函数,在每个函数下写如下程序:

procedure Ttestobject.OnStartPage(unk: IUnknown);

begin

m_scriptContext := unk as IScriptingContext;

end;

procedure Ttestobject.OnEndPage;

begin

m_scriptContext := nil;

end;

procedure Ttestobject.test;

begin

m—scriptContext.Response.Write(′ActiveX Test For Delphi′);

end;

当IIS激活一个ActiveX组件时它会自动寻找组件中是否有OnStartPage与OnEndPage方法,如果存在,服务器将在开启本ASP页时自动执行OnStartPage方法和当本ASP页所有脚本执行完毕后自动执行OnEndPage方法。

其中mscriptContext 与IScriptingContext是ASP中负责将ASP转换成HTML格式必不可少的变量与类型,因此必须将Unit1.pas文件中的Uses加上ASPTypeLibrary—TLB变成

unit unit1;

interface

uses ComObj

ActiveX

Delphi_TLB

ASPTypeLibrary—TLB

SysUtils;

ASPTypeLibrary—TLB.Pas文件可以通过类型库引入取得,打开Delphi编辑器中的选单Project/import type library 项,选择the Microsoft Active Server Pages Type library,按OK,Delphi便会自动生成一个ASPTypeLibrary_TLB.Pas。

4.编译与注册

选择Delphi编辑器中的选单Project/Compile 项编译文件,然后选择Run/Register ActiveX Server对Project1.dll文件注册。

5.在ASP文件中运用Project1.dll

在ASP文件中加入以下文字:

Set TestASP = Server.CreateObject(Project1.TestObject)

TestASP.Test

通过上面的例子,我们可以发现用Delphi编写ASP中的ActiveX服务器组件是十分容易的,加上Delphi丰富的组件与强大的功能,使我们相信运用Delphi编写特殊的ASP服务器组件,如数据库、服务器上各种信息与资源访问等,都会十分方便。

ConditionVariable Android线程同步 Android软件开发方向指导 ArrayList LinkedList Set HashMap介绍 PermissionInfo Android权限枚举方法 Android上HTTP协议通讯状态获取 Android开发需要自己完善的类库总结 Android的ListView控件滚动时背景问题 GestureDetector手势识别类 - 进阶篇 MenuInflater Android菜单从xml创建方法 EditText输入提示你知道吗? Android布局Java代码构造法 Android全屏设置代码 测试Android软件性能主要方法 自定义Android标题栏TitleBar布局 获取Android屏幕方向及键盘状态 Android平台XML解析库功能不完整 GestureDetector手势识别类 - 入门篇 不会Java或C,Android123告诉你还有选择 Splash Screen开场屏在Android中的实现 Android游戏开发性能改进要点 Android的Activity你知多少呢? JSONObject在Android上的应用 Android高性能文件类MemoryFile 判断Android文件名是否安全技巧 让你的Android程序兼容多种分辨率 Android Button按钮控件美化方法 Android堆内存也可自己定义大小 TextUtils类-Android字符串处理类 InputSream输入流转String字符串,Android开发工具类 Android中的正则表达式Regex使用 优化Dalvik虚拟机的堆内存分配 有谁能告诉我 pragma,USERES,USELIB,USEFORM,USEUNIT 作用与区别 呵呵,这个问题真不好意思问:用vc怎么编译c++啊?(别笑我哦) 配置好 APACHE后,运行 http://127.0.0.1 出现的页面是: NOT ACCEPTABLE? 写在羊皮纸上的遗嘱(臭长,建议:谁也别看,没意思) 帮忙,各位兄弟姐妹 ()()()()()()()()上海佬进来!!!受过上海佬骗的进来!!()()()()()()()() 人无远虑,必有近忧。想找块风水宝地百年之后藏身。荐者有分。 可以在 NT 登录以前在客户端创建 DCOM 实例吗? 被背叛的遗嘱 能提供C++制表的源程序吗?THANK YOU!!!!!!!! 还有6天 关于Socket编程的几个问题 哪里有莫文蔚的《the way you make me feel》国语版的? 切~~~~~~~~菜~~~~~~~~~ 斑竹,我觉得这几天CSDN上很无聊,怎么老有人弱智地问重复的或者以前已有答案的问题?他们不知道可以search先? 谁知道哪里有bmp图片可以下载,给个详细网址,多谢 VC 兼职? 荷兰国旗问题 ASP刚学,用什么方式好吗 斑竹!!!!!!!!!!!!!!!! 关于IE浏览 请问vb如何访问foxpro 6.0的数据库,最好有源程序,谢谢. he_cti@163.net 算了,散分 我散,我散,我散散散 散3 发分!!!! 发分!!!!! 发分!!!!!!!! 发分!!!!!!!!!!!! 发分!!!!!!!!!!!!!!!!!!! 请问如何去掉测试版软件的“购买”提示框???急急急急!!! 有关获取HTML中Frames的问题? 给分!!!!!啊 给分!!!!!啊!! 给分!!!!!啊!!!!!! 给分!!!!!啊!!!!!!!!!!!!! 给啊!!!!!!!!!!!!! 不是俺蓄意谋两位帮主的反,实在是 ... APPLET连接数据库。。。(我已经每粉了) 千分散尽不复来!!! 千分散尽不复来!!!! 千分散尽不复来!!!!! 千分散尽不复来!! 千分散尽不复来!!!!!!!! 千分散尽不复来!!!!!!!!! 千分散尽不复来!!!!!!!!!!!!! 用分把灌水乐园咽死!!!!! 千分散尽不复来!!!!!!!!!!!!!!!!! 千分散尽不复来!!!!!!!!!!!!!!!!!! 千分散尽不复来!!!!!!!!!!!!!!!!!!! 千分散尽不复来!!!!!!!!!!!!!!!!!!!!! 10分之3除以5 要过程 甲数比乙数多25%,甲数相当于乙数的( )%,乙数是甲数的( )% 甲数的5分之3等于乙数的75%,已知乙数是80,求甲数的算式是( ) +2!+3!+4!+5!+6!+7!+8!+9!+10!除以3的余数是几?A1 B2 C0 甲数比乙数多20%,乙数比丙数少30%,那么甲数相当于丙数的百分之几? 甲数的5分之3等于乙数的4分之3,已知乙数是80,甲数是( ) 一个数除以5 余数是2 ,除以8 余数是7 ,除以9 余数是5 .这样的三位数一共有多少个?一种秒杀方法:5、8、9公倍数是360,1000/360=2.280,因此有3个.这是为什么呢 ,我只要秒杀的方法. 甲数比乙数多20%,乙数比丙数少20%,甲数相当于丙数的百分之几? 甲的5分之3等于乙的百分之75,乙是80,甲几? 1^1+2^2+3^3+...+8^8+9^9 除以3的余数是几?为什么? 甲数比乙数多25%,乙数比丙数少20%甲数是丙数的()% 甲数是乙数的百分之80,甲数比乙数少百分之20.这对么?为什么 甲数是80,乙数是70,乙数比甲数少百分之几? 甲数比乙数多20%,乙数比丙数少20%,甲数相当于丙数的百分之几? 甲数是80比乙数少百分之20,乙数是 甲数比乙数多百分之25,则乙数比甲数少百分之几?要立算式 甲数比乙数多20%,乙数比丙数少30%,甲数相当于丙数的百分之几? 甲数是60,比乙数少20,甲数比乙数少百分之几? 甲、乙两数的比是80:100,甲数是乙数的百分之几?乙数是甲数的百分之几?甲数比乙数少百分之几?乙数比甲数多百分之几? 甲数是乙数的35%,乙数是甲数的( )%,甲数比乙数少( )%,乙数比甲数多( )% 观察下列一组数据,想一想它们的算术平方根和立方根有什么规律?10,20,30,40,50,60,70,80,90,100 .换成下换成下列数字又有什么规律?/10,1/20,1/30,1/40,1/50,1/60,1/70,1/80,1/90,1/100 如果甲数比乙数少百分之20,那么乙数比甲数多百分之几( ) 甲数是乙数的4倍,甲数比乙数多()%,乙数比甲数少()% 观察下列一组数据,想一想他们的算术平方根和立方根有什么规律?10,20,30,40,50,60,70,80,90,100这些数据换成10分之1,20分之1,30分之1,40分之1,50分之1,60分之1,70分之1,80分之1,90分之1,100分之1,又有什么规 甲数是80,乙数是50,甲数比乙数多百分之( ),乙数比甲数少百分之( ).列式 甲数比乙数多25%,乙数比甲数少( )% 急 1到9的数字,十字形9个格子,如何让横竖都等于24 甲数比乙数多5分之1,乙数与甲数的比是多少,乙数比甲数少百分之几 甲数比乙数多5分之1,所以乙数比甲数少( ). 数学10+20+30+50+80+70+60+40+90 甲数比乙数多20%,那么乙数比甲数少百分之几 甲数比乙数多60%乙数就比甲数少( )% 数字1~9,放到三行三列的九个空格里,横相加、竖相加、斜相加都等于10. 甲数比乙数多25%,乙数比甲数少百分之几? 甲数是25,乙数是20.甲数比乙数多百分之几?乙数比甲数少百分之几 把10 、20、 30、 40、 50五个数填在空格(3*3),横竖相加都相等,如何填?把10 、20、 30、 40、 50五个数填在空格(3*3),使每一横行、竖列三个数相加的和相等,如何填?这些数可以重复使用 甲数比乙数多25%乙数比甲数少百分之几?(要试子) 甲数是35,乙数是甲数的20%,乙数是多少? 那两个数相乘等于750 ,相加等于-40? 甲数比乙数多25%,甲数是乙数的百分之几?乙数比甲数少百分之几?乙数是甲数的百分之几? 甲数的百分之20等于乙数的百分之35,问谁大?再给我出几个类似的题更好, 正负数如何相加?这几个数字相加等于多少?+5 -4.3 +8 -2.8请列出算式 如果甲数比乙数少百分之25,那么乙数就比甲数多5分之1( ) 甲数的百分之62.5等于乙数的百分之75,乙是甲的几分之几 三个数相加等于14 三个数相乘等于40 求这三个数分别是多少 求详细步骤 甲数比乙数多25%,乙数就比甲数少百分之几? 甲数的75%等于乙数的50%,甲数是乙数的()% 三个数相乘是40,三个数相加等于14,并没有两个数相等.求这三个数分别是多少 甲数比乙数多20%,乙数比甲数少百分之多少? 甲数的75%正好等于乙数的80%,甲数一定大于乙数. 多少相乘等于16相加等于14! 甲数比乙数多20%,乙数比甲数少百分之几? 甲数的75/100正好等于乙数的80/100,甲数一定大于乙数. 2+6+10+14+...+210+214等于几? 6分之5的10分之3加上2分之1再除以3分之2,商是多少?要有算式哦,完整点的 甲数的5五分之一等于乙数的百分之25,那么乙数是甲数的( )%,甲数比乙数多( )%.有急用,各位说下哈, 甲数的3分之2等于乙数的2分之1,甲数一定比乙数小,为什么? (2分之1-5分之2-10分之3)除以(-5分之3) 甲数比乙数多25%,乙数是甲数的百分之几 因为甲数的80%等于乙数的75%,所以甲数大于乙数,这句话正确吗?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn