发信人: msnet()
整理人: jinhu(1999-07-13 10:37:18), 站内信件
|
编者的话
====================================================================
大家好!
欢迎大家回答问题和提出问题,同时也欢迎大家
提供有关VB和VBA和ASP的好作品。
版主 冯德平
[email protected]
=============================================
目 录
a 测测你的智商
b 菜单项的动态装入
c 不用 DATA 控件操作数据库文件
=============================================
VB邮件(7.6)
a 测测你的智商
不久前,看到过一个有趣的小程序,这程序是测测你的智商,不过这个应用程序 是DOS下的。想了想:能不能编成WINDOWS下的应用程序呢?于是,用VB把这个小 程序编成了WINDOWS下的应用程序。
这个应用程序的大概意思是:先产生一个四位数的随机数,每一位为0—9中的一 个数字,且各位上的数不重复,让你猜这个数。在文本框中输入这个数,按下确 定按钮后,首先提示你有X个数字值对且位置对,有Y个数值对,但位置不对。根 据系统提示最终可猜出计算机开头产生的随机数。如果你8次还没有猜到,计算机 会告诉你正确答案。
建立应用程序的步骤:
(1)、新建一个工程,用标准窗体。
(2)、加入3个命令按钮和一个文本框。(图象:image.jpg)
(3)、主要属性如下:
Name Caption Text MaxButton MaxLenght
标准窗体 frmChest 测测你的智商 False
命令按钮1 产 cmdProRan 产生随机数
命令按钮2 cmdOk 确定
命令按钮3 cmdExit 退出
标签 lblPro 请输入随机数
文本框 txtEdit 4
窗体声明:
Option Explicit
Dim a , b , c , d As Integer
Dim aa ,bb,cc,dd As String
Dim a1,b1 As Integer
Dim i As Integer
命令按钮1的代码(代码过长用____连接):
Private Sub cmdProRan _Click ()
cmdOk.Caption= “确定”
i = 0
a = Int (Ran*9 + 1)
Do While True
b = Int ( Ran*9 +1 )
b = b + 5
If b >= 10 Then
b = b-10
End If
If a <> b Then
Exit Do
End If
Loop
Do While True
c = Int ( Ran*9 +1 )
c = c + 8
If c >= 10 Then
c = c-10
End If
If a <> c And b <> c Then
Exit Do
End If
Loop
Do While True
d =Int ( Ran*9 +1 )
d = d+3
If d >= 10 Then
d= d-10
End If
If a <> d And b <> d And c <> d Then
Exit Do
End If
Loop
End Sub
命令按钮2的代码:
Private Sub cmdOk _Click ()
Dim Wrong
a1=0
b1=0
Wrong:
aa = Mid (txtEdit.Text ,1,1 )
bb = Mid (txtEdit.Text ,2,1 )
cc = Mid (txtEdit.Text ,3,1 )
dd = Mid (txtEdit.Text ,4,1 )
If aa = bb And aa = cc And aa = dd And bb = cc And bb = dd And ____
cc = dd Then
Goto Wrong:
End If
If a = Val (aa) Then
a1= a1 + 1
Else
If a = Val (bb) Or a = Val (cc) Or a = Val(dd) Then
b1=b1+1
End If
End If
If b = Val (bb) Then
a1= a1 + 1
Else
If b = Val (aa) Or b = Val (cc) Or b = Val(dd) Then
b1=b1+1
End If
End If
If c = Val (c) Then
a1= a1 + 1
Else
If c = Val (bb) Or c= Val (aa) Or c = Val(dd) Then
b1=b1+1
End If
End If
i = i+1
If a1 = 4 Then
MsgBox “恭喜!你的智商很高”,, “恭喜”
End If
If i = 8 Then
Dim Info
Info = Ltrim(Str(a))+Ltrim(Str(b))+Ltrim(Str(c))+Ltrim(Str(d))
cmdOk.Caption = “请单击产生随机数按钮”
MsgBox “对不起,你的智商……”
MsgBox “正确答案是:“ +Info,, “正确答案”
End If
End Sub
以上程序在VB5测试成功.
学习点滴:在学习计算机语言时,能多看一些语言,这对我们的学习是有很大的 帮助。在这点我有深刻的体会。 你也能这样,那你的编程水平就景上添花了,能 编出更高有水准的应用程序.
b 菜单项的动态装入
菜单项的动态装入是指菜单项的个数不固定. 例子就是文件菜单中最近打开 的文件的列表。在第一次打开文件之前,该列表是空的,并且不在文件菜单中出现 ;打开一个文件后,该列表不再是空的,并且文件菜单中出现代表被打开文件的菜单 项。
具体的实现过程如下:
在文件菜单里增加一个菜单项,标题任意,并假设菜单项的Name属性是opened _files_ list;
更改菜单项opened_files_list的可见属性,使 opened_files_list.Visible =False
更改菜单项opened_files_list的下标属性,使 opened_files_list.Index=0
在程序中控制菜单项opened_files_list的动态装入。
假设要显示打开过的第二个文件的文件名,并且该文件名存放在一个文件名数 组opened _file_name里。以下的代码就实现了这一功能:
Load opened_files_list(1)
opened_files_list(1).Caption="&2"+opened_file_name(1)
opened_files_list(1).Visible=True
需要注意的是,对于下标为0的菜单项,不能用Load方法。因为在程序执行时, 该菜单项就 已经被装入到内存里了;另外,在菜单项的标题属性字符里的"&"字符 具有特殊的含义,它的作 用是在显示该属性字符串的同时,并不显示"&"本身,而紧 跟"&"的字符在显示时具有下划线, 并且该字符成为热键。
如果下标不为0的菜单项不再需要,为了减少对内存资源的占用,可以用Unloa d方法把它 从内存卸出;同样地,不能用Unload卸出下标为0的菜单项。
c 不用 DATA 控件操作数据库文件
大家知道,在 VB 中如果使用 DATA 控件访问数据库,那么程序执行就必须 要一些大型 DLL 支持。这对于安装盘的发放是一个大问题。那么,在 VB 中能不 能不用 DATA 控件访问数据库呢?
在 VB 中不用 DATA 控件而访问数据库,只有一法:将数据库文件当成2进制 文件打开。但此法最大困难就是你必须了解数据库文件的结构形式。
比如:FoxBase的DBF文件(我不了解其它数据库的文件结构,大家可以去查 查):它由记录头和记录构成。而记录头又由两部分构成:记录头=数据库说明+ 字段说明。下面列出 FoxBase 数据库说明: FoxBase 数据库说明 起始地址 字 节数 含义
1 1 FoxBase 数据库文件标志
2-4 3 最后一次修改日期,3个字节分别为年、月、日
5-8 4 文件记录总数
9-10 2 记录头长度
11-12 2 每个记录长度
13-22 20 未使用
下面列出字段说明,每个字段由 32 个字节构成。
字段说明 起始地址 字节数 含义
1-11 11 字段名称
12 1 字段类型(分别为C、N、D、L等)
13-16 4 该字段在文件中地址
17 1 字段长度
18 1 小数位数
19-32 14 未使用
知道了字段信息说明,就可以使用 复合变量 + 2进制文件 来操作数据库了。
=============================================
VB问答
问题部分:
回答部分:
=============================================
其 它
====================================================================
欢迎订阅VB免费邮件:
订阅地址 http://server.com/WebApps/mail-list-subscribe.cgi?id=16852
====================================================================
如果您觉得这个邮件列表好的话,请告诉您的朋友。
====================================================================
欢迎投稿 [email protected]
====================================================================
网易上的主页地址:http://www4.netease.com/~aaaaaaaaa
本网站主页镜像地址:goodvbhome.yeah.net
广东视灵通:http://personal.gz168.gnet.gd.cn/vbok/
====================================================================
-- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.103.47.196]
|
|