![]() |
|
#1
|
|||
|
|||
![]() Помогите дополнить программу разными фишками на своё усмотрение
Код здесь http://ishodniki.ru/art/artshow.php?id=47 Прога о том как совместить Delphi и Flash Заранее премногоблагодарен! (Студент II курса) |
#2
|
||||
|
||||
![]() Я точно непомню. Но в Delphi должен быт компонент TFlash чего то там.
Он по умолчанию отключен. Попробуй установить его через палитру компонентов. Я сталкивался с точно такой же проблемой. |
#3
|
||||
|
||||
![]() Теперь напишем обработчик события 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. |