FGIW3: C++Builder Version
/****************************************************************************\
* *
* FGIW3.cpp *
* FGIW3U.cpp *
* *
* This example shows how to play an AVI file from an FGI library, using *
* either fgi_showavi() or the low-level fgi_avixxx() routines. *
* *
\****************************************************************************/
#include
#pragma hdrstop
#include "FGIW3U.h"
//---------------------------------------------------------------------------
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormActivate(TObject *Sender)
{
fg_realize(hPal);
Invalidate();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
hDC = GetDC(Form1->Handle);
fg_setdc(hDC);
hPal = fg_defpal();
fg_realize(hPal);
fg_vbinit();
fg_vbdepth(16);
hVB = fg_vballoc(148,148);
fg_vbopen(hVB);
fg_vbcolors();
hFGI = fgi_open("EXAMPLE.FGI");
if (hFGI == 0)
{
MessageDlg("Unable to open FGI file.",mtError,TMsgDlgButtons()<OnActivate = OnActivate;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
switch (Key)
{
case VK_F1:
Cursor = crHourGlass;
fgi_showavi("CLOCK.AVI",2,0,hFGI);
Cursor = crDefault;
break;
case VK_F2:
Cursor = crHourGlass;
fg_aviskip(Context,-1);
while (fg_aviplay(Context,1,0) > 0)
fg_vbscale(0,fg_getmaxx(),0,fg_getmaxy(),0,cxClient-1,0,cyClient-1);
fg_aviskip(Context,-1);
while (fg_aviplay(Context,1,0) > 0)
fg_vbscale(0,fg_getmaxx(),0,fg_getmaxy(),0,cxClient-1,0,cyClient-1);
Cursor = crDefault;
break;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormPaint(TObject *Sender)
{
fg_vbscale(0,fg_getmaxx(),0,fg_getmaxy(),0,cxClient-1,0,cyClient-1);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormResize(TObject *Sender)
{
cxClient = ClientWidth;
cyClient = ClientHeight;
Invalidate();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
fgi_avidone(Context);
fgi_close(hFGI);
fg_vbclose();
fg_vbfree(hVB);
fg_vbfin();
DeleteObject(hPal);
ReleaseDC(Form1->Handle,hDC);
}
|