LED数码管仿真显示程序
2008-04-09 04:18:45来源:互联网 阅读 ()
1.启动Delphi 4.0。在“Tools”工具菜单上选择Delphi的图象编辑器“Image Editor”,建立一个新的位图,并设定位图的尺寸,宽为:48,高为:64。设定位图的底色为紫红色,前景色为红色。在位图上选择适当宽度的线条画出一个正方的8字,并将方型8字的各个拐角处用斜线断开,这样可使图象模拟的更加真实。完成后按文件名bitmap_0.bmp存储。然后用此文件复制9个文件,文件名分别为bitmap_1—9。用图象编辑器将这些方形的8字位图按文件名序号的顺序分别修改成0-9的数字位图,存储后备用。
2.建立一个新的工程,在窗体Form1上添加“面板”元件Panel1,设定“面板”元件的属性:bevelouter=bmRaised; bvevelInner=bvLowered; BorderWidth=4,设置后在Panel1元件上形成一个凸起的边框。在Panel1上添加一个“画板”元件PaintBox1,将PaintBox1的属性Hight 和Width设定为64和318,并适当调整Panel1面板的尺寸,使其正好包围画板元件。
3.在窗体中添加一个“图象列表”元件ImageList1,在元件上双击鼠标,调出添加图象对话框,将先前制作好的位图bitmap_0至bitmap_9按顺序添加进图象列表元件中去,使图象列表中位图的序号与位图本身代表的数字相同,并注意将位图设定为不透明。
4.转到单元编辑窗口,在Tform1的类说明部分添加一个显示LED的过程说明语句:
procedure display_LED(number:integer); 。
在implementation语句下面添加一个全局变量和对应上面过程说明的过程体。内容如下:
implementation
{$R *.DFM}
var
dis_number:integer;
procedure Tform1.display_LED(number:integer);
var
I:integer;
digital:array[0..5]of integer;
begin
{限制显示位数小于6位}
if number>999999 then number:=0;
for I:=0 to 5 do digital[I]:=0;
{分离数字位}
I:=0;
while (number)>0 do
begin
digital[I]:=number mod 10;
number:=number div 10;
I:=I 1;
end;
{显示数字}
for I:=5 downto 0 do
imagelist1.draw(paintbox1.canvas, (5-I)*54,0,digital[I]);
end;
5.在Form1窗体的OnCreated 事件中输入语句:dis_number:=0; ,使显示的初始值为0。在画板元件的On Paint 事件中输入语句:display_LED(dis_number); ,此语句非常重要,它可以在初始启动时显示初值0,在窗口本身被覆盖后又恢复到前台时仍可显示正常的数值。至此已完成了显示函数的程序编制。在需要显示数字的程序中调用display_LED 函数就能将数字显示在LED 的仿真显示板上。本举例程序只显示6位以下的数字。
6.为了测试显示效果,我们在窗体上增加一个编辑框元件Edit1,和一个按钮元件button1。用鼠标双击按钮元件跳转到Click事件编辑窗口,输入如下语句:
dis_number:=strTOint(Edit1.text);display_LED(dis_number);
完成后按F9键编译并运行程序。在运行窗口的编辑框中输入6位以下的整数数字,点击按钮,编辑框中的数字就显示在LED仿真显示板上。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash