Мастерство программиста заключается не в том, сколько он знает,
а в том, насколько быстро он может осваивать новые для себя методы и технологии. - Ведущий рассылки.
Наши друзья: (очень рекомендую подписаться на эти рассылки!)
comp.soft.prog.programmtutors - Рассылка "Уроки по программированию (от Ассемблера до Делфи)". Вы хотите начать программировать, но не знаете как. Тогда эта рассылка для вас! В ней публикуются уроки для изучения языков таких как Ассемблер, С, Паскаль, Delphi, Java, Basic.
rest.interesting.znakomstvonew - Рассылка "Как познакомиться?" - обсуждаются различные проблемы взаимоотношений, имеется клуб знакомств и дискуссии с психологом.
На этот раз выпуск полностью представляет господин CJ.
Пользуясь, как говорится, случаем хотел бы выразить ему свою признательность: пока я работаю над третьей Охотой, он не даёт рассылке "уснуть".
В этом выпуске две его небольших статьи:
1. Что такое ActiveX.
2. Дополнение программы Flash-Player.
Кстати, это первый выпуск, в котором нет ничего моего, кроме традиционной редакции и оформления.
Привет всем!
1. Что такое ActiveX.
Рассмотрим подробно как создается компонент TShockwaveFlash в Delphi.
Сначала мы выбираем какой компонент нам нужно добавить в программу.
Этот компонент лежит на вашем винчестере в виде особой динамической библиотеки - OCX.
Мы добавляем компонент. Delphi находит на диске файл, читает его и автоматически создает соответствующий класс (TShockwaveFlash).
После чего созданный класс необходимо сохранить на винт и скомпилировать.
После компиляции класс добавляется на закладку ActiveX (но можно выбрать и другую).
Вызывая какую-либо функцию мы извлекаем ее не из самого класса (ее там нет и она не описана), а динамически загружаем из ActiveX-библиотеки (OCX).
Таким образом (подводя итог) можно представить ситуацию так (если очень уж просто и не глубоко копать): компонент, созданный из ActiveX-контрола это что-то типа "морды" для библиотеки, т.е. простого и удобного в обращении интерфейса, используя который можно писать свою программу.
Если бы в Дельфи не было такой возможности (импорта ActiveX-компонентов), то нам бы пришлось писать класс самому либо обращаться к библиотеке напрямую, просто через имеющиеся в ней функции, что вылилось бы в такую проблему, что некоторые бы никогда не захотели больше программировать. :)
2. Дополнение программы Flash-Player.
Через некоторое время после моей первой статьи я подумал и решил, что в программе Flash-Player, надо внести несколько изменений:
1) ScrollBar заменить на TrackBar, т.к. он больше подходит для подобных целей.
2) В текст заголовка окна добавить имя проигрываемого файла.
3) Дополнение связанное с использованием TrackBar'а, вместе с проигрыванием файла будет перемещаться бегунок.
Теперь изменения и дополнения в код Flash-Player.
Заменяем ScrollBar на TrackBar, изменяем в коде все Scroll на выбранное имя
TrackBar'a, например Track.
Туда где
var
Form1: TForm1;
Добавляем переменную типа boolean:
TimerEvent: boolean=false;
Пишем такой код в TrackBar:
procedure TForm1.TrackChange(Sender: TObject);
begin
if TimerEvent then exit; //Если сообщение от таймера, то не будем ничего делать
if Flash.IsPlaying then Flash.Stop; //Если ролик проигрывается, то останавливаем его
{ Открываем кадр, номер которого соответствует позиции ползунка }
flash.GotoFrame(track.position); //Переход на фрейм
flash.Play;
end;
Далее добавляем на форму компонент Timer, изменяем его имя на Timer. Ставим Interval в оптимальное значение 1. Далее код:
procedure TForm1.TimerTimer(Sender: TObject);
begin
TimerEvent:=true; //Сообщаем полосе, что это событие будет вызвано таймером
track.Position:=flash1.CurrentFrame;
TimerEvent:=false; //Остальные события вызывает пользователь
end;
Это все даст программе более "товарный вид", при том бегунок на полосе прокрутки будет перемещатся одновременно с проигрыванием ролика.
Если будут вопросы, пишите на мыло.
Все вопросы и пожелания ко мне, т.е. ведущему рассылки, прошу слать на e-mail: urisff@inbox.ru
Перепубликация допускается только с моего разрешения.
В случае, если вы будете использовать приведённые в этой рассылке коды, не забудьте сделать ссылку на мой сайт.