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

用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服务器组件,如数据库、服务器上各种信息与资源访问等,都会十分方便。

VB建立多级目录 -VB资料 VB建立快捷方式-VB资料 VB建立文件关联 -VB资料 将RichTextBox 之中被选取的内容复制到剪贴簿-VB资料 将我的程序的文本直接送到WORD中(不用粘贴)-VB资料 开启文件属性窗口 -VB资料 快速读取 TextBox 第 N 行的资料 -VB资料 快速选择里List全部项目-VB资料 VB利用 App.Path 读取「应用程序所在之目录」 VB利用 EM_LINESCROLL 信息控制 TextBox 的卷动。 命名的技巧 -VB资料 目录所占的字节数-VB资料 VB判断文件是否在IE的缓存中 屏蔽文本框的右键菜单-VB资料 VB取得长文件名 VB取得临时文件名 VB取得某个目录底下所有文件大小总和 VB取得文件的扩展名 VB取得文件内容 确定 TextBox 有几行-VB资料 确定是 WINDOWS 的可执行文件-VB资料 让打印机只打印一行-VB资料 VB如何把批处理文件转换成EXE文件? VB如何调用 Office VB如何将文件删除到回收站 VB如何快速移动文件? VB如何让文本框输入完后,直接跳入下一行? VB如何使用vb取得一个文件的控制权 VB如何使用文件复制对话框? VB如何使用资源文件 VB如何用Dir()函数来列出C下所有TMP文件并且用文本框输出 select number from table需要分别得到所有的值,如果做? 请问如何将下载的控件加到delphi的控件面板上?先谢谢了!!! 一个form里面如何将6个radiobottom 分成两组? 开开关关IE窗口的小程序 请各位高手介绍一下win2K,wingate,sygate这些做上网服务器各使用什么技术?NAT?SOCK5? WIN2000 PRO. 怎样才能通过 NT4+MSPROXY 上网? ASP中如何实现等待几秒再执行下一步的功能? 数据库的烦恼之二 如何在程序中播放Power Point? 散分,帮我看看主机链接是否正常 BDE数据库的问题。 win2000中怎样配置开机启动文件(如98下的Msconfig) 痛苦的人请看 http://www.csdn.net/expert/topic/425/425671.shtm (UP者有分!) 关于strlen函数 高手请进 vc中是否有函数readline(),该如何调用, 如何将我写好的.java文件编译在单片机的系统中? 下载的.rar格式的文件怎样打开 怎么是查询(select)不受更新(update)的阻塞? 请老大帮帮我啊 怎样获得WIN98系统的日期格式啊? 超级终端的传输格式 关于strlen函数的问题 请教:关于soft-ice软件的问题 谁有Exange 2000操作手册之类的东东?还有下载ftp地址和密码,谢谢!收到马上给分!急用! NetUserAdd怎么用,我下面是否用错了,结果会蓝屏,dump!!(KMODE_EXCEPTION_NOT_HANDLED) 以超级终端YModem协议传输文件时,数据包的格式 想知道到底有多少公司用到ejb,j2ee,rmi? asp:HyperLinkColumn中的DataNavigateUrlFormatString如何带多个参数? 有关DataReport的使用 我怎样通过dcom调用applationserver上的方法 请问inter c++ compiler的头文件定义问题 请问哪些行业用Powerpoint比较多? 关于处理文件的问题,请指点…… 请问有谁知道只封锁ctrl+alt+del的方法. 很适合回去好好研究!欢迎指正!! 需要帮助,针对ActiveX OCX怎么能够对其数字签名从而降低其在IE中的安全性? 高分求一条 SQL 简单语句 ! tomcat4.0.1+oracle MDI子窗口在显示时,怎么样才能不出现最大化时的拉大的过程!!! 在jframe中用setIconImage()方法设置界面的图标,怎么好像不能用.ico的文件? jsp的分页技术 如何在98下ping死局域网中的一台机器(分数太多,想分人) 请问有没有一种图像处理工具…… 如何处理--在使用sql语句建表时的重表问题? 小弟请问各位大侠 写在控件里的鼠标指针用LoadCursor为什么取不出来? 请问如何在vc的控件面板中加入新的控件?vc中原有的控件存放在那个目录下? 请问如何把。JAVA文件编译在PDA里? 请问以前的贴子都放到哪去了? 强烈要求:Java板块再进行分类!所有问题都并在一起,实在太乱了!同意的请进来签名! ~~~~~~呵呵,散分,呵呵,qq61548901,mail wackly164@sohu.com不要黑我呵呵!!(俺是朱朱)~~ 蚂蚁,蜜蜂,苍蝇,蜘蛛,蚊子.划去不同类 三天打鱼两天晒网打了几天鱼,1天还是3于? 捕鱼还是捕渔 我家出现大量小黄蚁、大头蚁、黑蚂蚁、小蟑螂、小老鼠、蚊子苍蝇,还有少量蜈蚣、超大型蜘蛛~我家出现大量小黄蚁、大头蚁、黑蚂蚁、小蟑螂、小老鼠、蚊子苍蝇,还有少量蜈蚣、超大型 三天打鱼两天晒网打一词语 一箱橙子有15袋,其中14袋质量相同,1袋质量轻一些,用天平至少称几次能保证找出着袋轻的来? 蜜蜂能酿蜜,蚯蚓能松土,蚂蚁能帮人类干什么?十分急. 三天打鱼两天晒网的意思是什么 有15袋糖果,期中14袋规格都相同,另外一袋多了2块,你能用天平找出来吗、至少称几次 在一个阴湿山洼草丛中,有一根长满苔藓的腐木,其中聚集着蚂蚁,蚯蚓,蜘蛛,老鼠等动物.其中,阴湿山洼草丛中的蚂蚁是一个种群.为什么是错的?已经确定是错的了,请高手回答,忽悠的靠边站 三天打鱼两天晒网 形容一动物 三袋奶粉,其中两袋质量相同另一袋不知道是重还是轻,用天平至少称几次能保证找出质量不同的那袋? 有13盒糖果,其中12盒质量相同另有一盒少了几颗糖,如果用天平称,至少称几次可以找出这盒糖果?请写出过程 有18袋瓜子,其中一袋轻如何利用天平找出来,用图来表示过程 授人以鱼不如授之以渔是什么意思? 一种跟蚊子很像的昆虫,可是它却比蚊子大多了,有飞蛾那么大 会发光的虫子除了萤火虫还有什么? 有18袋5香瓜子其中1袋质量稍轻如何利用天平把它找出来?用图表示出称的进程. 什么鱼吃昆虫水里(蚊子等)的幼虫? \除了萤火虫还有什么昆虫发亮光啊? 有12盒饼干,其中11盒质量相同,另一盒少几块,如果用天平称,至少称几次能保证找出这(用图来表示称的过程) 什么昆虫吃蚊子 这是什么昆虫,屁股和萤火虫一样还会发光 天秤的图案哪里有, 现有两包糖,每包中均有奶糖、水果糖和巧克力糖.(1)第一包的粒数是第二包的2/3;思维拓展题 现有两包糖,每包中均有奶糖、水果糖和巧克力糖.(1)第一包的粒数是第二包的2/3; (2)第 苍蝇和蚊子的发育过程给出详细过程 天平的样子图 除了萤火虫会发光之外还有什么昆虫会发光] 3天打鱼 2天晒网 中国有句俗语叫“三天打鱼两天晒网”.某人从1990年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”.我的程序在输入 1992 10 25 和1993 1 按一定顺序排列词语.动物 苍蝇 昆虫 害虫 这个虫子叫什么名?是萤火虫吗? 两天打鱼三天晒网是什么动物 三天打鱼,两天晒网,按这样的方式,在100天内打鱼的天数是几nvbn 飞过海飞过海 除了萤火虫还有什么昆虫会发光?体长2cm左右,在屋里乱撞,飞行的时候一直发着亮光,停在墙上的时候一闪一闪的,萤火虫不到1cm应该不是吧.没有明显的翅膀,身体一节一节的样子,形状和甲虫差 两天打鱼三天晒网代表什么生肖 王大伯是位渔民他按三天打鱼两天晒网的规矩捕鱼算一算2001年王大伯捕鱼的时间一共是多少天 渔船上的捕鱼鸟我记得在中国南方,有种可以捕鱼的鸟,由渔夫饲养长大,出去捕鱼的时候,五六只这种鸟会站在船头,看见鱼就下河捕捞,返回船舱时,它们可能会主动吐出鱼,脖子被绳子轻轻绑着, 三天打鱼两天晒网昰三天中打两天鱼,晒一天网,还是三天打渔,两天晒网?(五天) 三天打鱼,两天晒网,按照这种工作方式,60天内有多少天在打鱼? 关于萤火虫 ,昆虫萤火虫发光的目的..萤火虫会同类相残吗?我记得我曾经看过一篇文章说萤火虫是会同类相残的...这是真的吗?为什么昆虫会同类相残?那些昆虫会同类相残? 有16盒糖果,其中有15盒质量相同另有一盒少了几个,如果用天平称,至少称多少次能保有16盒糖果,其中有15盒质量相同,另有一盒少了几个,如果用天平称,至少称多少次能保证找出这盒糖果?( “三天打渔,两天晒网”到底是几天?“三天打渔,两天晒网”是前三天渔,后两天不出海,在家晒网;一共5天?还是三天打渔的工作中,有两天在晒网;一共3天? 谁知道萤火虫可以卖吗?我说的可是昆虫啊.我说的可是会发光的那种昆虫啊.我说是如何实现它的商用价值, 这是什么虫子?全黑,像蚊子、像苍蝇又像马蜂. 三天打渔,两天晒网换成成语是什么? 萤火虫与其它的虫子有区别吗? 不知名的虫子能用全无敌(杀蚊子苍蝇的)喷么?家里有棵梅花,最近生了一种虫,在叶子和枝子间联成丝线,上面密密麻麻有小虫子爬,也不知道什么主枝干上也有.连打了治蚜虫、红蜘蛛的药2天 关于“三天打渔,两天晒网”这句话.呵呵,本人比较无聊,问一下这句话的原意,到底是打了三天,然后晒了两天,还是三天的时间有两天在晒网. 胜利号出海捕鱼,8月份上半月出海12天,平均每天捕鱼52吨,下半月出海12天,共捕鱼576吨.按出海天数计算.这个月平均每天捕鱼多少吨.还要算式 富贵树生虫子(蚊子,小苍蝇,飞的小虫)我家有一盆富贵树,最近生虫子,好多,喷药也不好使?怎么办? 蝴蝶 昆虫 动物 凤尾蝶 把这几个排列顺序?怎么排? 一个捕鱼队9月份捕鱼63吨,10月份的捕鱼吨数比9月份增加了3/7.10月份捕鱼多少吨? 三天打鱼两天晒网在一百天内有多少天在打渔求算式并说出为什么 答案是六十天 “三天打渔,两天晒网”究竟是几天在打渔?是打渔的工作周期为五天,有三天在打渔;还是三天中只有一天在打渔?求教!(有没有确切出处或考证?古代渔民的作业规律?) 有15盒糖果,其中12盒质量相同,另有一盒少了几颗糖,如果用天平称,至少几次可以找出这盒糖果?请写出过程 家里多了好多虫子 不是蚊子也不是苍蝇不知道是什么 越来越来多怎么办以前都没有的自从我从3楼搬到2楼 然后打扫整栋楼 扫地拖地板 然后那天晚上我开着窗户 纱窗挡住了 但是不知道为 有10个乒乓球,其中有1个质量相同,另一个较轻一点,如果用天平秤,至少称()次能保证能找出这个乒乓球. 1燕子2苍蝇3蜻蜓4老鹰5蚂蚁6乌鸦7蚯蚓8蜜蜂9麻雀10鸵鸟11蜘蛛12黄鹂 这些动物里面哪些是鸟类,哪些是昆虫类?(还有些即不是鸟类,也不是昆虫类)谢谢! 三天打鱼,两天晒网,照这样的方式,在100天内打鱼的天数是多少天? 24盒牛奶,其中23盒的质量相同,只有一盒少了些,用天平称至少称多少次才能保证找到这盒牛奶?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn