庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>程序设计>VB专区>基础教程>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

VB编程步步高-代码效率篇

 作者:甘冀平    日期:2005-8-4 11:16:32
字号选择〖 〗/ 双击滚屏 单击停止   
了解对象的类型

   如果你想知道一个对象是否是特殊的类型,请编写下面的代码:

   If TypeOf obj Is ListItem Then ...

   如果想得到对象类型的名字,使用:

   MsgBox "The item is a " & TypeName(obj)

   控制长时间的循环

   当程序陷入一个很长时间的循环中时,你就不可能点击任何一个命令按钮或者按键。这样对于用户来说,就很不好控制。或许用户不想再执行循环,通过点击Cancel按钮退出呢?怎么解决这个问题?答案是:使用DoEvents命令!就是说,在循环的开始执行DoEvents命令,就象下面的代码一样:

    Dim i As Long

    For i = 1 To 1000000
        DoEvents
        ...
    Next i
   实际上,DoEvents命令并不需要放置在第1行,将它放在循环中的任何地方都可以。这样做后,程序的其他部分,比如一个结束循环的命令按钮,就又机会接受点击事件了。

   使长循环运行更快

   我发现,一般情况下,使用API函数GetInputState来检查程序输入队列的数值是较好的。我不知道为什么If语句提高了代码运行速度,但实际上确实是工作得很好。

   因此,可以将下面的代码行

   DoEvents

   替换为

   If GetInputState() Then DoEvents

   试一试吧!

   其实,这里面的原因在于:DoEvents语句允许任何应用程序执行相关事件,而不仅仅是你自己的程序。加入了GetInputState的判断后,就只接受你自己的程序的事件动作了!

让Select Case更简单

   让我们看看下面的例子:通过用户点击不同组合的标签,建立一个字符串:

    lbl(0) = "Hello "
    lbl(1) = " I注释:m "
    lbl(2) = " Happy"
    lbl(3) = " Sad"
    ...

    sub lbl_click (index as integer)
        string$ = string$+lbl(index).caption

   然后,你就必须要编写一系列的select case语句来分析这个字符串 ...
    select case string$
        case "Hello I注释:m Happy"
            do something
        case "Hello I注释:m"
            this would be an error...
        case else
            do something else
    end select

   可以看出,这将非常得复杂,特别是又许多标签而且需要合并操作的合法检查时。

   为了解决这个难题,我创建了一个数组,它与标签的数目等长:

   arraylbl(n) as integer

   数组起始数值为1,然后每个项目的值等于前一个的值乘以2(value*2),就象这样:1 2 4 8 16 32 64 ... 这样,每一对标签的组合都会又一个唯一的数值“

   lbl(0) + lbl(1) = 1 + 2 = 3
lbl(0) + lbl(1) + lbl(4) = 1 + 2 + 16 = 19

   现在,当点击一个标签时,将它对应的lblarray()数值添加进变量中。这样,基于几个数字,就可以简单地编写select case语句了:

    select case IsLegal
        case 3
            注释: the string was valid
            call goodstuff
        case 19
            注释:the string was valid
            call goodstuff
        case  else
            注释:invalid
            call nogood
    end select

   呵呵,有时候,将字符进行数字化,能起到意想不到的好效果!
上一篇:VB编程步步高-杂类篇    下一篇:Hierarchical FlexGrid 控件的使用三  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 甘冀平
信息来源: 网络 录入时间: 2005-8-4 11:16:32
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿