封装了一个TPlayGif插件

来源:互联网 发布:郭天祥十天单片机pdf 编辑:程序博客网 时间:2024/06/06 03:41
在工控软件中经常要用到动画显示设备状态。用GIF动画是比较常见的方法。如仪表,管道等。调用方法如下:
1、TPlayGif.dll库是建立在VCL的基础之上的,所以仅能被delphi和C++builder
2、工程中包含include文件夹中的文件:IDLLObject.h、IDLLControl.h
3、SetLoop循环次数大于1000,表示无限循环
4、对于帧画面边缘不固定的gif,制作gif时,最好用一个固定大小的背景包围图像显示部分,如horse.gif图片,一个灰色的背景,将马包围。可以用ps等图象制作软件打开来看。不过,一般工控软件中使用的gif动画,边缘相对来说都是固定的,如仪表、管道等,变化的是中心区域。如scan.gif
typedef IDLLObject * __stdcall (*CreateTPlaygif)(TApplication * app,TWinControl * AParent);//接口函数指针__fastcall TForm1::TForm1(TComponent* Owner)        : TForm(Owner){     //加载TPlaygif.dll插件     handle = LoadLibrary("TPlayGif.dll");     CreateTPlaygif GifThread = (CreateTPlaygif)GetProcAddress(handle,"CreateTPlaygif");     //创建接口对象     gif1 = GifThread(Application,this);     gif2 = GifThread(Application,this);}//---------------------------------------------------------------------------void __fastcall TForm1::Button1Click(TObject *Sender){     //设置gif文件信息     gif1->SetGifInfo("scan.gif",150,20,150,150);     //指定动画循环播放的次数,大于1000,表示无限循环     gif1->SetLoop(1001);     //设置gif文件信息     gif2->SetGifInfo("horse.gif",350,20,211,152);     //指定动画循环播放的次数,大于1000,表示无限循环     gif2->SetLoop(1001);}//---------------------------------------------------------------------------void __fastcall TForm1::Button3Click(TObject *Sender){     //开始动画     gif1->StartGif();     gif2->StartGif();}//---------------------------------------------------------------------------void __fastcall TForm1::Button4Click(TObject *Sender){     //停止动画     gif1->StopGif();     gif2->StopGif();}//---------------------------------------------------------------------------void __fastcall TForm1::Button5Click(TObject *Sender){     //重新开始     gif1->ReStartGif();     gif2->ReStartGif();}//-------------------------------------

下载地址:http://download.csdn.net/detail/chinayu2007/9626914

0 0
原创粉丝点击