Delphi і Flash. Поєднання несумісного! (Исходники), Різне, Програмування, статті

Хіба можливо поєднати Флеш-ролики і Дельфі-додатки. Раніше я думав що НІ. Але тепер я знаю не тільки, що це можливо, але і знаю як це робиться! І зараз я вам розповім про це. По-перше хочеться відзначити переваги використання флеш-роликів в ваших програмах. Якщо ви зумієте гармонійно вписати невеликий флеш-ролик в вашу програму, то безсумнівно зовнішній вигляд програми буде набагато привабливіше (головне не переборщити, захоплюючись дизайном, не треба забувати про те що програма повинна бути зручна і проста у використанні!).


Отже, як же сумістити Флеш і Дельфі? (Сподіваюся, що у вас Флеш встановлений :))


Запустіть Дельфі і виберіть пункт меню Component-> Import ActiveX Control … Перед вами відкриється діалогове вікно з заголовком Import ActiveX Control. У розділі Registered Controls виберіть Shockwave Flash. У розділі Pallete Page … Виберіть сторінку в палітрі компонентів, на якій буде розташовуватися встановлений компонент (за умовчанням це ActiveX). У розділі Unit Dir Name … шлях до папки куди буде встановлений компонент.


Натисніть на кнопку Install. Перед вами з’явиться вікно, в якому вам потрібно буде вибрати в який пакет буде встановлений компонент (ви можете встановити як у вже існуючий, так і в новий пакет). Потім перед вами з’явиться вікно редагування обраного пакета і Дельфі вас запитає: “… Package will be rebuilt. Continue?”. Дайте відповідь Yes. Все готово тепер можна використовувати флеш в ваших додатках!


Тепер, щоб показати вам як користуватися цим компонентом, спробуємо разом зробити програму для перегляду *. SWF файлів. Для цього нам знадобляться наступні компоненти: TShockwaveFlash (для зручності назвіть його просто Flash1), TTrackBar, TTimer, TOpendialog і три кнопки TButton (“відкрити”, “старт” і “стоп”).


Для початку встановимо необхідні властивості OpenDialog “a



Для Timer “a потрібно встановити властивість Interval рівним 1.


Для TShockwaveFlash:



Тепер напишемо обробник події OnClick для кнопки, яка викликати OpenDialog:


if open1.Execute then begin
flash1.Movie:=open1.FileName;
trackbar1.Max:=flash1.TotalFrames;
{Це робиться для того, щоб потім можна було перемістити повзунок подивитися кожен кадр ролика}


У обробник події OnClick для другої кнопки (“Старт”) напишемо:


flash1.Play;


Ну тут взагалі все просто! Майже таким же чином це буде виглядати для третьої кнопки (“Стоп”):


flash1.Stop;


Тепер зробимо, щоб при переміщенні повзунка Trackbar “a ми могли подивитися кожен кадр (подія OnChange):


if Flash1.IsPlaying=true then Flash1.Stop; {Якщо ролик програється, то треба його зупинити}
flash1.GotoFrame(trackbar1.position);
{Відкриваємо кадр номер якого відповідає позиції повзунка}


Ну і нарешті залишилося зробити щоб при програванні ролика повзунок переміщувався, вказуючи скільки залишилося і скільки пройшло. Для цього ми й використовуємо Timer. У обробник події OnTimer, напишемо:


trackbar1.Position:=flash1.CurrentFrame;


Наведу повний код програми:






unit flash;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls, OleCtrls, ShockwaveFlashObjects_TLB, ExtCtrls;
type
TForm1 = class(TForm)
Flash1: TShockwaveFlash;
Button1: TButton;
TrackBar1: TTrackBar;
Open1: TOpenDialog;
Button2: TButton;
Button3: TButton;
Timer1: TTimer;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure TrackBar1Change(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
if open1.Execute then begin
flash1.Movie:=open1.FileName;
trackbar1.Max:=flash1.TotalFrames;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
flash1.Play;
end;
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
if Flash1.IsPlaying=true then Flash1.Stop;
flash1.GotoFrame(trackbar1.position);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
flash1.Stop;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
trackbar1.Position:=flash1.CurrentFrame;
end;
end.

Ну от і все. Як виявилося нічого складного.

Удачи в програмуванні …


Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*