311、如何让 VB 编辑环境文件存取的预设路径依项目不同而自动调整? 312、您知道 Debug 物件的 Assert Method 吗? 313、如何使用键盘移动控制项或改变控制项的大小? 314、如何快速移除项目中没有用到的元素? 315、如何知道磁盘机是使用那一种文件系统?
311、如何让 VB
编辑环境文件存取的预设路径依项目不同而自动调整?
在【问题: 如何更改在 VB 编辑环境中文件存取的预设路径?】中,我告诉大家如何让各版本的 VB,在编辑环境中的的预设文件存取路径,由
VB.EXE 所在的路径,改成您自己设定的路径,例如 c:\work,但是有人和我反应,他们各系统的项目的目录是:
人事系统:c:\work\employee 会计系统:c:\work\account 销售系统:c:\work\sale
虽然将路径改成
c:\work 已经比原来的状况好一点了,但是,像人事系统,它的路径是 c:\work\employee,所以,当您选择 VB 的 Menu
选单中的开启或存文件时,它的路径会自动跳到 c:\work,您还是要再往下开启 employee
这个目录,才是您真正要存取文件的路径。如果在开启这个项目时,它的预设文件存取路径能自动设成 c:\work\employee
的话,就更完美了!
我们能够做到当我开启某一个 VB
的项目后,每次我存取文件的路径,就设定成该项目所在的路径吗?答案是:可以的!要如何做呢?
以上面我们提到的人事系统为例,它的路径是
c:\work\employee,项目文件名是 employee.vbp,步骤如下:
1、请开启文件总管,找到
c:\work\employee\employee.vbp。 2、在 employee.vbp
上按鼠标右键,出现下拉选单。 3、在选单中选取【建立快捷方式】,产生快捷方式文件,假设命名为【人事系统项目】。
好了,下一次当您要编辑
employee.vbp 时,您不必先启动 VB 了,您只要直接开启您所建立的命名为【人事系统项目】的快捷方式文件,它就会直接帮您开启 VB、载入
employee.vbp,而且当您要开文件或存文件时,它的预设路径就是 c:\work\employee
了。
注意事项:
1、您可以将您建立的快捷方式文件拉到桌面上,以方便使用,若您负责 5 个项目,就放 5
个快捷方式文件在桌面上。 2、记得要由快捷方式文件启动 VB
才有效!
为什么经过以上的设定之后就可以达到言个效果呢?
请您在您所建立的快捷方式文件上按鼠标右键,出现下拉选单,选择【内容】,会出现快捷方式问话框。 请选择其中第二页【快捷方式】页,看看它的开始位置,以上面的人事系统为例,是
c:\work\employee,它就是您在 VB 编辑环境中开文件存文件的预设路径!
312、您知道 Debug 物件的 Assert Method 吗?
我们都知道,在我们开发系统时,如果您想追踪某一个变数值、程序流程或参数传递....等,我们可以在程序中设中断点,要设定中断点有二个方法:
1、可以在想停顿的程序码上按
F9,例如在下图中的 Me.Caption = 'Test' 上按 F9。 2、直接在下图中 Me.Caption = 'Test'
左方的灰色地带用鼠标点一下。
设定中断点后,程序码的底色会改变,例如下面的中断点为红色底,且程序左方的灰色地带会出现一个类似圆形的不规则图形,例如下图中
Me.Caption = 'Test' 左方有一红色圆点!
在 Design Time
执行程序时,若遇到中断点,程序会暂停执行且出现即时运算视窗,我们就可以在程序中运用 Debug.print
来显示一些我们想看到的变数值或其他资料,当然也可以直接在即时运算视窗中用 ? 来看资料,例如上面图片中的 ?me.Caption
就是一个例子!
不过设定中断点有以下几个缺点:
1、每次重新开启项目就要设定一次! 2、每次程序执行到中断点都会停下来,如果中断点是在回圈中,而且回圈数很多的话,就很累人了!
因为您可能只是希望它在某些情况下才停下来让您 Debug 而已。
在 VB5.0 之后,Debug 物件多提供了一个 Method
叫做 Assert,它可以解决上面提到的问题,您只要设定一次就可以了,而且,您可以设定在什么情况下,才让程序停下来让您
Debug!
语法说明:Debug.Assert 布林运算式
当 Debug.Assert 后面的运算式运算结果为
False 时,程序才会停下来,例如:当您在存取资料库时,您希望在第 413
笔资料时下来检查,您可以这样写:
Debug.Assert MyRecords.RecNumber <>
413
当资料不是第 413 笔,条件式为 True,它就不会停下来了!上面只是举一个例子而已,在 Debug.Assert
后面您可以设定任何判断式来达到您的目的!
最后要提醒您的,是上面提到的只有在 Design Time 才有效,Make EXE
之后就没作用了!
313、如何使用键盘移动控制项或改变控制项的大小?
当您做完表单设计之后,为了怕写程序时不小心挪动表单上的控制项,很多人会将表单上的控制项做锁定,但是,一直到您程序完成之前,您可能常常需要稍微调整画面的控制项位置及控制项的大小,这时您必须先解除控制项的锁定,才能用鼠标来移动控制项或改变控制项的大小。
特别强调用鼠标的原因是,我想告诉您,其实这时候用键盘或许更方便一点,为什么呢?
在键盘的快速键中, 使用【Ctrl
+ 方向键】可以用来移动控制项,而 使用【Shift + 方向键】则可以用来改变控制项的大小。 它作用的原则是根据您在 VB
编辑环境中设定的格线宽度及高度!
而键盘真正比鼠标方便的地方是,就算您已经锁定表单上的控制项,上面提到的快速键还是可以使用的!
314、如何快速移除项目中没有用到的元素?
当您开发的项目愈来愈大,Form 愈来愈多时,由于在开发中或系统上线后,系统或程序的修改,当初有一些您在【项目】【设定使用元素】中设定的元素
(其实就是出现在工具箱中的控制项),可能现在在整个项目中根本已经用不到了,可是由于 Form
太多了,您已经很难检查,到底那一个元素,现在已经用不到!
这些您设定的元素,在您制作安装磁盘的时候,它的相关文件都会一迸放到安装磁盘中,所以您的安装磁盘中就会多放入一些您根本用不到的文件,而使得您要多准备好几片磁盘,才能放得下日益膨胀的安装程序!
现在有一个简单的方法,不用您自己去检查,就可以轻松的移除这些再也用不到的控制项,方法如下:
1、请先开启某一个项目。 2、打开【项目】【设定使用元素】问话框。 3、按下【Shift】键的同时,用鼠标按下【确定】按钮。
好了,就是这么简单!请检查您的工具箱,是不是有少掉一些元素了呢!
如果您想试试看,却没有项目可试,很简单,请开启一个新的项目,打开【项目】【设定使用元素】问话框,随便勾选一些项目
(勾得愈多效果愈大),您的工具箱中会多出一些控制项,请随便将其中一二个拉到表单上,代表您有使用到这几个元素。好了,现在请您按照上面的步骤做一次,当您最后按下【确定】按钮之后,您就会发现,那些您没用到的控制项,都已经从工具箱中移除了!
315、如何知道磁盘机是使用那一种文件系统?
现在硬件愈来愈好,硬盘容量愈来愈大,很多人的硬盘都采用 FAT32 的文件系统,当然还有人采用 FAT16,而 NT 则可能为 NTFS,在
VB 中我们也可以判断出来!
'在表单的声明区中加入以下的声明及模组:
Private Declare Function
GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" (ByVal
lpRootPathName As String, ByVal _ lpVolumeNameBuffer As String, ByVal
_ nVolumeNameSize As Long, _ lpVolumeSerialNumber As Long,
_ lpMaximumComponentLength As Long, _ lpFileSystemFlags As Long,
ByVal _ lpFileSystemNameBuffer As String, ByVal
_ nFileSystemNameSize As Long) As Long
Public Function
WhichFileSystem(ByVal Drive As String) As String Dim sVolBuf As String
* 255 Dim sSysName As String * 255 Dim lSerialNum As Long Dim
lSysFlags As Long Dim lComponentLength As Long Dim lRes As
Long lRes = GetVolumeInformation(Drive, sVolBuf, 255, lSerialNum,
lComponentLength, lSysFlags, sSysName, 255) If lRes
Then WhichFileSystem = Left$(sSysName, InStr(sSysName, Chr$(0)) -
1) Else WhichFileSystem = "<unknown>" End If End
Function
'在程序中要使用时,只需传入磁盘机代号即可,如下:
Msgbox
WhichFileSystem("C:\")
以下是我自己的机器测试结果!
注意:
在 NT 上的光盘机
J:\,由于已经 Map 成网路磁盘机,所以侦测结果为 FAT 而不是 CDFS!
|