设为首页
加入收藏
进入论坛
给我留言
 

VB经验杂谈(1)
自由民 2001-07-10 17:28:49

  
   胡搞VB两三年,自产自销遇到麻烦不少,每每问题迎刃而解总想写点什么跟大家分享。所谓“前车之覆,后车之鉴”,现将小悟整理成文,给初学者一点指引,免得多走冤枉路。

   Null和空格
   其实,不管对哪门语言,谁都知道Null和空格有区别(用十六进制表示,空格是20,Null是00)。然而理论归理论,有时往往在你自己觉得很清楚时,错误已悄悄降临,而且往往错得你莫名其妙,看看我这个错误你是否也犯过?
   现要新建一随机文件,要求每条纪录的存储位置由用户指定(譬如:假设第一、第二条还没有被使用,而用户指定纪录存储在第三条),在列出所有纪录时,将每条纪录显示在列表框中,如果某单元空闲着没被使用,则在列表框中添加“空纪录”字样。现假设一条纪录只有一个姓名字段,并定义该字段类型为字符串,占8字节,可做如下定义:
  Type record
  Name As String * 8
  End Type
   可谁知道,这个问题的判断,竟然让我钻了两个胡同,我的两个胡同程序片断如下:
  Dim name_rec as String ‘取出一条纪录时存储Name字段的值
  if Trim(name_rec)="" then
  list1.additem("空纪录")
  else
  list1.additem(name_rec)
  end if

  Dim name_rec as String
  if name_rec=" " then ‘其中为8个空格
  list1.additem("空纪录")
  else
  list1.additem(name_rec)
  end if
   事实上你会发现上述两种方法都不行,问题就在于这儿没被使用的字段存储的是Null而不是空格,而Trim操作的返回值只能去除字符中的空格字符,对Null当然无能为力了。而第二种方法中的" "也只是8个空格而已,和8个Null是两码事。
  经过很长时间的摸索,才发现正确的操作应该是这样:
  Dim name_rec as String
  if name_rec=String(8,chr(0)) then
  list1.additem("空纪录")
  else
  list1.additem(name_rec)
  end if
  其中chr(0)表示Null,String(8,chr(0))相当于构造了一个含有8个Null的字符串。
   颜色的表示
   在窗体设计过程中,窗体的背景色为灰色,即BackColor属性为&H8000000F&,如果你选择窗体的背景色为红色,则BackColor属性变为&H000000FF&。然而在设计阶段可以指定的颜色值太少了,你完全可以在运行阶段更改颜色值。
   要在运行阶段获得更丰富的色彩,可以通过两种方式来实现:

|下一页||尾 页|

计算机应用文摘



相关报道
 
更多本栏目内容
让Windows操作系统的启动画面彻底消失 
解决在Dreamweaver中不支持中文文件名的方法 
从Flash中导出透明背景的动态GIF图形 
网页制作精彩实用技巧速递三则 
Photoshop中有效的几种“抠图”技法(图解) 
防范三绝技--谈木马的“查、堵、杀”  
“以逸待劳”--对垃圾邮件说不(多图)  
再谈新欢乐时光病毒手工清除之“痛” 

本站检索



信服网导航



   


内蒙古信息服务中心 版权所有 信服网
CopyRight © 2004-2005 www.xmxxw.com All Rights Reserved
 
建议使用IE4或以上浏览器,分辨率800x600