Исходники и листинги ::: Delphi ::: Delphi'n'Flash

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
  Разве возможно совместить Флэш-ролики и Дельфи-приложения? Сейчас я вам расскажу об этом. 
 
  Во-первых хочется отметить преимущества использования флэш-роликов в ваших программах. 
 
  Если вы сумеете гармонично вписать небольшой флэш-ролик в вашу программу, то несомненно внешний вид программы будет намного привлекательнее (главное не переборщить, 
  увлекаясь дизайном, не надо забывать о том что программа должна быть удобна и проста в использовании ).
 
  Итак, как же совместить Флэш и Дельфи? 
 
  Запустите Дельфи и выберите пункт меню 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.
 
  Для TShockwaveFlash:
 
  Name сделайте равным Flash1 
 
  Свойство Playing установите в false 
 
  Свойство BGColor, установите как вам хочется (цвет фона) 
 
  Теперь напишем обработчик события 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;
 
  Ну вот и вся приколюха заходи на наш сайт liceum2.s86.ru  
 
  shadow.izgoy.shaman Не попадайся = )
Вернуться в галерею исходников Delphi'n'Flash
Автор: shadow_izgoy_shaman*
Город: Сургут
Дата: 04.05.2006  13:11
Комментариев: 12
Просмотров: 535
Оценка: 4 (0|2|0|1|1) [0]

Вернуться на главную
Авторский комментарий к работе: Совмещаем 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
Kripton Подмастерье (ур.12)
Очки: 7615
Город: Томск
Тв. работ: 85
Рег: 03.12.2006 (1686)
Вроде нормально


--------------------
Истинно великий не может быть жадным.
RapteR* ::: комментарий от 15.05.2006 | 13:05
RapteR Приверженец (ур.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
Химера* ::: комментарий от 06.05.2006 | 12:15
Химера Подмастерье (ур.12)
Очки: 6945
Город: Омск
Тв. работ: 111
Рег: 27.04.2006 (24)
Чего-то я ничего не поняла. Наверное мне нужно еще подрасти!


--------------------
Независимое мнение...
Chronos ::: комментарий от 06.05.2006 | 09:29
Chronos Приверженец (ур.6)
Очки: 688
Город: Томск
Тв. работ: 4
Рег: 05.05.2006 (80)
Многоуважаемый shadow_izgoy_shaman* , полагаю есть некоторая разница между open-source проэктами и плагиатом ;-) Если размещаешь что то чужое, то вероятно имеет смысл указывать сылки на первоисточники :о) В этом нет ничего зазорного, это даже профессора в научных статьях делают называеться список используемой литературы



Многоуважаемый VilotiV* - коменарии в данном разделе реализовали специально, для того что бы можно было качественно отценить предоставленный исходник или листинг.


--------------------
Хорошо смееться тот кто стреляет последним
VilotiV* ::: комментарий от 06.05.2006 | 07:51
VilotiV Искатель (ур.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
Chronos Приверженец (ур.6)
Очки: 688
Город: Томск
Тв. работ: 4
Рег: 05.05.2006 (80)
Думаю что по ссылке ссылка можно прочитать более полную версию данной статьи ;-) PS хотя чесно говоря ее растащили по куче сайтов ;-)


--------------------
Хорошо смееться тот кто стреляет последним