|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Access是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于4个。access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器iis假死,或者消耗掉服务器的内存导致服务器崩溃。active|activex大纲
能够如许说,Active平台代表了Microsoft的天下不雅。利用ActiveX控件,来修建包含从与用户交互和顺应COM的事件处置监督器,到Web服务器,全体完成主动化的机构,这就是Microsoft的盘算了。桌面用的、基于COM的组件叫做ActiveX控件。所谓ActiveX控件不外是服从必定的尺度、与客户端交互的COM工具罢了。基于组件的使用开辟,其办法和组装电子安装一样,能够用已制造好的组件部件来修建使用。这的确是一项很使人向往的手艺。固然提及来深邃,但跟着ActiveX的普遍使用,愈来愈多的编程工具都撑持创立ActiveX控件了。这个中就包含了VB。在VB中计划一个ActiveX其实不比一个一般的VB使用程序难上很多。这篇文章,就是一步步教你怎样在VB中创立一个ActiveX控件。
ActiveX深切浅出(一)
作者:扬眉
甚么是ActiveX控件?
一个复杂的回覆就是:具有图形界面的类。你大概已经用过类来编程,那是一种完成代码重用的的好办法。固然,它也供应了良多别的的优点,这儿其实不盘算逐一枚举出来。ActiveX控件将这个观点近一步的深化了,可以让你编写一个窗口小部件(widget),然后把它打包起来,在今后的程序里用到它,大概作为特定的成绩的办理办法,给程序员供应更烦琐的编程办法。用ActiveX你能够制作“复合式”控件,由别的的几种控件组合而成。也就是说,在ActiveX控件中你不仅可使用VB中诸如文本框,图片框之类的一般控件,你还能够用别的的ActiveX控件来组成你本人的控件,完成你想要的功效,并把它打包以面前用。
ActiveX控件的构成
一个ActiveX控件由它的一些成员构成:属性,办法和事务。它们之间有甚么样的逻辑联系关系呢?仍是用我们的身材来做个例子吧,将身材就当作一个ActiveX控件。这个控件起首应当有一些属性,好比:眼是不是展开属性。明显,这个属性值应当有两种情形:开或则闭。利用的时分可以告知“身材控件”让这个属性换一个新的值,以决意睁眼大概闭眼,大概失掉以后的属性值,以晓得今朝的身材情况。
办法是控件中历程和函数的统称,同别的任何的VB函数和历程并没有甚么分歧,你一样能够向它们传送参数,并前往想要的值。假定有一个类描叙了身材这个工具,它应当有“Look”这个办法,而且应当能承受“Direction”这个参数,那末,这个办法就应当写成如许:
PublicSubLook(DirectionAsInteger)
SelectCaseDirection
Case0
向左看
Case1
向右看
Case2
向前看
Case3
向后看
EndSelect
EndSub
若请求前往值,我们就举一个“读”的例子吧。这时候你必需把“Read”这个办法声明成函数而不是历程 :
PublicFunctionRead()AsString
读的一些操纵
Read="HellofromtheWorld"
EndFunction
在身材控件中,我们用的仍是“Look”这个办法。当挪用这个办法的时分,就是指定眼睛应当往“看”了。一样,我们还指定了别的一个办法,“Read”。这一个办法将用来前往看到的器材。
“办法”这个观点是否是很复杂呢?假如你还不克不及够了解,也能够如许来想:你的控件就像是一台呆板,你拨动把持开关(输出参数),动弹把手(挪用办法),然后呆板的灯明灭,运转起来(实行办法),最初从呆板里蹦出一些器材(前往值),就是如许了。但等等……假如你的呆板想告知你甚么事变,它该怎样做呢?这时候就该是“事务”进场了。
最初,身材控件还会供应一个“眨眼”的事务,用来在举行眨眼这个举措的时分,关照开辟者产生了这个事务,可是不用晓得身材外部的事情体例和为何这个事务会被触发。
来下手吧,作一个控件。不要觉得作一个控件长短常难的事,固然它和一样平常使用程序的编写是有一点分歧的中央。在下面我们已晓得,一个ActiveX控件是由属性,办法和事务构成的,我们先看看怎样在程序中完成这些器材,然后再把它们接洽起来,组分解一个右机的全体。属性最复杂的情势是用public声明的公用变量。比方,假如把上面这段代码放到你的控件工程的声明部分:
PublicEyeOpenAsBoolean
如许,你就能够在后边的代码中利用这个属性了。可是,这类属性所可以做的现实在太少了。它几近是不克不及够一般事情的。由于在程序的计划时代,属性值的任何变更都必需关照VisualBasic,以便把控件实例标志为必要保留。而又由于属性值大概显现在多个中央,因而当属性值产生改动时必需关照开辟情况,以便使它可以同步显现“属性”窗口、“属性页”对话框等地位上的属性值。
下面说的是否是有点难了解呢?如果不分明说的甚么,不要急,你先翻开一个工程,增加一个控件,试着改改这个控件的一些属性,在来看看下面的话,是否是分明了呢?我们如今的义务,就是要作一个如许的控件啊。由此能够看出,控件编程和一样平常的编程仍是有一些区分的。那末,该怎样完成数行呢?这要利用到属性历程。
当一个属性值被援用大概设置的时分,属性历程主动的被挪用。上面我们就来增加一个如许的属性:翻开代码窗口,再点击“工具”菜单,选择“增加历程”子菜单,弹出的对话框中,填进历程名“EyeOpen”,然后再把范例设置为“属性”。当你点了断定以后,VB主动的为你创立了一个属性历程的原型,代码会被增加到代码窗口中:
PublicPropertyGetEyeOpen()AsVariant
EndProperty
PublicPropertyLetEyeOpen(ByValvNewValueAsVariant)
EndProperty
剩下的你要做的,是写进属性处置代码,把这个骨架填满。
你能够看到,VB实践上为你写了两个,“Get”和“Let”属性历程,有点困惑吗?实践上很复杂:“Get”是当属性值被援用的时分挪用的历程,而“Let”则是当属性值被写进的时分挪用的。(现实上另有第三品种型的历程,我们将在前面碰到,这里先提个醒)要让一个属性历程可以准确的事情,必需还要有一个变量来保留真实的属性值。把上面这一行增加到声明部分:
Privatem_EyeOpenAsBoolean
注重到谁人m_前缀,通常为放在用户控件的外部变量之前。如今该是添补历程框架的时分了。先看看Let历程,这个历程带有一个参数:缺省的是名字是vNewValue,variant范例。但我们想要一个布尔范例的变量而不是variant,由于眼睛在我们的模子中只要开和闭两种形态。以是把这个参数改成“New_EyeOpenAsBoolean”。假如你想要这个属性作为只读属性呈现,那末就不要再修改Let历程,让历程体空在那儿。不然,当想要设置这个属性值的时分,应当实行如许的代码:
PublicPropertyLetEyeOpen(New_EyeOpenAsBoolean)
m_EyeOpen=New_EyeOpen
PropertyChanged"EyeOpen"
前面还能够写一些相干的代码,对属性的设置做出反响
EndProperty
当要在程序中写进属性值的时分,就会挪用这个函数,先把属性值保留在一个公有变量内里,然后实行PropertyChanged这个外部办法,它用来告知VisualBasic属性值有了变更,并触发一个WriteProperties事务。关于这一点的详细的内容,在前面还会提到。
而Get历程更加复杂!它和尺度函数没有两样:
PublicPropertyGetEyeOpen()AsBoolean
EyeOpen=m_EyeOpen
EndProperty
做完这些就完了吗?不!忘了后面说的属性值是必要保留的,因而当编程会话产生转换的时分,它们可以坚持上去。那末怎样来保留和掏出属性值呢?这时候就要用到PropertyBag工具了。
利用PropertyBag
PropertyBag工具包括两个办法:一个用来读出,一个用来写进。后面提到了,当任何的属性产生变更得时分,会触发控件的WriteProperties事务。这时候就能够把属性值保留在属性包中了。上面的代码完成这个功效:
PropBag.WriteProperty"EyeOpen",m_EyeOpen,True
PropBag是PropertyBag工具的一个实例。WriteProperty函数包括三个参数,第一格是属性称号,前面的是要保留的值,最初的参数是在无用户界说属性的情形下,将写进的默许值。把这个和ReadPropertiy办法的默许值设置分离起来,就能够为属性值设置缺省值了。假如属性值和缺省值不异,那末属性值就不会真实的别保留。当要读出的时分,ReadProperty函数发明在属性包中没有内容,就会前往缺省值。如许能够节俭一些体系开支。要注重的是:必需将一个成员属性的称号作为字符串传送。当你将控件作国际化处置时,不要改动这一字符串的称号,它必需与该属性的声名的称号相婚配。
当控件被重启动后,你必需重载如一切保留的属性值。当每次读取PropertyBag中的数据时,ReadProperties事务被触发。在这个事务的处置过程当中,你要做的义务就是载进保留在属性包中的属性值,挪用ReadProperty函数来完成值一点。要注重的是:在读和写两个函数中的缺省值设置要一样。比方:
m_EyeOpen=PropB</p>强大的可扩展性。ASP具有强大的扩展性,可以实现与多种网络、硬件设备的连接:通过专用的通讯线路远程接入企业;通过远程拨号服务器为远程拨号客户提供服务;通过WAP为移动电话互联网客户服务。 |
|