Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Компонент для работы с FLIC-анимацией

Автор: Dr Paul Kuczora

В качество ответа на целый круг вопросов, я включил в свой ответ два файла:

aaplay1.inc    - include-файл с интерфейсом для библиотеки aaplay.dll
aaplay1.pas    - сырой скелет компонента для проигрывания FLIC-анимации
Я разработал это глядя на другой компонент (это был полнофункциональный плейер, работающий как форма), и вынужден был сохранить некоторые вещи неприкосновенными (попробуй тут сделай иначе :-)

Для работы вам понадобится библиотека aaplay.dll от Autodesk, которую вы можете найти на множестве мест (например, я так предполагаю, на Encarta CD). Для полного счастья вы можете обратиться к файлу помощи для Animation Player for Windows, который, не удивляйтесь, содержит справку для этой DLL - на первой странице найдите в ее самой нижней части указание на эту библиотеку, и перед вами предстанет полная справка по вызовам этой самой DLL.

Надеюсь что помог вам. . .

ВНИМАНИЕ! Это мой первый код, написанный для Windows (спасибо Delphi), поэтому он рекомендуется только для ознакомления.


{ ============================================================================ }

{ aaplay1.inc }
{ (c) P W Kuczora }
{ 17-го апреля 1995 }

{ Заголовочный файл, содержащий константы и определения типов для aaplay1.pas }

const

NULL = 0;
NULLPTR = ^0;

{

Доступные Флаги wMode: integer;
Используются в aaLoad, aaReLoad
Первые восемь бит wMode используются в aa_flags.
}

AA_MEMORYLOAD = $1;        { Загрузка в память }
AA_HIDEWINDOW = $2;        { Скрывать окно анимации }
AA_NOPALETTE = $4 ;        { Анимация без палитры }
AA_RESERVEPALETTE = $8;    { Резервировать при старте всю палитру }
AA_LOOPFRAME = $10;        { Циклическая загрузка кадров }
AA_FULLSCREEN = $20;       { Использовать полноэкранный режим воспроизведения }
AA_STOPNOTIFY = $40;       { Исключать любые уведомляющие сообщения }
AA_STOPSTATUS = $80;       { Исключать сообщения об изменении статуса }
AA_NOFAIL = $100;          { Уменьшение типа нагрузки при ошибке }
AA_DONTPAINT = $200;       { Не делать paByVal-анимацию при загрузке }
AA_BUILDSCRIPT = $400;     { lpzFileName - скрипт, не имя }
AA_ALLMODES = $FF;

{

Доступные флаги для режимов звука - wMode: integer;
Используются в aaSound
}


AA_SNDFREEZE = $1;         { Заморозка кадров при проигрывании звуков }
AA_SNDDEVICEID = $100;     { ID устройства, не имя }
AA_SNDBUILDALIAS = $200;   { создавать псевдоним звукового устройства }
{
aaNotify позволяет извещать приложение о проигрывании определенных
кадров.


lPosition - позиция, на которой должно происходить уведомление.


wParam для этого сообщения - hAa, а lParam копируется из этого вызова.


При установке сообщения возвращается TRUE.


Следующее значение определяет необходимость завершения цикла анимации
по окончании проигрывания звука. Если звук отсутствует, анимация
зацикливается навсегда.
}

AA_LOOPSOUND = $FFFF;

{

Автоматическое уведомление посылается при перезагрузке в скрипте
анимации.


lParam для этого сообщения определен ниже
}

AA_ANIMATIONLOADED = 0;

{

Типы параметров
Используется с aaGetParm и aaSetParm.
}

AA_STATUS = 1;                      { Получить текущий статус }
AA_FILETYPE = 2;                    { Получить тип анимации на диске }
AA_MODE = 3;                        { Получить/установить флаги анимации }
AA_WINDOW = 4;                      { Установить/получить окно анимации }
AA_SPEED = 5;                       { Установить/получить текущую скорость }
AA_DESIGNSPEED = 6;                 { Получить скорость на этапе дизайна }
AA_FRAMES = 7;                      { Получить число кадров }
AA_POSITION = 8;                    { Установить/получить позицию текущего кадра }
AA_LOOPS = 9;                       { Установить/получить число циклов }
AA_X = 10;                          { Установить/получить позицию выводимого окна }
AA_Y = 11;                          { Установить/получить позицию выводимого окна }
AA_CX = 12;                         { Установить/получить размеры выводимого окна }
AA_CY = 13;                         { Установить/получить размеры выводимого окна }
AA_ORGX = 14;                       { Установить/получить начало выводимого окна }
AA_ORGY = 15;                       { Установить/получить начало выводимого окна }
AA_WIDTH = 16;                      { Получить ширину анимации }
AA_HEIGHT = 17;                     { Получить высоту анимации }
AA_RPTSOUND = 18;                   { Установить/получить повторения звуков }
AA_PAUSE = 19;                      { Установить/получить время паузы }
AA_DELAYSND = 20;                   { Установить/получить время задержки звука }
AA_TRANSIN = 21;                    { Установить/получить тип входного перехода }
AA_TRANSOUT = 22;                   { Установить/получить тип выходного перехода }
AA_TIMEIN = 23;                     { Установить/получить время входного перехода }
AA_TIMEOUT = 24;                    { Установить/получить время выходного перехода }
AA_CALLBACK = 25;                   { Установить/получить окно обратного вызова }
AA_ANIMWND = 26;                    { Получить дескриптор окна анимации }
AA_MODFLAG = 100;                   { Установить/получить флаг изменения скрипта }
AA_SCRIPTNAME = 101;                { Установить/получить имя скрипта }
AA_ANIMATION = 102;                 { Получить/установить скрипт анимации }
AA_ANIMATIONCOUNT = 103;            { Получить счетчик скрипта анимации }
AA_SCRIPTCONTENTS = 104;            { Получить содержание скрипта }
AA_LASTERROR = 1001;                { Получить код последней ошибки }
AA_LASTERRORMESSAGE = 1002;         { Получить/установить сообщение о последней ошибке }

{

Типы параметров
Используется с aaSetParmIndirect
}

AA_SETMODE = $1;                  { Получить/установить флаги анимации }
AA_SETWINDOW = $2;                { Установить/получить окно анимации }
AA_SETSPEED = $4;                 { Установить/получить текущую скорость }
AA_SETPOSITION = $8;              { Установить/получить позицию текущего кадра }
AA_SETLOOPS = $10;                { Установить/получить число циклов }
AA_SETX = $20;                    { Установить/получить левую координату выводимого окна }
AA_SETY = $40;                    { Установить/получить левую координату выводимого окна }
AA_SETCX = $80;                   { Установить/получить верхнюю координату выводимого окна }
AA_SETCY = $100;                  { Установить/получить верхнюю координату выводимого окна }
AA_SETORGX = $200;                { Установить/получить ширину выводимого окна }
AA_SETORGY = $400;                { Установить/получить ширину выводимого окна }
AA_SETRPTSOUND = $800;            { Установить/получить повторения звуков }
AA_SETPAUSE = $1000;              { Установить/получить время паузы }
AA_SETDELAYSND = $2000;           { Установить/получить время задержки звука }
AA_SETTRANSIN = $4000;            { Установить/получить тип входного перехода }
AA_SETTRANSOUT = $8000;           { Установить/получить тип выходного перехода }
AA_SETTIMEIN = $10000;            { Установить/получить время входного перехода }
AA_SETTIMEOUT = $20000;           { Установить/получить время выходного перехода }
AA_SETCALLBACK = $40000;          { Установить/получить окно обратного вызова }
AA_ALL = $FFFFFFFF;               { Получить/установить все параметры }

{

Значения статуса для анимации
}

AA_STOPPED = 1;             { Загружена, но не воспроизводится }
AA_QUEUED = 2;              { Анимация ожидает воспроизведение }
AA_PLAYING = 3;             { Анимация воспроизводится }
AA_PAUSED = 4;              { Анимация в режиме паузы }
AA_DONE = 5;                { Анимация закончила воспроизведение }
{ и ожидает вызов aaStop }

{

Определения типов файла
}

AA_FLI = $1;               { Формат Autodesk Animator Fli }
AA_DIB = $2;               { Формат Windows DIB }
AA_NUMTYPES = $2;          { Количество типов }
AA_SCRIPT = $3;            { Скрипт без анимации }

{

Типы переходов
}

AA_CUT = 0;                { Простая остановка одной и запуск другой }
AA_FADEBLACK = $1;         { Уход/выход из черного }
AA_FADEWHITE = $2;         { Уход/выход из белого }

{

Коды ошибок, возвращаемые aaGetParm(xxx, AA_LASTERROR)
}

AA_ERR_NOERROR = 0;        {  Неизвестная ошибка  }


AA_ERR_NOMEMORY = $100;    {  256 - Ошибка нехватки памяти }
AA_ERR_BADHANDLE = $101;   {  257 - Плохой дескриптор }
AA_ERR_NOTIMERS = $102;    {  258 - Невозможно запустить таймер }
AA_ERR_BADSOUND = $103;    {  259 - Плохое звуковое сопровождение }
AA_ERR_NOSCRIPT = $104;    {  260 - Требуется скрипт }
AA_ERR_WRITEERR = $105;    {  261 - Ошибка записи (для сценария) }
AA_ERR_BADANIMATION = $106;  {  262 - Невозможно открыть анимацию }


AA_ERR_BADWINDOWHANDLE = $200;     {  512 - Плохой дескриптор окна }
AA_ERR_WINDOWCREATE = $201;        {  513 - Невозможно создать окно }
AA_ERR_DLGERROR = $202;            {  514 - Ошибка диалога }


AA_ERR_INVALIDSTATUS = $300;       {  768 - Неверный статус }
AA_ERR_BADDIBFORMAT = $301;        {  769 - Плохой dib-файл }
AA_ERR_BADFLIFORMAT = $302;        {  770 - Плохой fli-файл }
AA_ERR_UNRECOGNIZEDFORMAT = $303;  {  771 - Нераспознанный формат }
AA_ERR_NOSOUND = $304;             {  772 - Звук не поддерживается }
AA_ERR_NOTVALIDFORSCRIPTS = $305;  {  773 - Неправильный сценарий }
AA_ERR_INVALIDFILE = $306;         {  774 - Плохой дескриптор файла }
AA_ERR_NOSCRIPTS = $307;           {  775 - Нет файлов-скриптов }


AA_ERR_SPEED = $400;            {  1024 - Неверная скорость  }
AA_ERR_LOOPS = $401;            {  1025 - Неверные циклы }
AA_ERR_RPTSOUND = $402;         {  1026 - Неверный повтор звука }
AA_ERR_PAUSE = $403;            {  1027 - Неверная пауза }
AA_ERR_TRANSIN = $404;          {  1028 - Неверный переход }
AA_ERR_TIMEIN = $405;           {  1029 - Неверный переход }
AA_ERR_TRANSOUT = $406;         {  1030 - Неверное время перехода }
AA_ERR_TIMEOUT = $407;          {  1031 - Неверное время перехода }
AA_ERR_DELAYSND = $408;         {  1032 - Неверная задержка звука }
AA_ERR_INVALIDTYPE = $409;      {  1033 - Неверный тип параметра }


AA_ERR_DUPLICATENOTIFY = $500;     {  1280 - Дублирование уведомления }


AA_ERR_NOSWITCH = $600;          {  1536 - Отсутствие ключей в скрипте }
AA_ERR_PARSELOOPS = $601;        {  1537 - Плохие циклы в скрипте }
AA_ERR_PARSESPEED = $602;        {  1538 - Плохая скорость в скрипте }
AA_ERR_BADRPTSOUND = $603;       {  1539 - Плохое повторение звука в скрипте }
AA_ERR_PARSEPAUSE = $604;        {  1540 - Плохая пауза в скрипте }
AA_ERR_PARSETRANS = $605;        {  1541 - Плохой переход в скрипте }
AA_ERR_PARSEDELAYSND = $606;     {  1542 - Плохая задержка звука в скрипте }
AA_ERR_TOOMANYLINKS = $607;      {  1543 - Слишком много ссылок }



{

dwFlags: integer; может быть любым из нижеперечисленных
Используется в aaGetFile.
}

AA_GETFILE_MUSTEXIST = $1;
AA_GETFILE_NOSHOWSPEC = $2;
AA_GETFILE_SAVE = $4;
AA_GETFILE_OPEN = $8;
AA_GETFILE_USEDIR = $10;
AA_GETFILE_USEFILE = $20;
AA_GETFILE_SOUND = $40;
AA_GETFILE_SCRIPT = $80;
AA_GETFILE_ANIMATION = $100;

{

wMode: integer; Значения
Используется в aaSave
}

AA_SAVE_IFMODIFIED = $1;
AA_SAVE_AS = $2;
AA_SAVE_CANCEL = $4;

{

Возможности
Используется в aaGetCaps
}

AA_CAP_TIMER = 1;
AA_CAP_SOUND = 2;
AA_CAP_SCRIPT = 3;

{

Статусные сообщения анимации
Используйте RegisterWindowMessage для получения номеров реальных сообщений.
}

AA_NOTIFY = 'AAPLAY Уведомление';   { Сообщение-уведомление }
AA_STOP = 'AAPLAY Стоп';            { Стоп-сообщение }

{

Это посылается в первом слове lParam с сообщением AA_ERROR.
Это указывает на возникшую ошибку
}

AA_BADPLAY = 1;             { Ошибка при попытке воспроизведения }
AA_BADNOTIFY = 2;           { Ошибка при попытке послать уведомление }
AA_BADSCRIPT = 3;           { Ошибка в сценарии при попытке }
{ воспроизведения }


{ ========================================================================== }

unit aaplay1;
{ (c) P W Kuczora }
{ 27-го апреля 1995 }

interface

uses

SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, MPlayer;

{$I AAPLAY1.INC}

const

AAPARMS_SIZE = 54;

type

AAHandle = word;                            { Дескриптор анимации }
AASPEED = word;                             { Тип, содержащий скорость анимации }
AATRN = word;                               { Тип для хранения перехода анимации }
dword = longint;

{

Структура параметра должна быть использована для анимации.
}

AAPARMS = record
AA_STATUS           : byte;        {  Текущий статус анимации }
AA_FILETYPE         : byte;        {  Тип файла на диске }
AA_MODE             : byte;        {  Некоторые флаги }
AA_bitpix           : byte;        {  бит на пиксел }


AA_HWnd             : HWnd;         {  Дескриптор окна для статусного сообщения }
AA_X                : integer;      {  Левая координата выводимого окна }
AA_Y                : integer;      {  Верхняя координата выводимого окна }
AA_CX               : integer;      {  Ширина выводимого окна }
AA_CY               : integer;      {  Высота выводимого окна }
AA_ORGX             : integer;      {  PoByVal в показываемой анимации }
AA_ORGY             : integer;      {  в верхнем левом углу }


AA_SPEED            : AASPEED;      {  Скорость анимации в миллисекундах на кадр }
AA_DESIGNSPEED      : AASPEED;      {  Проектируемые миллисекунды на кадр }


AA_WIDTH            : word;         {  Ширина анимации в пикселах }
AA_HEIGHT           : word;         {  Высота анимации в пикселах }


AA_FRAMES           : word;         {  Количество кадров в анимации }


AA_POSITION         : dword;        {  Текущая кадровая позиция }
AA_LOOPS            : dword;        {  Конечная позиция анимации }
AA_RPTSOUND         : word;         {  Количество повторов звука }
AA_PAUSE            : word;         {  Количество миллисекунд замораживания кадра }
AA_DELAYSND         : longint;      {  Задержка звука в миллисекундах }
AA_TRANSIN          : byte;         {  Переход в начале анимации }
AA_TRANSOUT         : byte;         {  Переход в конце анимации }
AA_TIMEIN           : word;         {  Продолжительность входного перехода в миллисекундах }
AA_TIMEOUT          : word;         {  Продолжительность выходного перехода в миллисекундах }
AA_CALLBACK         : HWnd;         {  Сообщение окна обратного вызова }
AA_ANIMWND          : Hwnd;         {  Дескриптор окна анимации }
end;


AAPARMSPtr = ^AAPARMS;

{type}

TAAPlayer = class(TMediaPlayer)
procedure OpenAA;


private
{ Private declarations }
protected
{ Protected declarations }
public
{ Public declarations }
AAParameters: AAPARMS;
FlicHandle: AAHandle;
PlayWinHandle: THandle;
StatusWinHandle: THandle;
CallbackWinHandle: THandle;
published
{ Published declarations }
end;

procedure Register;

{ Внешние вызовы AAPLAY.DLL }

function aaOpen : boolean;
procedure aaClose;
function aaGetCaps(wType: word) : word;
function aaLoad(lpzFileName: PChar; WinHnd: HWnd; wMode: word;

x, y, wid, hght, orgx, orgy: integer): AAHandle;
function aaReLoad(hAa: AAHandle; lpzFileName: PChar; wMode, wMask: word)

: boolean;
function aaUnload(hAa: AAHandle): boolean;
function aaPlay(hAa: AAHandle) : boolean;
function aaNotify(hAa: AAHandle; lPosition, lParam: longint) : boolean;
function aaCancel(hAa: AAHandle; lLoPos, lHiPos: longint) : word;
function aaStop(hAa: AAHandle) : boolean;
function aaPause(hAa: AAHandle) : boolean;
function aaPrompt(hAa: AAHandle; lpName: PChar) : boolean;
function aaGetParm(hAa: AAHandle; wType: word) : longint;
function aaGetParmIndirect(hAa: AAHandle; lpAp: AAPARMSPtr; wSize: word)

: boolean;
function aaSetParm(hAa: AAHandle; wType: word; wValue1, lValue2: longint)

: AAHandle;
function aaSetParmIndirect(hAa: AAHandle; dwType: longint; lpAp: AAPARMSPtr;

wMask: word): boolean;
function aaShow(hAa: AAHandle; bShow: boolean) : boolean;
function aaSound(hAa: AAHandle; device, ffile: PChar; wMode: word)

: boolean;
function aaGetFile(dwFlags: word; lpszPath: PChar; wBufLen: word;

lpszDriver: PChar; wDrvLen: word) : integer;
function aaSave(hAa: AAHandle; wMode: word) : integer;


implementation

{ =========================================================================== }

procedure Register;
begin

RegisterComponents('Samples', [TAAPlayer]);
end;

{ --------------------------------------------------------------------------- }

procedure TAAPlayer.OpenAA;

var

FileSuffix, tempstr: string[12];
a,b: integer;

begin
{     tempstr := ExtractFilename(AAPlayer.Filename); }
{     a := StrPos(tempstr,'.');


if (a > 0) then
begin
b := a;


while (b <= StrLen(tmpstr)) do
begin
FileSuffix := FileSuffix + StrUpper(tempstr[b]);
b := b+1;
end;


if ((FileSuffix = '.FLC') or (FileSuffix = '.FLI')) then
begin}
{          AutoEnable := False;

EnabledButtons := [btRecord,btEject];
}           {end;


end;
}
end;

{ =========================================================================== }
{ Внешние вызовы 'AAPLAY.DLL' }
{$F+}
{ =========================================================================== }

{ --------------------------------------------------------------------------- }
function aaOpen : boolean;
external 'AAPLAY';

{ --------------------------------------------------------------------------- }
procedure aaClose;
external 'AAPLAY';
{
'  AAOpen и AAClose в действительности не нужны, за исключением обработки
'  ошибки в Windows, которая предохраняет освобождение библиотек в процедуре
'  выхода Windows (Windows Exit Proc, WEP).
'
'  Поэтому мы используем AAClose для освобождения библиотек при закрытии
'  последней задачей AAPlay DLL.
}

{ --------------------------------------------------------------------------- }
function aaGetCaps(wType: word) : word;
external 'AAPLAY';
{
'  Получение возможностей
}

{ --------------------------------------------------------------------------- }
function aaLoad(lpzFileName: PChar; WinHnd: HWnd; wMode: word;

x, y, wid, hght, orgx, orgy: integer): AAHandle;
external 'AAPLAY';
{
'  aaLoad загружает анимацию.
'
'  Имя файла в lpzFileName
'  и режим загрузки в wMode.
}

{ --------------------------------------------------------------------------- }
function aaReLoad(hAa: AAHandle; lpzFileName: PChar; wMode, wMask: word)

: boolean;
external 'AAPLAY';
{
'  aaReLoad загружает файл новый анимации
'  "в дескриптор" старой анимации.
'
'  Уведомления теряются, но палитра и окно
'  сохраняются.
}

{ --------------------------------------------------------------------------- }
function aaUnload(hAa: AAHandle): boolean;
external 'AAPLAY';
{
'  aaUnload выгружает загруженную анимацию.
'
'  Возвращается FALSE, если
'  hAa не является дескриптором загруженной анимации.
}

{ --------------------------------------------------------------------------- }
function aaPlay(hAa: AAHandle) : boolean;
external 'AAPLAY';
{
'  aaPlay воспроизводит загруженную анимацию.
'
'  Возвращается TRUE, если после возврата aaPlay анимация не останавливается.
}

{ --------------------------------------------------------------------------- }
function aaNotify(hAa: AAHandle; lPosition, lParam: longint) : boolean;
external 'AAPLAY';
{
'  aaNotify позволяет извещать приложение о воспроизведении
'  определенных кадров анимации.
'
'  lPosition -позиция, в которой должно происходить уведомление.
'
'  wParam для данного сообщения - hAa, а lParam копируется из этого вызова.
'
'  Возвращается TRUE, если уведомление установлено.
}

{ --------------------------------------------------------------------------- }
function aaCancel(hAa: AAHandle; lLoPos, lHiPos: longint) : word;
external 'AAPLAY';
{
'  aaCancel позволяет приложению отменить уведомления, установленные aaNotify.
'
'  lLoPos и lHiPos задает верхний и нижний предел позициям.
'
'  Возвращает количество отмененных уведомлений.
}

{ --------------------------------------------------------------------------- }
function aaStop(hAa: AAHandle) : boolean;
external 'AAPLAY';
{
'  aaStop прекращает воспроизведение анимации.
'
'  При остановке воспроизведения aaStop возвращает TRUE.
}

{ --------------------------------------------------------------------------- }
function aaPause(hAa: AAHandle) : boolean;
external 'AAPLAY';
{
'  aaPause приостанавливает воспроизведение.
'
'  Возвращается TRUE, если после возврата aaPause анимация переходит в режим паузы.
'
'  Для продолжения воспроизведения анимации используйте aaPlay.
}

{ --------------------------------------------------------------------------- }
function aaPrompt(hAa: AAHandle; lpName: PChar) : boolean;
external 'AAPLAY';
{
'  aaPrompt позволяет выводить диалог для получения данных от пользователя.
'
'  При получении данных дескриптор меняется, и, таким образом, вступают
'  в силу новые параметры. Старый дескриптор не уничтожается до тех пор,
'  пока не будет создан новый.
'
'  Если новый дескриптор не может быть создан, aaPrompt возвращает NULL,
'  в противном случае возвращается новый дескриптор.
}

{ --------------------------------------------------------------------------- }
function aaGetParm(hAa: AAHandle; wType: word) : longint;
external 'AAPLAY';
{
'  aaGetParm возвращает информацию об анимации.
'
'  Некоторая информация может быть установлена с помощью aaSetParm,
'  и другая информация - информация о состоянии, поддерживаемая AAPLAY.
}

{ --------------------------------------------------------------------------- }
function aaGetParmIndirect(hAa: AAHandle; lpAp: AAPARMSPtr; wSize: word)

: boolean;
external 'AAPLAY';
{
'  aaGetParmIndirect возвращает ту же информацию, что и aaGetParm,
'  в структуре, удобной для легкого доступа из приложений Visual Basic.
}

{ --------------------------------------------------------------------------- }
function aaSetParm(hAa: AAHandle; wType: word; wValue1, lValue2: longint)

: AAHandle;
external 'AAPLAY';
{
'  aaSetParm устанавливает информацию для анимации
}

{ --------------------------------------------------------------------------- }
function aaSetParmIndirect(hAa: AAHandle; dwType: longint; lpAp: AAPARMSPtr;

wMask: word): boolean;
external 'AAPLAY';
{
'  aaSetParmIndirect устанавливает параметры анимации из структуры.
}

{ --------------------------------------------------------------------------- }
function aaShow(hAa: AAHandle; bShow: boolean) : boolean;
external 'AAPLAY';
{
'  aaShow позволяет показать в окне отдельный кадр анимации.
'
'  Mode определяет способ рисования анимации.
'
'  Параметры окна возможно задать с помощью aaSetParm или aaSetParmIndirect.
'
'  aaShow возвращает TRUE, если анимация была отрисована без ошибок.
}

{ --------------------------------------------------------------------------- }
function aaSound(hAa: AAHandle; device, ffile: PChar; wMode: word)

: boolean;
external 'AAPLAY';
{
'  aaSound открывает и закрывает канал звукового сопровождения анимации.
'
'  Звуковой канал будет открыт, если аргумент file не будет равен null
'  и не будет пустым, в противном случае канал будет закрыт.
'
'  Если устройство равно null, то для выбора подходящего устройства
'  используется формат файла.
}

{ --------------------------------------------------------------------------- }
function aaGetFile(dwFlags: word; lpszPath: PChar; wBufLen: word;

lpszDriver: PChar; wDrvLen: word) : integer;
external 'AAPLAY';
{
' Открывает системного диалоговое окно стандартного типа ("открыть файл"),
' предлагающее пользователю выбрать файл.
'
' <dwFlags> определяет характеристики диалогового окна.
' Список возможных флагов:
'       AA_GETFILE_MUSTEXIST    Выбранный файл должен удовлетворять условиям
'                               флагов OpenFile(), в противном случае диалог
'                               издаст системный звук.
'       AA_GETFILE_NOSHOWSPEC   НЕ показывать путь в поле редактирования.
'                               По умолчанию путь к файлу показывается.
'       AA_GETFILE_SAVE         Кнопка Ok имеет заголовок "Save".
'       AA_GETFILE_OPEN         Кнопка Ok имеет заголовок "Open".
'       AA_GETFILE_USEFILE      Взять имя файла из параметра lpszPath
'       AA_GETFILE_UDEDIR       Взять каталог из параметра lpszPath
'       AA_GETFILE_SOUND        Получить звуковой файл и драйвер
'       AA_GETFILE_SCRIPT       Получить файл со скриптом
'       AA_GETFILE_ANIMATION    Получить файл анимации (без скриптов)
'
' <lpszPath> - строковый буфер LPSTR, куда после выполнения диалога
' пишется полное имя пути.
' <wBufLen> - длина данного буфера.
'
' <lpszDriver> - строковый буфер LPSTR для хранения выбранного
' звукового устройства.
' <wDrvLen> - длина данного буфера.
'
' Возвращаемые значения: 0, если была нажата кнопка Cancel
'                        -1, если OpenFile() потерпело неудачу,
'                        а AA_GETFILE_MUSTEXIST не определен.
'                        В противном случае возвращается дескриптор DOS-файла.
'                        При возврате из aaOpenFile данный дескриптор "не открыт".
}

{ --------------------------------------------------------------------------- }
function aaSave(hAa: AAHandle; wMode: word) : integer;
external 'AAPLAY';
{
'  Сохранение скрипта
}

{ --------------------------------------------------------------------------- }

{$F-}
{ Окончание внешних вызовов 'AAPLAY.DLL' }
{ =========================================================================== }

end.

{ =========================================================================== }


Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay