建站必读
网站建设知识
网站推广研究
网络营销与策划
网站案例评析
网络安全知识
ASP技术
PHP技术
JSP技术
.NET技术
当前位置:
首页
->
建站必读
->
ASP技术
ActiveX深入浅出(二)
What an Event
事件是用来通知使用控件的程序员,某件事情发生了,好让程序员可以相应的处理。事件在VB编程中比比皆是,例如,当鼠标点击控件事会发生Click事件,文本框内容改变了会发生Change事件,等等。但这儿要讲的不同于这些东西,也不同于InitProperties, ReadProperties, WriteProperties前面提到过的事件,那些是系统已经定义好了的。我们要做的是定义自己的事件。自定义的事件必须声明在模块的声明部分,然后就能够在任何地方任何时候,只要你觉得应该有事件了,就可以触发它。例如,一个代表眨眼的事件应该这样声明:
Public Event Blink()
在括号中,你可以放置任何你想要传递给事件的参数。对于一个Click事件,这个参数可能鼠标点击时x和y坐标。而这在理,应为只是眨眼,就用不到额外的参数了。
触发事件,得使用RaiseEvent方法。对于我们的眨眼事件,我们把它和一个计时器联系起来,这样它就能够时不时的眨眼了:
Private Sub Blinker_Timer()
RaiseEvent Blink
End Sub
就这样,一个事件就完成了,没有任何技巧或者秘密可言。现在留给程序原作的,只要编写相应的事件处理过程就行了,就像下面这样:
Private Sub BodyControl1_Blink()
Debug.Print "嘻嘻,我又眨眼了!"
End Sub
到这儿,大部分关于ActiveX控件的基本问题都讲了。后面的将是一些更高级的内容,包括图片和字体属性,“关于”对话框,运行时之读属性等等。在继续之前,再看看前面的内容,好好的在理解一下。好了吗?OK,现在开始更为激动的历程。
首先,我们先来看看对于属性,还有什么可以挖掘的东西,比如颜色或者图片之类的东西。
高级属性设计
色彩值被存贮在长整形变量中,但是如果你只是定义一个长整形变量,显然是不能够得到像vb中所提供的那个颜色选单:
这看起来很复杂,实际上做起来却一点也不难:所有你要做的只是把属性声明为OLE_COLOR类型,就像下面这段代码所作的那样:
Public Property Get BackColor() As OLE_COLOR
BackColor = UserControl.BackColor
End Property
Public Property Let BackColor(ByVal New_BackColor As OLE_COLOR)
UserControl.BackColor = New_BackColor
PropertyChanged "BackColor"
End Property
记得前面曾经提过除了Let,Get,还有第三种属性过程吗?现在揭开迷底:它就是Set属性过程,当要给对象变量赋值的时候,是不能用Let,而必须用Set来代替。这是因为保存在控件内部的对象变量,保存的并不是对象的拷贝,而只是对象的引用,也就是一个内存地址了。为了同一般变量的复制保存区别开来,VB引入了Set属性过程。
或许你可能知道:字体和图片就是保存在对象中的,而且,它们都拥有各自的的对话框来设置相关属性。要用到这些对话框,所有我们要作的就是把图片或者字体申声明为Picture或者Font对象类型,并且为其设置Set属性过程。
Public Property Get Font() As Font
Set Font = lblText.Font
End Property
Public Property Set Font(ByVal New_Font As Font)
Set lblText.Font = New_Font
PropertyChanged "Font"
End Property
看看上面的代码,你是不是在想:也没有什么很难的啊。确实,就是这样简单啊。下面,我们来看看如何为控键建立只读属性。这也是在控件的设计中用的比较多的一个内容。
只读属性
最简单的方法,就是不要在Let/Set属性过程中加入任何东西。但通常,这并不能满足要求,有时,你可能需要一个运行时只读的属性。所谓运行时——和设计时相对应,是指控件最终在一个开发完成的程序中运行,而设计时指的是控件被使用在开发程序的过程中。
要实现运行时只读,要用到Usercontrol的AmbientProperties对象。它提供了很多关于控件容器的属性。中有一个UserMode属性,当控件处在运行时状态时,UserMode值为真。通过在Let/Get过程中提供对UserMode的检测,就可以很容易的实现运行是只读属性了:
Public Property Get MultiLine() As Boolean
MultiLine = m_MultiLine
End Property
Public Property Let MultiLine(ByVal New_MultiLine As Boolean)
If Ambient.UserMode Then
Err.Raise 382
Exit Sub
EndIf
m_MultiLine = New_MultiLine
PropertyChanged "MultiLine"
b
本站关键词:
|域名注册|空间租用|东莞网站开发|东莞企业网站建设|国际内域名注册|石龙 虎门 中堂|望牛墩 麻涌镇 石碣镇|高埗镇 洪梅镇 道滘镇|厚街镇 沙田镇 长安镇| 寮步镇 大岭山 大朗諀 黄江镇 樟木头 凤岗諀 塘厦镇 谢岗镇 清溪諀|域名注册|空间租用|东莞网站开发|东莞企业网站建设|国际内域名注册|石龙 虎门 中堂|望牛墩 麻涌镇 石碣镇|高埗镇 洪梅镇 道滘镇|厚街镇 沙田镇 长安镇| 寮步镇 大岭山 大朗諀 黄江镇 樟木头 凤岗諀 塘厦镇 谢岗镇 清溪諀|域名注册|空间租用|东莞网站开发|东莞企业网站建设|国际内域名注册|石龙 虎门 中堂|望牛墩 麻涌镇 石碣镇|高埗镇 洪梅镇 道滘镇|厚街镇 沙田镇 长安镇| 寮步镇 大岭山 大朗諀 黄江镇 樟木头 凤岗諀 塘厦镇 谢岗镇 清溪諀|域名注册|空间租用|东莞网站开发|东莞企业网站建设|国际内域名注册|石龙 虎门 中堂|望牛墩 麻涌镇 石碣镇|高埗镇 洪梅镇 道滘镇|厚街镇 沙田镇 长安镇| 寮步镇 大岭山 大朗諀 黄江镇 樟木头 凤岗諀 塘厦镇 谢岗镇 清溪諀|域名注册|空间租用|东莞网站开发|东莞企业网站建设|国际内域名注册|石龙 虎门 中堂|望牛墩 麻涌镇 石碣镇|高埗镇 洪梅镇 道滘镇|厚街镇 沙田镇 长安镇| 寮步镇 大岭山 大朗諀 黄江镇 樟木头 凤岗諀 塘厦镇 谢岗镇 清溪諀|域名注册|空间租用|东莞网站开发|东莞企业网站建设|国际内域名注册|石龙 虎门 中堂|望牛墩 麻涌镇 石碣镇|高埗镇 洪梅镇 道滘镇|厚街镇 沙田镇 长安镇| 寮步镇 大岭山 大朗諀 黄江镇 樟木头 凤岗諀 塘厦镇 谢岗镇 清溪諀|域名注册|空间租用|东莞网站开发|东莞企业网站建设|国际内域名注册|石龙 虎门 中堂|望牛墩 麻涌镇 石碣镇|高埗镇 洪梅镇 道滘镇|厚街镇 沙田镇 长安镇| 寮步镇 大岭山 大朗諀 黄江镇 樟木头 凤岗諀 塘厦镇 谢岗镇 清溪諀|域名注册|空间租用|东莞网站开发|东莞企业网站建设|国际内域名注册|石龙 虎门 中堂|望牛墩 麻涌镇 石碣镇|高埗镇 洪梅镇 道滘镇|厚街镇 沙田镇 长安镇| 寮步镇 大岭山 大朗諀 黄江镇 樟木头 凤岗諀 塘厦镇 谢岗镇 清溪諀|域名注册|空间租用|东莞网站开发|东莞企业网站建设|国际内域名注册|石龙 虎门 中堂|望牛墩 麻涌镇 石碣镇|高埗镇 洪梅镇 道滘镇|厚街镇 沙田镇 长安镇| 寮步镇 大岭山 大朗諀 黄江镇 樟木头 凤岗諀 塘厦镇 谢岗镇 清溪諀|域名注册|空间租用|东莞网站开发|东莞企业网站建设|国际内域名注册|石龙 虎门 中堂|望牛墩 麻涌镇 石碣镇|高埗镇 洪梅镇 道滘镇|厚街镇 沙田镇 长安镇| 寮步镇 大岭山 大朗諀 黄江镇 樟木头 凤岗諀 塘厦镇 谢岗镇 清溪諀|域名注册|空间租用|东莞网站开发|东莞企业网站建设|国际内域名注册|石龙 虎门 中堂|望牛墩 麻涌镇 石碣镇|高埗镇 洪梅镇 道滘镇|厚街镇 沙田镇 长安镇| 寮步镇 大岭山 大朗諀 黄江镇 樟木头 凤岗諀 塘厦镇 谢岗镇 清溪諀|域名注册|空间租用|东莞网站开发|东莞企业网站建设|国际内域名注册|石龙 虎门 中堂|望牛墩 麻涌镇 石碣镇|高埗镇 洪梅镇 道滘镇|厚街镇 沙田镇 长安镇| 寮步镇 大岭山 大朗諀 黄江镇 樟木头 凤岗諀 塘厦镇 谢岗镇 清溪諀|域名注册|空间租用|东莞网站开发|东莞企业网站建设|国际内域名注册|石龙 虎门 中堂|望牛墩 麻涌镇 石碣镇|高埗镇 洪梅镇 道滘镇|厚街镇 沙田镇 长安镇| 寮步镇 大岭山 大朗諀 黄江镇 樟木头 凤岗諀 塘厦镇 谢岗镇 清溪諀|域名注册|空间租用|东莞网站开发|东莞企业网站建设|国际内域名注册|石龙 虎门 中堂|望牛墩 麻涌镇 石碣镇|高埗镇 洪梅镇 道滘镇|厚街镇 沙田镇 长安镇| 寮步镇 大岭山 大朗諀 黄江镇 樟木头 凤岗諀 塘厦镇 谢岗镇 清溪諀
域名注册
|
虚拟主机
|
网站建设
|
网站推广
| 广告设计
|
帮助中心
|
软件中心
|
关于腾达
东莞市腾达信息工程有限公司 本站网络实名: 东莞网站建设
地址:东莞市新城市中心区第一国际B座610 邮编:523007
电话:0769-22026071 22026072 传真:0769-22026076
24小时服务热线:13712032014
© 2002~2005 腾达网络 版权所有
粤ICP备 05018777号