我下一个LMD控件包, 里头有个你要的控件, 我用过

解决方案 »

  1.   

    在电子设备上广泛地使用LED数码管显示数据,在许多应用软件中也经常模拟LED数码管显示数据,使程序画面看起来很有特色。使用Delphi 程序实现LED数码管的仿真显示非常容易,具体步骤如下:---- 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}vardis_number:integer;procedure Tform1.display_LED(number:integer);varI: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 dobegindigital[I]:=number mod 10;number:=number div 10;I:=I+1;end;{显示数字}for I:=5 downto 0 doimagelist1.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仿真显示板上。