仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 578|回复: 9
打印 上一主题 下一主题

[学习教程] ASP编程:ActiveX深切浅出(二)

[复制链接]
谁可相欹 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:07:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
减少客户内IT专业人才缺乏带来的影响。ASP的客户员工利用浏览器进入相关的应用软件,简单易用,无需专业技术支持。active|activex  WhatanEvent

  事务是用来关照利用控件的程序员,某件事变产生了,好让程序员能够响应的处置。事务在VB编程中屈指可数,比方,当鼠标点击控件事会产生Click事务,文本框内容改动了会产生Change事务,等等。但这儿要讲的分歧于这些器材,也分歧于InitProperties,ReadProperties,WriteProperties后面提到过的事务,那些是体系已界说好了的。我们要做的是界说本人的事务。自界说的事务必需声明在模块的声明部分,然后就可以够在任何中央任什么时候候,只需你以为应当有事务了,就能够触发它。比方,一个代表眨眼的事务应当如许声明:

  PublicEventBlink()

  在括号中,你能够安排任何你想要传送给事务的参数。关于一个Click事务,这个参数大概鼠标点击时x和y坐标。而这在理,应为只是眨眼,就用不到分外的参数了。

  触发事务,得利用RaiseEvent办法。关于我们的眨眼事务,我们把它和一个计时器接洽起来,如许它就可以够时不时的眨眼了:

  PrivateSubBlinker_Timer()

  RaiseEventBlink

  EndSub

  就如许,一个事务就完成了,没有任何技能大概奥密可言。如今留给程序原作的,只需编写响应的事务处置历程就好了,就像上面如许:

  PrivateSubBodyControl1_Blink()

  Debug.Print"嘻嘻,我又眨眼了!"

  EndSub

  到这儿,年夜部分关于ActiveX控件的基础成绩都讲了。前面的将是一些更初级的内容,包含图片和字体属性,“关于”对话框,运转时之读属性等等。在持续之前,再看看后面的内容,好好的在了解一下。好了吗?OK,如今入手下手更加冲动的过程。

  起首,我们先来看看关于属性,另有甚么能够发掘的器材,好比色彩大概图片之类的器材。

  初级属性计划

  色采值被存贮在长整形变量中,可是假如你只是界说一个长整形变量,明显是不克不及够失掉像vb中所供应的谁人色彩选单:

  这看起来很庞大,实践上做起来却一点也不难:一切你要做的只是把属性声明为OLE_COLOR范例,就像上面这段代码所作的那样:

  PublicPropertyGetBackColor()AsOLE_COLOR

  BackColor=UserControl.BackColor

  EndProperty

  PublicPropertyLetBackColor(ByValNew_BackColorAsOLE_COLOR)

  UserControl.BackColor=New_BackColor

  PropertyChanged"BackColor"

  EndProperty

  记得后面已经提过除Let,Get,另有第三种属性历程吗?如今揭开迷底:它就是Set属性历程,当要给工具变量赋值的时分,是不克不及用Let,而必需用Set来取代。这是由于保留在控件外部的工具变量,保留的并非工具的拷贝,而只是工具的援用,也就是一个内存地点了。为了统一般变量的复制保留区分开来,VB引进了Set属性历程。

  也许你大概晓得:字体和图片就是保留在工具中的,并且,它们都具有各自的的对话框来设置相干属性。要用到这些对话框,一切我们要作的就是把图片大概字体申声明为Picture大概Font工具范例,而且为其设置Set属性历程。

  PublicPropertyGetFont()AsFont

  SetFont=lblText.Font

  EndProperty

  PublicPropertySetFont(ByValNew_FontAsFont)

  SetlblText.Font=New_Font

  PropertyChanged"Font"

  EndProperty

  看看下面的代码,你是否是在想:也没有甚么很难的啊。的确,就是如许复杂啊。上面,我们来看看怎样为控键创建只读属性。这也是在控件的计划顶用的对照多的一个内容。

  只读属性

  最复杂的办法,就是不要在Let/Set属性过程当中到场任何器材。但一般,这其实不能满意请求,偶然,你大概必要一个运转时只读的属性。所谓运转时――和计划时绝对应,是控告件终极在一个开辟完成的程序中运转,而计划时指的是控件被利用在开辟程序的过程当中。

  要完成运转时只读,要用到Usercontrol的AmbientProperties工具。它供应了良多关于控件容器的属性。中有一个UserMode属性,当控件处在运转时形态时,UserMode值为真。经由过程在Let/Get过程当中供应对UserMode的检测,就能够很简单的完成运转是只读属性了:

  PublicPropertyGetMultiLine()AsBoolean

  MultiLine=m_MultiLine

  EndProperty

  PublicPropertyLetMultiLine(ByValNew_MultiLineAsBoolean)

  IfAmbient.UserModeThen

  Err.Raise382

  ExitSub

  EndIf

  m_MultiLine=New_MultiLine

  PropertyChanged"MultiLine"

  EndProperty

  这段代码回护属性只可以在计划时被修正,假如在运转时试图改动它,就会发生“Propertyisread-onlyatrun-time”毛病。

  和AmbientProperties工具邻近的另有Extender工具。关于Extender工具,在入手下手编写控件前有需要好好的懂得。Extender工具是一个早期绑定的托言,开辟员能够经由过程它会见由控件容器(而不是控件自己)保护和把持的控件属性。它供应了一些属性,像Name,Enable,Left,Top,Height,Width等等,这些年夜多呈现在一样平常的控件中,在编写控件属性前,应当看看是不是已存在在Extender工具中,一方面能够制止反复事情,另外一方面也更无效率。

  可是利用Extender工具还存在一些成绩:并非一切的容器都撑持会见不异的Extender属性。以是选用Extender工具是必需非常当心,否这做出的控件只能为特定的容器所利用。但假如你只是为VB开辟控件,那就不必有这些挂念了,只管的用吧。

  另有一点要注重的是,Extender工具不克不及在usercontrol的initialize事务中会见它,可是能够在initProperties和ReadProperties事务中利用。

  列举

  在控件中设置属性时,利用列举是一种很罕见的的体例。它供应了一个下拉列表和多少选项让你选择。如许便利了用户的操纵,又不必思索过量的兼容性和毛病处置成绩,简化了属性设置,并且加倍平安。

  起首,必需创建一个列举布局,放在声明部分。然后给出一系列的常量和对应的字符串。常量值能够零,大概是任何比它后面一个常量值年夜的整数。假如没有给出常量,那末VB主动为其赋值,第一个未指定的赋值为零,别的的值为后面一个数加一:

  PublicEnumeDirection

  Left

  Right=1

  Up

  Down

  EndEnum

  要完成列举属性,必需创立一个带有Let和Get属性历程的尺度属性。这里的技能是将属性的范例声明为给出的列举范例:

  PublicPropertyGetDirection()AseDirection

  Direction=m_Direction

  EndProperty

  PublicPropertyLetDirection(ByValNew_DirectionAseDirection)

  m_Direction=New_Direction

  PropertyChanged"Direction"

  EndProperty

  独一要注重的是,只可以在计划时修正属性列表,而不同意在运转时这么做。别的的,像读,写,保留和检索,都和利用尺度属性是一样的。

  这就是一切的技能了。难以相信的复杂,是吗?你的控件是否是看起来更加专业了呢?

  Usercontrol工具

  用VisualBasic所创立的ActiveX控件老是由UserControl工具加上选中放到UserControl上的任何控件(称为子控件或则构成控件)所构成。就象VisualBasic窗体一样,UserControl工具具有代码模块和可视化的计划器。将构成控件放到UserControl工具的计划器上,就象把控件放到窗体上一</p>asp是基于web的一种编程技术,可以说是cgi的一种。它可以完成以往cgi程序的所有功能,如计数器、留言簿、公告板、聊天室等等。
灵魂腐蚀 该用户已被删除
沙发
发表于 2015-1-17 17:09:29 | 只看该作者
完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
不帅 该用户已被删除
板凳
发表于 2015-1-21 06:07:57 | 只看该作者
学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:
金色的骷髅 该用户已被删除
地板
发表于 2015-1-30 09:15:52 | 只看该作者
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。
兰色精灵 该用户已被删除
5#
发表于 2015-2-6 09:29:46 | 只看该作者
Response:从字面上讲是“响应”,因此这个是服务端向客户端发送东西的,例如Response.Write
深爱那片海 该用户已被删除
6#
发表于 2015-2-15 22:05:24 | 只看该作者
ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp),它可以看作是VC和Java的混合体吧。
透明 该用户已被删除
7#
发表于 2015-3-4 14:56:14 | 只看该作者
你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
简单生活 该用户已被删除
8#
发表于 2015-3-11 20:18:56 | 只看该作者
学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点:
分手快乐 该用户已被删除
9#
发表于 2015-3-19 11:38:40 | 只看该作者
跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
变相怪杰 该用户已被删除
10#
发表于 2015-3-28 01:22:54 | 只看该作者
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 01:16

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表