分享
 
 
 

用VB编写“红绿灯”程序

王朝厨房·作者佚名  2007-01-04
窄屏简体版  字體: |||超大  

作者:伟子

平时我们在过马路的时候常常会看到指挥交通的红绿灯,它的权利可大了,要是我们可以控制它就好了,虽然在现实生活中办不到,就让我们编写一个虚拟的红绿灯程序,也来过过控制红绿灯的瘾。

下面我们就开始编写吧。

第一件事当然是新建一个工程,然后引入所需控件。在“红绿灯”程序中,我们需要用到的控件有:OptionButton(选项按钮)、Image(图像框)及Timer(时钟)控件。引入两个OptionButton,其中Option1的Caption设置为“红灯”,Option2的Caption设置为“绿灯”;Image1的Picture属性设置为红灯图片,选择一张红灯图片(读者可以自己创建一个红灯及绿灯图片)。设计好的程序界面如图1。

好了,现在我们开始添加程序代码。

我们要求程序能够通过我们所选择的是红灯或绿灯来显示相应的图像,实现的原理就是当我们单击“红灯”时显示红灯图片,单击“绿灯”时显示绿灯图片,只要用户准备好这两张图片后,要实现这个功能就非常的容易了。其具体的程序代码如下:

双击Option1(即红灯)控件,添加如下代码:(黑体部分为系统自动生成的代码,下同)

Private Sub Option1_Click()

′显示红灯图片

On Error GoTo LoadErr′当载入图片发生错误时跳到LoadErr处

If Option1.Value=True Then′当单击了Option1控件时

Image1.Picture=LoadPicture(″C:\Windows\Desktop\red.jpg″)′载入red.jpg图片,并显示在Image1控件中。

End If

LoadErr:′设置捕获错误标签

If Err.Number=53 Then′当发生错误时

MsgBox Err.Description,vbOKOnly+vbCritical,″错误″′显示错误信息

End If

End Sub

上面一段代码中有一句“On Error Goto LoadErr”,该句是用作捕获程序错误的,当程序执行过程中发生了错误则跳到处理错误语句处执行。在这段代码中,如果在载入图片时发生了错误(通常是所要载入的文件不存在或路径错误)则跳到LoadErr处执行LoadErr后的程序代码。

在VB中,所有的程序错误都是用数字表示的,如53则表示未找到文件的错误码,其实要知道哪个错误码表示哪种错误也并不难,当你在VB中运行这个程序时,如果出现了错误,会有一个错误的提示框,在该提示框中则有该错误的错误码。如果我们没有在该段程序中加入“On Error Goto LoadErr”语句及给出错误的文件名或文件路径的话,则会出现如图2所示的提示框。

LoadPicture是载入图片的函数,其中第一个参数则是所要载入图片的完整路径,当然在本例中这个路径是固定了的,所要想使其路径随程序路径的变化而变化则需要使用App.Path值,可以写成Image1.Picture=LoadPicture(App.Path&″\red.jpg″),其中App.Path返回的值则是程序所在的路径,当然red.jpg必须放在程序所在的同一目录中。

双击Option2(即绿灯)控件,添加如下代码:

Private Sub Option2_Click()

′显示绿灯图片

On Error GoTo LoadErr′当载入图片发生错误时跳到LoadErr处

If Option2.Value=True Then′当单击了Option2控件时

Image1.Picture=LoadPicture(″C:\Windows\Desktop\green.jpg″)′载入green.jpg图片,并显示在Image1控件中。

End If

LoadErr:′设置标签

If Err.Number=53 Then′当发生错误时

MsgBox Err.Description,vbOKOnly+vbCritical,″错误″′显示错误信息

End If

End Sub

OK!现在我们就可以单击F5键运行一下,看看我们自制的“红绿灯”程序吧。点击一下“绿灯”看看,红灯变成绿灯了吧?再试试红灯,怎样?现在我们就可以控制红绿灯了吧。

如何才能让“红绿灯”自动更换呢?要实现这个功能也非常简单,只要加入Timer(时钟)控件,将Timer1的Interval设置为3000(即3秒)。其原理就是每隔3秒更换一种图片,这样便实现了自动更换。

双击Timer1控件,添加如下代码:

Private Sub Timer1_Timer()

′实现自动化

If Option1.Value=True Then′如果当前显示的是红灯

Option2.Value=True′使Option2被选中,执行Option2中的代码(即显示绿灯)

Else

Option1.Value=True′使Option1被选中,执行Option1中的代码(即显示红灯)

End If

End Sub

单击F5键运行一下,每隔3秒钟即换一种颜色显示。就这么几句代码就实现了自动化,简单吧?

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有