2006毕业设计Delphi篇(五)

来源:互联网 发布:淘宝信用贷款循环 编辑:程序博客网 时间:2024/06/08 03:31

======================================================
注:本文源代码点此下载
======================================================

这节我们来看看系统中的activex控件的效果。

activex是个精灵!而且是个网络精灵!activex是com规范的演化产物。

说到这里可能你们还没有理解com规范,其实你们只要用计算机,用windows操作系统你们就在用com规范开发出来的软件!你们的office办公软件系统就用到了大量com规范,你们用到的很多windows系统服务都在使用com+服务。我觉得最变态的使用com技术的典范就是autocad,你们可以用注册表软件查看一下装上autocad之后,它的注册表分支树下面多了多少guid!以至于如果想完全删除它呵呵,花的功夫可就大了。

当然我们来看看com技术规范的发展史:

1991年,随着windows3.x的发布,微软公司发布了一种叫做ole1.0(object linking and emebedding)的规范。它使用面向对象技术,是一种处理复合文档的方法,可以在一个文档中同时保存多种格式的数据,在当时来说这些功能的出现实在是太神奇了,但其设计是以文档为中心的,本身有一些缺陷,所以并不出名。

1993年,微软发布了ole2.0规范,它有很多的特点如就地编辑,复合文档中对象的编辑器可以和该文档的编辑器天衣无缝地结合在一个窗体内等等。所以来说2.0是成功的,并且得到了当年的pc magazine的技术优秀奖和pc/computering的软件革新mvp奖。这里2.0所有成就的基础就是我们的组件对象模型(component object model ,com)规范。

1995年,随着windows95的发布和internet的发展,微软意识到internet上的商业利润,决定通过编程来获得这一切。1996年发布了activex技术,从而导致了activex控件的产生。其实activex没有什么真正的改变,它不过s是ole技术的扩展罢了,其目的就是为了使用方便,有利于网上传输。 直到现在internet网络上都充斥着大量的activex控件, 如很多流媒体技术的展现都是用的activex控件(media player)网络电视,我在工商银行的网上银行上查工资,其登陆界面就使用了activex控件,如果你在网页上禁用掉activex控件,呵呵,那你就跑到工商银行去手工查余额吧。

进入正文之前我需要大家先去找点delphi开发activex控件的书阅读一下。看看如何才能开发出一个activex控件出来。

首先我们看看delphi的type library界面:

看见了吗,我们建了一个名叫afjitchart的activex控件。他的guid是{20e29e23-2b05-4564-ba85-44dc4bb27b52}以后我们经过注册之后,在注册表中就能查找到这个控件了。

看看afjitchart的delphi创建界面:

我们甚至可以用其他的编程软件来调用我们在delphi里创建的这个控件。

(afjitchart控件插入之后的效果)

上面这个界面你们应该比较熟悉吧,这是用vb来调用我们刚才建好的afjitchart控件。

(afjitchart控件插入之后的效果)

上面这个界面就是在.net中调用afjitchart控件。

也就是说一旦我们创建好activex控件实现统一接口之后我们就可以任何一种编程语言去调用它!(除了java >

当然我们真正要做的事是将afjitchart控件嵌入到网页中:

看看这个项目中的一个jsp页面

1@ page contenttype="text/html;charset=gbk"%>

2@ include file="/common/taglibs.jsp" %>

3@ page import="com.zijin.util.constants"%>

4

5html:html>

6head>

7title>9520配电变压器综合测控数据管理系统title>

8meta http-equiv="content-type" content="text/html; charset=gb2312">

9link rel="stylesheet" type="text/css" href="/zijin/css/shared.css">

10script language="javascript" src="/zijin/js/initialize.js">script>

11body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onload="fun1()">

12table width="100%" border="0" cellspacing="0" cellpadding="4" align="center">

13tr>

14td class="tdsectionbar">电流曲线td>

15tr>

16table>

17center>

18

19object

20id="chart"

21classid="clsid:20e29e23-2b05-4564-ba85-44dc4bb27b52"

22codebase="/zijin/widget/afjitchart.ocx#version=2,0,1,13"

23width=559

24height=568

25align=center

26hspace=0

27vspace=0

28>

29object>

30html:form method="post" action="/currentcurveshow">

31input type="hidden" name="ipaddress" value=''>

32input type="hidden" name="a1" value=''>

33input type="hidden" name="a2" value=''>

34html:form>

35center>

36body>

37script language="vbscript">

38sub fun1()

39chart.setserverip(document.all("ipaddress").value)

40chart.setserverport(8003)

41chart.socketactive(1)

42chart.setua(0)

43chart.setub(0)

44chart.setuc(0)

45chart.setia(1)

46chart.setib(1)

47chart.setic(1)

48chart.setmaxl(1)

49chart.setminl(1)

50chart.setprotacalid(1)

51chart.setaddress(1)

52chart.setcomaddress(document.all("a2").value)

53chart.setcammondid(1)

54chart.setmax(240)

55chart.setmin(10)

56chart.chartstart()

57chart.afstart

58end sub

59script>

60html:html>

61

这个上面的19~29行就是调用我们的afjitchart控件,看看21行的classid,是不是就是我们生成的guid。39~57行是对我们的afjitchart控件附值,39~57行所调用的接口函数在我们的第一张图显示的type library里已经定义了。其实当这个jsp页面运行的时候,系统首先要通过这个guid值在注册表里找到我们的afjitchart控件,然后才能加载afjitchart控件。

看看实际的运行图:

如此一来,我们的网页出现了实时动态图像!

其实这个系统中很多网页都是这么完成的,再看看其他的界面。

整个运行效果就像在视频聊天。你们论文中只要写到activex的运行效果就可以了。具体编写可能需要我专门辅导。


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
原创粉丝点击