热情软件屋

 

TAnimate控件的ResName,ResHandle,ResID这三个属性怎么个用法


编号:QA004226
建立日期: 2001年5月31日 最后修改日期:2001年5月31日
所属类别:

RedCoat:
    请问BCB5中的TAnimate控件的ResName,ResHandle,ResID这三个属性怎么个用法?在给这三个属性赋值后BCB5运行时均提示错误信息"Can't open AVI"。这是为什么?现在我把所要的AVI文件已经包含进了EXE文件,成为了EXE资源的一部分,我想用TAnimate控件直接来播放资源里的AVI怎么做呢?

回答:

    1。TAnimate控件的ResHandle属性,是AVI资源所在的模块句柄,如果你将资源包含进了可执行文件中, 则这项可以不指定或直接指定为HInstance;如果你将资源放在DLL中,则该属性是LoadLibrary的返回值。
    2。ResName属性是AVI资源的名字,要注意在使用这个属性时,要将 CommonAVI属性设置成aviNone,并将FileName 属性设置为空字串,将ResId属性设为0。
    3。ResId属性是AVI资源的ID号,要注意在使用这个属性时,要将 CommonAVI属性设置成aviNone,并将FileName属性设置为空,将ResName属性设为空字串。
    4。如果以上这些没有问题,应该没有问题,否则,你应检查你的可执行程序中是否真正包括了这个AVI资源。
    下面是一个例子:
    资源文件1.rc:
    #ifndef WORKSHOP_INVOKED
     #include <windows.h>
    #endif
    
    MYAVI AVI dillo.avi
    
    用BRCC32.exe将该文件编译成1.res文件
    
    在CB中新建一工程,并放入一个TAnimate控件。
    Unit1.cpp文件内容如下:
    #include <vcl.h>
    #pragma hdrstop
    #include "Unit1.h"
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    #pragma resource "1.res" // 包含资源文件,不要忘记这句话
    TForm1 *Form1;
    __fastcall TForm1::TForm1(TComponent* Owner)
     : TForm(Owner)
    {
     Animate1->ResName="MYAVI";
     Animate1->Active=true;
    }
    另外,请注意:这个控件只能播放无声音的AVI文件。

此问题由赵生回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio