Исходники и листинги ::: Delphi ::: Delphi'n'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 | |
Свойство Filter может быть таким: Флэш-ролики|*.swf | |
Свойство DefaultExt должно быть: *.swf | |
Для Timer'a нужно установить свойство Interval равным 1. | |
Name сделайте равным Flash1 | |
Свойство Playing установите в false | |
Свойство BGColor, установите как вам хочется (цвет фона) | |
Теперь напишем обработчик события OnClick для кнопки, которая вызывать OpenDialog: | |
if open1.Execute then begin | |
flash1.Movie:=open1.FileName; | |
trackbar1.Max:=flash1.TotalFrames; {это делается для того, чтобы потом можно было перемещаю ползунок посмотреть каждый кадр ролика} | |
В обработчик события OnClick для второй кнопки ("Старт") напишем: | |
Ну тут вообще все просто! Почти таким же образом это будет выглядеть для третьей кнопки ("Стоп"): | |
Теперь сделаем, чтобы при перемещении ползунка Trackbar'a мы могли посмотреть каждый кадр (событие OnChange): | |
if Flash1.IsPlaying=true then Flash1.Stop; {если ролик проигрывается, то надо его остановить} | |
flash1.GotoFrame(trackbar1.position); {открываем кадр номер которого соответствует позиции ползунка} | |
Ну и наконец осталось сделать чтобы при проигрывании ролика ползунок перемещался, указывая сколько осталось и сколько прошло. | |
Для этого то мы и используем Timer. В обработчик события OnTimer, напишем: | |
trackbar1.Position:=flash1.CurrentFrame; | |
Приведу полный код приложения: | |
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, | |
ComCtrls, StdCtrls, OleCtrls, ShockwaveFlashObjects_TLB, ExtCtrls; | |
procedure Button1Click(Sender: TObject); | |
procedure Button2Click(Sender: TObject); | |
procedure Button3Click(Sender: TObject); | |
procedure TrackBar1Change(Sender: TObject); | |
procedure Timer1Timer(Sender: TObject); | |
procedure TForm1.Button1Click(Sender: TObject); | |
if open1.Execute then begin | |
flash1.Movie:=open1.FileName; | |
trackbar1.Max:=flash1.TotalFrames; | |
procedure TForm1.Button2Click(Sender: TObject); | |
procedure TForm1.TrackBar1Change(Sender: TObject); | |
if Flash1.IsPlaying=true then Flash1.Stop; | |
flash1.GotoFrame(trackbar1.position); | |
procedure TForm1.Button3Click(Sender: TObject); | |
procedure TForm1.Timer1Timer(Sender: TObject); | |
trackbar1.Position:=flash1.CurrentFrame; | |
Ну вот и вся приколюха заходи на наш сайт liceum2.s86.ru | |
shadow.izgoy.shaman Не попадайся = ) | |
|
|
|
|
Авторский комментарий к работе: Совмещаем Delphi и *.swf да я похож на сумасошедшего но щас мы сделаем это...
|
|
Вы не можете оценивать |
КОММЕНТАРИИ К РАБОТЕ:
|
|
|
|
|
| mr. Twister ::: комментарий от 24.02.2007 | 17:42
|
|
|
Герой (ур.14)
Очки: 12378
Город: 1
Тв. работ: 80
Рег: 26.01.2007 (3187) |
--------------------
1
|
|
| mr. Twister ::: комментарий от 24.02.2007 | 17:41
|
|
|
Герой (ур.14)
Очки: 12378
Город: 1
Тв. работ: 80
Рег: 26.01.2007 (3187) |
все же да
--------------------
1
|
|
| mr. Twister ::: комментарий от 24.02.2007 | 17:41
|
|
|
Герой (ур.14)
Очки: 12378
Город: 1
Тв. работ: 80
Рег: 26.01.2007 (3187) |
баян, точнее плагиат, а хотя нет, да хрен его знает.
--------------------
1
|
|
| Kripton ::: комментарий от 15.01.2007 | 00:22
|
|
Подмастерье (ур.12)
Очки: 7615
Город: Томск
Тв. работ: 85
Рег: 03.12.2006 (1686) |
Вроде нормально
--------------------
Истинно великий не может быть жадным.
|
|
| RapteR* ::: комментарий от 15.05.2006 | 13:05
|
|
Приверженец (ур.6)
Очки: 722
Город: Омск
Тв. работ: 14
Рег: 02.05.2006 (61) |
тут же в принципе АВТОРСКИЕ работы, то есть свои, смысла нет лить сюда чужую статью 1 в 1 да и тем более по-свински нарушать авторские права.
--------------------
Хочеш сделать хорошо, сделай сам!
|
|
| shadow_izgoy_shaman* ::: комментарий от 12.05.2006 | 00:10
|
|
|
Дух (ур.1)
Очки: 45
Город: Сургут
Тв. работ: 1
Рег: 04.05.2006 (76) |
в принципе Chronos прав надо ссылаться на исходники.
|
|
| LeonardBetts* ::: комментарий от 10.05.2006 | 22:00
|
|
|
Подмастерье (ур.12)
Очки: 7949
Город: 0000
Тв. работ: 145
Рег: 10.05.2006 (101) |
Не думаю, что статья является плагиатом, просто данная тема довольно популярна. Лично я дошёл до подключения Flash в Delphi сам, и довольно легко, изучая палитру ActiveX elements.
--------------------
0000
|
|
|
|
| Chronos ::: комментарий от 06.05.2006 | 09:29
|
|
Приверженец (ур.6)
Очки: 688
Город: Томск
Тв. работ: 4
Рег: 05.05.2006 (80) |
Многоуважаемый shadow_izgoy_shaman* , полагаю есть некоторая разница между open-source проэктами и плагиатом ;-) Если размещаешь что то чужое, то вероятно имеет смысл указывать сылки на первоисточники :о) В этом нет ничего зазорного, это даже профессора в научных статьях делают  называеться список используемой литературы  Многоуважаемый VilotiV* - коменарии в данном разделе реализовали специально, для того что бы можно было качественно отценить предоставленный исходник или листинг.
--------------------
Хорошо смееться тот кто стреляет последним
|
|
| VilotiV* ::: комментарий от 06.05.2006 | 07:51
|
|
Искатель (ур.5)
Очки: 383
Город: Сургут
Тв. работ: 2
Рег: 01.05.2006 (58) |
Chronos ты гений!!!!!!!!!! А зачем тогда ваще создали этот сайт, если пообщаться то есть и другие форумы и чаты
--------------------
я бы изменил мир... но бог не дал мне исходников
|
|
| shadow_izgoy_shaman* ::: комментарий от 05.05.2006 | 23:44
|
|
|
Дух (ур.1)
Очки: 45
Город: Сургут
Тв. работ: 1
Рег: 04.05.2006 (76) |
мы все крадем что-то из разных источников. воздух и воду из мировых запасов, слова из азбуки еирилла и мефодия... Chronos я бы не советовал тебе связываться со мной в филосовских вопросах, тем более над open-source проектами
|
|
| Chronos ::: комментарий от 05.05.2006 | 10:24
|
|
Приверженец (ур.6)
Очки: 688
Город: Томск
Тв. работ: 4
Рег: 05.05.2006 (80) |
Думаю что по ссылке ссылка можно прочитать более полную версию данной статьи ;-) PS хотя чесно говоря ее растащили по куче сайтов ;-)
--------------------
Хорошо смееться тот кто стреляет последним
|
|