При закрытии подписчики были переданы в рассылку "Бизнес и карьера в интернете" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Информационный Канал Subscribe.Ru |
Цель создания С++ была в том, чтобы пользователь мог определить новые типы данных,
работа с которыми была бы столь же удобна и эффективна как и со встроенными типами.
- Бьерн Страуструп
Привет всем! Когда-то мне понадобилось просмотреть большой Flash-ролик, а именно то, что было в конце. Универсальных средств для этого у меня не было, меня даже не устраивал IE, так как у него нет полосы прокрутки. Однако Flash-плэйер можно написать самому с помощью Delphi! Об этом то я и расскажу. Для начала создайте новый проект. Далее надо установить компонент Shockwave Flash (если он конечно не установлен), а делается это так: 1) Кликайте по пункту Component, далее Import ActiveX Control. 2) В списке необходимо выбрать Shockwave Flash (Version 1.0). 3) Нажать кнопку Install, в открывшемся окне нажать ОК. 4) Затем Yes и ОК. Теперь у вас на закладке компонентов должен появится комппонент Shockwaveflash. Это ActiveX компонент. ActiveX - это технология для программеров, которая позволяет добавлять в свои программы компоненты, присутствующие в Windows и использовать их по своему усмотрению. Главное преимущество этой технологии в том, что при ее использовании совершенно неважно то, на каком Windows-языке (и в какой среде быстрой разработки приложений) вы пишете - Delphi, Visual C++ или Visual Basic. Но при этом для того, чтобы использовать компонент, необходимо чтобы сама среда быстрой разработки поддерживала импорт этого компонента. Дельфи этот импорт поддерживает на ура, а вот Visual Basic... Здесь всё ясно. В следующей статье я расскажу как все подобные компоненты устанавливаются. После установки ShockwaveFlash, его надо поместить на форму и придать удобные размеры. Для начала измените свойство Name на более удобное flash. Рассмотрим основные свойства нашего компонента, которые пригодятся для работы в программе: 1) Movie: WideString; //Загружает ролик. 2) Play; //Проигрывание ролика. 3) Stop; //Стоп. 4) Rewind; //Перемотка. 5) FrameNum: Integer; 6) GoToFrame(FrameNum: Integer); //Переход на нужный фрейм. (фрейм от англ. "frame", кадр - прим. ред.) 7) TotalFrame: Integer; //Возвращает количество всех фреймов в ролике. 8) Quality2: WideString; //Изменяет качество проигрываемого ролика. 9) Menu: WordBool; //Отключает меню великой Макромедии. 10) BackgroundColor: Integer; //Цвет фона ролика. Змените заголовок формы например на Flash-Player. Кинем на форму 6 кнопок и по порядку изменяйте свойство Name у кнопок на 1) Open; 2) Rewind; 3) Reset; 4) Stop; 5) Continue; 6) Exit; Измените свойство Enabled на false, у кнопок 2-5. Это их неактивными при старте программы. Расположите их на форме по вашему вкусу. На закладке Dialogs выбирите OpenDialog, и поместите его на форму. Сразу настройте заголовок окна свойством Title, и фильтр файлов свойством Filter. Потом поместите на форме компонент ScrollBar. Измените его Name на Scroll. Теперь приступим к написанию кода. Кнопка Open: procedure TForm1.OpenClick(Sender: TObject); begin If opendialog1.Execute then flash.Movie:=opendialog1.FileName else exit; //Открытие файла flash.Play; //Начало проигрывания //Включение кнопок... rewind.Enabled:=true; reset.Enabled:=true; continue.Enabled:=true; stop.Enabled:=true; end; Кнопка Rewind: procedure TForm1.RewindClick(Sender: TObject); begin flash.Rewind; //Перемотка flash.Play; //Проигрывание end; Кнопка Reset: procedure TForm1.ResetClick(Sender: TObject); begin flash.Rewind; //Перемотка opendialog1.FileName:=''; //Вовремя изменяем имя файла //Выключение кнопок... rewind.enabled:=false; reset.enabled:=false; stop.enabled:=false; continue.enabled:=false; scroll.Position:=0; //Обнуляем позицию полосы прокрутки end; Кнопка Stop: procedure TForm1.StopClick(Sender: TObject); begin flash.Stop; //Останавливаем continue.Enabled:=true; //Включаем кнопку stop.Enabled:=false; //Выключаем кнопку end; Кнопка Continue: procedure TForm1.ContinueClick(Sender: TObject); begin flash.Play; //Проигрываем continue.enabled:=false; //Отключаем кнопку stop.Enabled:=true; //Включаем кнопку end; Кнопка Exit: procedure TForm1.ExitClick(Sender: TObject); begin close; //Выход end; Полоса прокрутки Scroll: procedure TForm1.ScrollChange(Sender: TObject); begin scroll.Max:=flash.TotalFrames; //Максимальное значение равно общему количеству фрейма flash.GotoFrame(scroll.Position); //Отправляем на указанный фрейм flash.Play; //Проигрываем If scroll.Max=scroll.Position then flash.FrameNum:=scroll.Max; //Если макс. значение равно текущей позиции тогла текущий фрейм равен максимальному значению end; Форма Form1: (Этот код добавит в программу полезную вещь: при открытии файла по двойному щелчку (если пользователь укажет что открывать надо этой программой) она начинает его проигрывать.) procedure TForm1.FormShow(Sender: TObject); begin If ParamCount<>0 then //Если количество параметров коммандной строки не равны нулю тогда Flash.Movie:=ParamStr(1); //Загрузка файла if flash.movie='Window' then exit; //Если свойство равно Window, выходим из процедуры //Включение кнопок... rewind.Enabled:=true; reset.Enabled:=true; continue.Enabled:=true; stop.Enabled:=true; end; Это основное из чего можно сделать свой собственный Flash-плэйер. Сейчас я расскажу о трех свойствах, которые не были использованы в программе. 1) Quality принимает значения в виде строки Low, Medium, High. Это параметры качества. 2) Menu принимает значения true или false. Оно отключает меню Макромедии. 3) BackgroundColor принимает значения -1 и 1. -1 это белый фон, а 1 - черный. Ну вот и все. Скачать исходные тексты программы можно по этому адресу: http://www.karatetski.narod.ru/flash.zip Если будут вопросы, пишите на мыло.
Каратецкий Кирилл aka CJ
|
Uses crt,uris; {Автор: Набатников Иван} {site: http://NEWFF.narod.ru} {e-mail: URISFF@inbox.ru} function NumText(s: string): string; const hun: array[1..9] of string[20] = ('сто','двести','триста','четыреста','пятьсот','шестьсот','семьсот','восемьсот','девятьсот'); dec: array[1..9] of string[20] = ('десять','двадцать','тридцать','сорок','пятьдесят', 'шестьдесят','семьдесят','восемьдесят','девяносто'); dt: array[11..19] of string[13] = ('одиннадцать','двенадцать','тринадцать','четырнадцать','пятнадцать', 'шестнадцать','семнадцать','восемнадцать','девятнадцать'); t: array[1..9] of string[20] = ('одна','две','три','четыре','пять','шесть','семь','восемь','девять'); tc: array[1..9] of string[20] = ('тысяча','тысячи','тысячи','тысячи','тысяч','тысяч','тысяч','тысяч','тысяч'); m: array[1..9] of string[20] = ('один','два','три','четыре','пять','шесть','семь','восемь','девять'); mc: array[1..9] of string[20] = ('миллион','миллиона','миллиона','миллиона','миллионов', 'миллионов','миллионов','миллионов','миллионов'); ma: array[1..9] of string[20] = ('миллиард','миллиарда','миллиарда','миллиарда','миллиардов','миллиардов','миллиардов','миллиардов','миллиардов'); mt: array[1..9] of string[20] = ('триллиард','триллиарда','триллиарда','триллиарда','триллиардов','триллиардов','триллиардов','триллиардов','триллиардов'); var a: array[1..10] of string[3]; n: integer; z: string; procedure non; var r,f: word; begin f:=3-(Length(s) mod 3); If f=3 then f:=0 else for r:=1 to f do s:='0'+s; end; procedure fill; var i: integer; begin non; for i:=0 to Length(s) div 3 do a[i+1]:=copy(s,i*3+1,3); n:=Length(s) div 3; end; function on3(v: string; num3: byte): boolean; var k: integer; begin on3:=false; for k:=1 to 3 do If v[k]<>'0' then begin If k=1 then z:=z+hun[StrToInt(v[k])]+' '; If k=2 then If (v[2]='1') and (v[3]<>'0') then begin z:=z+dt[StrToInt(v[k]+v[k+1])]+' '; on3:=true; exit; end else begin z:=z+dec[StrToInt(v[k])]+' '; end; If k=3 then If num3=1 then z:=z+t[StrToInt(v[k])]+' ' else z:=z+m[StrToInt(v[k])]+' '; end; If v[3]='0' then on3:=true; end; procedure intext; var i: integer; begin for i:=1 to n do begin If on3(a[i],n-i) then begin If i begin If n-i=1 then z:=z+'тысяч '; If n-i=2 then z:=z+'миллионов '; If n-i=3 then z:=z+'миллиардов '; If n-i=4 then z:=z+'триллиардов '; end; end else begin If i If n-i=2 then z:=z+mc[StrToInt(a[i][3])]+' '; If n-i=3 then z:=z+ma[StrToInt(a[i][3])]+' '; If n-i=4 then z:=z+mt[StrToInt(a[i][3])]+' '; end; end; end; begin z:=''; fill; intext; NumText:=z; end; begin Writeln(NumText('123123123123123')); end. |
Ведущий рассылки:
Набатников Иван (urisff@inbox.ru)
http://newff.narod.ru/
http://subscribe.ru/
E-mail: ask@subscribe.ru |
Отписаться
Убрать рекламу |
В избранное | ||