1、用VB编了一个小程序来实现电脑抽奖的小功能用VB编了一个小程序来实现电脑抽奖的小功能,其原理如下:主要利用VB中的Rnd函数,来实现随机查找和打乱排序的功能,从而实现随机抽奖的目的。Rnd函数的语法结构是Rnd(number),可选的number参数是 single或任何有效的数值表达式。Rnd函数返回小于1但大于或等于0的值。number 的值决定了 Rnd 生成随机数的方式。为了生成某个范围内的随机整数,可使用以下公式:Int(upperbound lowerbound 1) Rnd lowerbound)这里,upperbound 是随机数范围的上限,而 lowerbound 则是随机数
2、范围的下限。另外,程序中还使用了INI文件,Windows INI文件,可解释为Windows初始化文件。它是一种专门用来保存应用程序初始化信息和运行环境信息的文本文件。ini文件是一种文本文件,它可以通过Notepad等文本编辑器进行编辑。ini文件具有特定的格式。一个INI文件是由若干个段(section)组成的,每个段中包含若干关键字(key)及相应的值(value)。创建应用程序自己的INI文件,通过INI文件保存应用程序的一些运行环境信息,然后在程序中读取INI文件中的设置信息并据以处理。一旦程序的运行环境需要变更,则可以通过直接修改INI文件,或在程序中提供专门的界面间接地修改IN
3、I文件来保证程序的可用性。 源程序及注释如下:窗体源程序Option ExplicitDim m_strNameArray() As MyNameDim m_bIsStart As BooleanDim m_nNameIndex As IntegerDim MAX_INDEX As IntegerDim m_nSelectNum As Integer 被选定数Dim nScrollStep As IntegerDim nScrollWidth As IntegerDim bScrollState As BooleanDim nEnableSecond As IntegerDim m_strTi
4、tle As StringDim m_strAppTitle As StringDim m_strScrollTitleLeft As StringDim m_strScrollTitleRight As StringPrivate Sub Command_Start_Stop_Click()If m_bIsStart = True Then按停止钮m_bIsStart = FalseCommand_Start_Stop.Caption =“开始Label_FlashName.Visible = TrueTimer_FlashName.Enabled = TrueTimer_ScrollNam
5、e.Enabled = FalseLabel_FlashName =m_strNameArray(m_nNameIndex).strName “中奖了!m_strNameArray(m_nNameIndex).bIsSelect = Truem_nSelectNum = m_nSelectNum 1Dim Temp As MyNameTemp =m_strNameArray(MAX_INDEX)m_str Name Array(MAXINDEX) = m_strNameArray(m_nNameIndex)m_strNameArray(m_nNameIndex) =TempMAX_INDEX
6、= MAX_INDEX 1If MAX_INDEX = 0 ThenMsgBox “非常感谢您使用本软件End IfElse 按开始钮m_bIsStart = TrueCommand_Start_Stop.Caption = “停止Command_Start_Stop.Enabled = FalseTimer_ScrollName.Enabled = TrueTimer_FlashName.Enabled = FalseLabel_FlashName.Caption = “End IfEnd SubPrivate Sub Form_Load()Form_Bouns.ScaleMode = 3m
7、_nNameIndex = 0m_bIsStart = FalseTimer_ScrollName.Enabled = TrueTimer_ScrollTitle.Enabled = TrueLabel_FlashName.Visible = FalseLabel_ScrollName.Caption = “nEnableSecond = 0定义起始秒数ReDimNameArray获得文本中的名字和打乱名字顺序nScrollStep = 5 设定滚动字的步长nScrollWidth = Label_Congruation.Left设定title的移动宽度bScrollState = False
8、设定缺省的开始滚动方向为向左m_nSelectNum = 0初始化被选定数为0Init初始化本程序的界面End SubPrivate Sub Timer_FlashName_Timer() 闪动中奖者姓名If Label_FlashName.Visible = True ThenLabel_FlashName.Visible = FalseElseLabel_FlashName.Visible = TrueEnd IfEnd SubPrivate Sub Timer_ScrollName_Timer() 滚动出现名字If m_bIsStart = True ThenIf m_nNameInde
9、x = MAX_INDEX Thenm_nNameIndex = 0End Ifm_nNameIndex =m_nNameIndex 1If m_strNameArray(m_nNameIndex).bIsSelect = True ThenIf m_nNameIndex 0 ThennScrollWidth =nScrollWidth nScrollStepElsebScrollState = TrueEnd IfElse 向右滚nScrollStep = 10Label_Congruation.Caption =m_strScrollTitleRightIf nScrollWidth Fo
10、rm_Bouns.ScaleWidth Label_Congruation.Width ThennScrollWidth =nScrollWidth nScrollStepElsebScrollState = FalseEnd IfEnd IfLabel_Congruation.Left = nScrollWidth以下为8秒钟内使“停止按钮有效If nEnableSecond Form1.Height Then Snow(I, 1) = 0: Snow(I, 2) = 5 (Rnd 30) Snow(I, 0) = Int(Rnd Form1.Width) OldX = 0: OldY =
11、0End IfColoury = 8 (Snow(I, 2) 10): Coloury = 60 ColouryPSet (OldX, OldY), QBColor(0)PSet (Snow(I, 0), Snow(I, 1), RGB(Coloury, Coloury, Coloury)Next INext LSLoopEndEnd Sub 编写窗体的鼠标按下代码:Private Sub Form_MouseDown(Button As Integer,Shift As Integer, X As Single, Y As Single) unload meEnd Sub运行上面的小程序,就
12、可以看到漫天的雪花在缓缓落下,地面上还会有积雪!鼠标单击可结束程在编程中经常会遇到应用程序中要输入大量数据的问题,如果能在该程序中实现象电子表格那样的输入界面,就可以解决这个问题。-VB虽提供了Grid网格控件,但其只具有显示输出功能,要使其能接受输入数据,必须对它加以改造,在计算机报刊中的许多文章都对此进行了探讨,但所用方法都不能令人满意,笔者经过摸索,找出以下办法,供有兴趣者参考。-首先在VB5.0环境下Form1中放上各控件:Text1;Grid1;Command1;Command2;Vscroll1;Hscroll1。-双击Form1打开Code窗口,编制程序代码。Dim inputc
13、olnum, inputrownum As IntegerPrivate Sub Command2_Click()EndEnd SubPrivate Sub Form_Activate()Text1.SetFocus 文 本 框 获 得 焦 点End SubPrivate Sub Form_Load()Grid1.ColWidth(0) = 540Grid1.RowH eight(0) = 216 单元格的宽和高inputcolnum = 13inputrownum = 15 表中显示的列、行数Grid1.Cols = 20Grid1.Rows = 20 表中总的列、行数HScroll1.He
14、ight = 300VScroll1.Width = 300 水平和垂直滚动条的高、宽度Grid1.Height = (inputrownum + 1) (Grid1.RowHeight(0) + Grid1.GridLineWidth * 12)+ 12 + HScroll1.Height800600象素时为12;640480为15Grid1.Width = (inputcolnum + 1) *(Grid1.ColWidth(0) + Grid1.GridLineWidth * 12)+ 12 + VScroll1.Width表的高、宽度HScroll1.Width = Grid1.Wid
15、th - VScroll1.WidthVScroll1.Height = Grid1.Height - HScroll1.Height 水 平 和 垂 直 滚 动 条 的 宽、 高 度HScroll1.Left = Grid1.LeftHScroll1.Top = Grid1.Top + Grid1.Height - HScroll1.Height 水 平 滚 动 条 的 位 置VScroll1.Left = Grid1.Left + Grid1.Width - VScroll1.WidthVScroll1.Top = Grid1.Top 垂 直 滚 动 条 的 位 置HScroll1.Min
16、 = 1HScroll1.Max = Grid1.Cols - inputcolnumVScroll1.Min = 1VScroll1.Max = Grid1.Rows - inputrownum 水 平 和 垂 直 滚 动 条 的 范 围Text1.Width = Grid1.ColWidth(0)Text1.Height = Grid1.RowHeight(0) 文 本 框 的 宽、 高 度Text1.Left = Grid1.Left + Grid1.ColWidth(0)+ Grid1.GridLineWidth * 12Text1.Top = Grid1.Top + Grid1.Ro
17、wHeight(0实时数据采集系统过去在DOS操作系统下一般是采用汇编语言开发制作。随着Windows操作系统的普及应用,数据采集及工业控制等软件的开发也上升到 Windows环境下。可视化软件开发平台的出现,为软件开发提供了强大的图形界面功能,使得开发出来的各种应用软件具有良好的人机交互功能。汇编语言的特点是功能强、运行速度快,但编程复杂、调试难,而高级语言具有良好的可读性及方便的调试手段。Visual Basic 是Windows环境下简单、易学、高效的可视化编程语言开发系统,以其所见即所得的可视化界面设计风格和32位面向对象的程序设计等特点,已广泛地应用于各个领域,是很多计算机软件开发人
18、员采用的开发工具。VB不但提供了良好的界面设计能力,而且在微机串口通信方面也有很强的功能。采用 VB开发Winodws下的数据采集和工业控制应用软件十分方便,尤其软件界面设计非常便捷,编程工作量较小,开发周期短,特别适合非计算机专业的工程技术人员掌握和使用。2MSComm控件特点MSComm控件是Microsoft提供的扩展控件,用于支持 VB程序对串口的访问,该控制“隐藏”了大部分串口通讯的底层运行过程和许多烦琐的处理过程,同时支持查询方法和事件驱动通讯的机制,事件驱动通讯是交互方式处理串口事务的一种非常有效的方法,特别适合 Windows程序的编写。在串口通讯过程中,当发送数据、收到数据或产生传输错误时,触发MSComm控件的OnComm事件,然后可以通过判断 CommEvent属性值获得事件类型,再根据事件类型进行相应数据处理。因此用其实现微机串口的数据通讯相当简单,以很少的程序代码就可以轻松实现串口的访问和数据通讯。3实时数据采集示例程序下面给出的应用实例,通过对一台工业八通道实时检测仪表数据通讯协议进行分析,利用VB6.0开发微机通过串口对多通道工业仪表进行实时数据采集的编程技术。给出的程序代码具有通用性,并有详示,可以直接或稍加
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1