Contents

环境与语言。VB是面向对象语言,但又不是很纯的面向对象。其对象的类型有:界面对象,模块。似乎主要就是这连个。从工程生成文件看,界面对象类似VC的资源对象,而可以在其中编写代码;在模块中,一般放一个全局变量,看一些类型定义等。类模块式模块的一种,里面放着类的定义,每隔模块都成为一个单独的文本文件,窗体对象的后缀为frm,类模块的后缀为.cls,模块的后缀为bas,所有的这些文件受工程文件.vbp的统筹。.vbw文件存储的似乎是窗体大小的信息。

在理解窗体类与窗体对象的时候有些难度,比如新建一个窗体from1,那么他是类还是对象呢。现在理解如下;在用IDE设计的时候,是把它作为一个类设计的,不过这个类应该是集成于From的,书写代码的时候,form1其实有两种身份,一者作为类,一者作为对象。在From1中填写代码相当于修改Form1这个类,在程序运行的时候,会自动创建一个类的实例,放在内存中,而且是同名的。

对于每一个窗体,在设计的时候都会用一个Form来标记,比如load时候做什么,结束时候做什么。同时会有一个模块内的定义来供本模块的成员使用,即Form的成员和方法。

VB用到的还有属性和过程。属性其实就是用set与get方法对私有数据成员进行包装.如果name是属性,则保存在私有数据里的会前缀上_mvar,相比于VC,过程是VB特有的。过程以sub开始,以end sub结束。可以像函数一样调用,但与函数不同的是,过程无法递归调用,而且没有返回值。

下面讲一下关于公有和私有的问题,在每一个模块文件的开始都可以定义变量,这个变量时属于模块全局的。定义此变量的时候可以选public和private,前者使工程所有地方都可以引用,prvate只能本模块内部方法 调用。一个模相当于一个类,有成员方法,可以内部使用或者全局使用。依private和public而定。不过在其他地方调用的时候,需要前缀词模块名,然而如果函数放在.bas模块中,似乎不需要前缀了。

关于数据类型,VB之所以简单,更在于很多数据类型被封装了,看不到细节,他用dim进行声明,在声明对象之后需要用new进行初始化,有string类型,以至于处理字符串不需要考虑单个字符,但我总觉得因此而不易控制,数组的静态分配与动态分配差别似乎并不是那么明显,有通用的类型如:variant,object类型。

再说控件,VB有些默认的控件,还有一些需要加载的控件,对于默认的控件直接托在窗体中就可以了。对于需要加载的控件,应先引用部件,引用部件的实质作用是在vbp文件中写入一些代码,以调用一些库文件,控件在设计的时候相当于改造类。在运行的时候相当于窗体的成员。在引用不见之后工具箱会增加,一些新的控件,同时vbp文件会引用一些库文件。手动增加引用时,工具箱是不增加的控件,注意区分“部件”与“引用”两个按钮的作用。

VB中可以自己写类,也可以自己写集合类。集合类我以为是一种特殊的 类,知识多了一些默认的方法,比如add方法等。集合collection。

链接数据库时候,VB提供三种方法:现在最好用的是ADO。ADO可以理解为一种方便与数据库交互的类,他有一些方法成员可以连接数据库,一般通过它的connection对象建立于数据库服务器的链接,用RecordSet存储从数据库上读取的记录集,记录集可以 像集合一样使用。在数据库游标的概念中,有两类游标,VB的游标,一者是数据库服务器上的游标;后者用在TranSQL中,方便对于每一条记录进行操作。

为了复整个数组,仍要使用for循环

app对象preInstance逻辑值,检查系统是否已有一个实例

发现应用程序类存在的意义了

Contents