下面介绍Unit3用户负载类型查询界面的实现。
1.串口
同form2使用form1的DateSource一样,form3的串口也使用form1的串口来进行数据通信。
因为在打开form3时并不知道form1是否已经开启了串口,因此form3要先检验串口的状态,并在关闭form3时恢复初始状态,就像中断似的,中断、恢复现场。
使用一个flag标志位即可实现这个功能:
if form1.ComPort1.Connected = false then begin flag := 0;//记录串口的初始状态 0表示初始串口关着呢 comport1.connected := true;//开本窗口串口 end else begin flag := 1; form1.comport1.connected := false; //关了主串口 comport1.connected := true; //开本窗口串口 end;
2.动态GIF图的显示
使用动态GIF要使用GIFImg类,这个类delphi2010已经给包含好了。
我们直接在uses中输入GIFImg即可,如下:
unit Unit3; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, te_engine, te_forms, te_extctrls, ExtCtrls, te_controls, StdCtrls, GIFImg, CPort;
加入了GIFImg类之后,我们就可以添加Image控件来显示动态图片了。
代码如下:
//先在窗体上放一个 TImage 组件:Image1; image1.Visible := true; Image1.Picture.LoadFromFile( GetCurrentDir+'\loading44.gif' );//GetCurrentDir可以获得当前文件的路径 //AnimationSpeed 设定动画速度,值越大,速度越快; TGIFImage(Image1.Picture.Graphic).AnimationSpeed := 200; TGIFImage(Image1.Picture.Graphic).Animate := True;
其中,GetCurrentDir函数返回的是当前操作目录。