编程观点
upsuper
这个作者很懒,什么都没留下…
展开
-
数据库中的NULL错误
我正在编写的新软件采用了数据库,但近日遇到一个问题:有时读取信息时会出现错误,出错段代码如下:str = recMain("Title")错误描述为:实时错误94,无效使用 NULL经分析,由于数据库中相应数据为空,故返回NULL,但String类型不能接受NULL数据,故出错。解决方法:可以使用IIf(IsNull(recMain("Title")),"",recMain("Title"))原创 2005-07-05 12:25:00 · 1806 阅读 · 0 评论 -
VB:双击顺序
很多人用VB很久,但一直不明白双击触发事件的情况。经过测试,双击触发事件顺序如下:MouseDownMouseUpClickDblClickMouseUp 也就是说,在DblClick之前依然会触发Click,但不会触发两次。同时可以看到,MouseDown没有被触发两次,但MouseUp被触发了两次,因此可以说,处理MouseUp来计算鼠标点击次数更精确些。通过环境:Win2000+VB6原创 2005-08-29 20:09:00 · 1458 阅读 · 0 评论 -
效果:屏幕剥落
前几天心血来潮,做了一个屏幕剥落的小效果~拿出来和大家分享,同时也要感谢MySticBoy在API的使用上对我的指导~ 首先按照管理,窗体的AutoRedraw为True,BorderStyle为0,ScaleMode为3,另外就是WindowState设为2。然后添加Timer控件命名为tmr,PictureBox命名为picBack,AutoRedraw为True,AutoSize为Tr原创 2005-07-27 17:05:00 · 1330 阅读 · 2 评论 -
小心,StrConv有陷阱!
近日,笔者在使用StrConv(Strings,vbFromUnicode)时发现,在他后面如果跟一个 & 后面的字符串也会变成莫名其妙的“乱码”。 我认为,这有可能是由于Strings长度非偶数导致,经过试验,果真如此。因此需要先补位。在这句前面加上:Strings = Strings & IIf(Len(Strings) Mod 2 > 0, Chr(0), "") 即可!非常简单吧~原创 2005-07-25 12:55:00 · 1286 阅读 · 0 评论 -
更正:效果:屏幕剥落
感谢网友Farproc发现了我在《效果:屏幕剥落》中DC资源泄露的问题,现作如下修改:Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long下加上一句:Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hd原创 2005-07-28 10:03:00 · 1150 阅读 · 0 评论 -
VB字节型数组使用小小结
字节类型的数组有许多不同于其他类型数组的特性,他相对于其他的数组有时也更方便,下面是本人对字节型数组的小小结(可能还很浅,所以不敢叫小结) 首先是它的特性,它可以直接转换为字符串型(String),可以直接赋值,但是不推荐,至少要用CStr来转换,不过效果不是很好,常会出现乱字符,就算没出现一般也和预期不同,这是由于在数组转字符串的过程中VB默认采用ANIS的字符格式,因此需要采用StrCo原创 2005-07-20 16:28:00 · 3380 阅读 · 0 评论 -
速度优化:少用Collection
Collection,也就是VB中的内存集合,非常方便,但是麻烦也很多,如前面我的文章介绍过Collection存在的一些问题。不过他的问题不只如此~ 今天看到一帖,关于VB的&运算符速度慢的问题,有许多高手使用另类方法解决,随之我也想到我的慢的根蜗牛一样的程序(启动一次19s),是不是也存在这样的问题呢?在贴中说,&运算符在增加内容时要不断申请内存地址,因此我怀疑Collection也存在原创 2005-07-18 16:56:00 · 1191 阅读 · 0 评论 -
更正:效果:雨
在《效果:雨》中最后我说到颜色部分还有BUG,现已修复,作如下修改: 在Dim lOther As Long下加一行:Dim sOther As String 将原文中所有.c = CLng("&H" & Hex$(lBlue) & Hex$(lOther) & Hex$(lOther))全部(共两处)替换为:sOther = IIf(Len(Hex$(lOther)) .c = CLng原创 2005-07-12 10:38:00 · 1133 阅读 · 0 评论 -
编程也要看单位
在VB编程中,也有许多单位,这些单位也许没有进行绘图或一些高级操作很少用到,但他们的确很重要。 下面,我们以Pixel(像素)为基础,看看各单位的转换(通式:像素*常数):Const PIXEL_TWIP = 15 还有一个是StdPicture使用的单位,我将它定义为PIC,则有如下常数:Const PIXEL_PIC = 17 / 30 / PIXEL_TWIP 当然,这些有时会随着原创 2005-07-11 18:09:00 · 1228 阅读 · 0 评论 -
小程序:LRC歌词展开
LRC大家都知道吧(不知道?就是那个带时间标签的文本歌词格式嘛~),很好用的东东~所以最近很多MP3Player也开始支持它了。笔者手上就有一个联想F520的MP3支持,不过有点小麻烦,这个MP3只支持一行一个时间标签,但是笔者手头上的LRC一行都有好些时间标签,像这样,MP3就会把后面的时间标签全部显示出来(晕~) 看来只能修改修改了~既然我们没办法修改MP3的固件,那就在LRC上动手脚吧原创 2005-07-08 13:07:00 · 2656 阅读 · 2 评论 -
效果:雨
好久没下雨了,好想雨啊~用VB做了一个下雨的效果,很粗糙,希望能给大家做一点参考~ 窗体背景设为&H800000,Autoredraw设为True,Width为9600,Height为7200,ScaleMode设为像素,在窗体上添加一个Timer控件,命名为tmr,Interval设为100,输入如下代码:Option ExplicitPrivate Type POINT x1 As原创 2005-07-12 10:23:00 · 1395 阅读 · 2 评论 -
效果:文字隐现
前几天看到一个破解程序下面有一个框框,里面的文字淡入淡出,挺好看,闲来编个和大家分享。 首先,在窗体上放置Label1标签到适当位置,一个Timer1控件,Interval设为100。输入如下代码:Dim a As CollectionDim b As BooleanDim i As IntegerPrivate Sub Form_Load() Set a = New Collecti原创 2005-07-11 18:57:00 · 1069 阅读 · 0 评论 -
Collection:方便隐含问题所在
很多人可能跟我一样,在程序中使用Collection类做大量数据的存储,因为他十分方便,操作简单。这种被称为集合对象的东西有的时候确实非常令人不解~ 看下面这段代码(其中c为一个Collection对象,rec为一个以打开的Recordset):c.Add rec("Name") 发现问题了吗?没有?哦~我开始也没发现,但是当到了另一个事件:a=c(1) 出错了……回到上面调试~没错~问原创 2005-07-10 10:27:00 · 1025 阅读 · 0 评论 -
应用:热键类
很多人都很想在自己的程序中加入热键,下面我把我写的一个热键类贴出来,大家可以参考参考,以后热键写起来就方便了~clsHotKey{Private Declare Function RegisterHotKey Lib "user32" (ByVal hWnd As Long, ByVal id As Long, ByVal fsModifiers As Long, ByVal vk As Lo原创 2005-07-08 18:05:00 · 976 阅读 · 0 评论 -
调试不要热键
很多人写软件的时候,希望做一些热键方便用户,这样的文章在网上不少见了~不过真正开始写热键的时候,就知道了,调试它是多么可怕~ 当正在调试的程序里面有全局热键时,一但点击停止,马上VB关闭~这个分析起来是由于整个VB的消息全部先通过程序中的处理函数,程序一结束,处理函数没了,VB也活不了了~ 因此,直到热键正常了,就应该及时屏蔽,免得老麻烦鼠标去开VB~ 屏蔽方法非常简单,只要将那句Set原创 2005-07-07 17:39:00 · 931 阅读 · 0 评论 -
VB:读取MP3的Tag(对网上流行版本改进)
网上有一段关于VB读取MP3Tag的代码,但不支持中文。这里我对这个代码进行改进。这是我改进后的代码:Public Type Mp3tag Artist As String Artist 存储歌手信息 Album As String Album 存储唱片专辑信息 Title As String Title 存储标原创 2005-11-11 12:35:00 · 2401 阅读 · 3 评论