Оживляем рабочий стол за 20 минут
Наверно многим (как и мне в принципе) уже надоело каждые 2-3 дня менять обои на рабочем столе... сегодня мы будем решать эту проблему... а именно заставим десктоп показывать нам фильмы!
и так приступим....
для работы нам понадобятся:
1.все также библиотека DSPack (есть ссылка в разделе!)
2.непосредственно Delphi
3.ну и естественно желание + 20 минут свободного времени
"лед тронулся, господа присяжные заседатели..."
в глобальные переменные добавим переменную, в которой будет храниться адрес к AVI файлу
| Код |
var
Form1: TForm1; //эта строка есть по умолчанию
FN:String;// а эту дописываем
|
а также процедуру по случаю закрытия формы!
| Код |
procedure TForm1.FormDestroy(Sender: TObject);
begin
FilterGraph1.Free;
end;
|
для начала нам необходимо будет написать непосредственно проигрыватель avi файлов...
для этого бросаем на форму :
TOpenDialog(вкладка Dialogs)
TFilterGraph(вкладка DSPack)
TDSVideoWindowEx2(вкладка DSPack)
начинаем настраивать компоненты:
TFilterGraph
устанавливаем
| Код |
LinearVolume:=true
GraphEdit:=true
|
TDSVideoWindowEx21
| Код |
Align= AlClient; //(чтобы видео заполняло все пространство рабочего стола)
FilterGraph:=FilterGraph1;
|
вот в принципе необходимое настроено!))
бросаем кнопку (она будет открывать AVI фаил ) ,два раза щелкаем на ней и пишем следующее!!
| Код |
OpenDialog1.ute;
FN:=OpenDialog1.FileName;
FilterGraph1.ClearGraph;
FilterGraph1.Active:=true;
FilterGraph1.RenderFile(FN);
FilterGraph1.Play;
|
бросаем еще 2 кнопки(Button1 и Button2 это будут кнопки Play и Stop соответственно), в них пишем
в кнопке Play
в кнопке Stop
НУ ВОТ И ГОТОВ НАШ ВИДЕО ПЛЕЕР
теперь непосредственно оживляем рабочий стол....
для этого создадим еще одну кнопку(Button3) которая будет переводить изображение на рабочий стол из с РС обратно в программу!!!
в обработчике Button3.OnClick пишем следующее...
| Код |
If Not DSVideoWindowEx21.DesktopPlayback then
Begin
DSVideoWindowEx21.StartDesktopPlayback(Screen.Monitors[0]) ;
End
else
DSVideoWindowEx21.NormalPlayback;
|
(программа проверяет режим отображения(на РС или в окне программы) и переключает его на противоположный!)
НУ ВОТ ПО БОЛЬШОМУ СЧЕТУ И ВСЕ!))) ....хотя нет напишем еще 2 функции которые могут быть все таки полезными...
1. РЕГУЛЯТОР продолжительности ави файла
2. уровень громкости
для первого бросаем на форму компонент DSTrackBar1(вкладка DSPack) в свойстве компонента:
| Код |
FilterGraph:=FilterGraph1
|
вот теперь можно начинать просмотр даже с середины фильма =)))
теперь перейдем к регулятору громкости
кладем на форму еще один такой же компонент....(DSTrackBar)
а в обработчике OnChange напишем
| Код |
FilterGraph1.Volume:=DSTrackBar3.Position;
|
да и не забываем в свойстве MAX указать значение 10000
ну а начальное установить где то на 7500!
теперь дальше….
необходимо сделать так чтобы по окончании видео оно начиналось заново....
реализуется просто...
берем компонент DSTrackBar1 и в свойстве OnChange пишем:
| Код |
if DSTrackBar1.Position=DSTrackBar1.Max then
Begin
FilterGraph1.Stop;
filterGraph1.Position:=1;
FilterGraph1.Play;
end;
|
вроде все пашет!!!! …идем и наливаем себе кофе….
немного отдохнули....поехали дальше?!))))..
сейчас мы к проекту добавим функции корректировки изображения. а именно:
1.яркость(Brightness)
2.контрастность(Contrast)
3.цвет(Hue)
4.насыщенность(Saturation)
эти четыре функции у нас уже управляются классом
ColorControl, который в свою очередь является наследником
DSVideoWindowEx21
т.е менять нам надо быдет параметры
| Код |
1.DSVideoWindowEx21.ColorControl.Brightness //TrackBar1
2.DSVideoWindowEx21.ColorControl.Contrast //TrackBar2
3.DSVideoWindowEx21.ColorControl.Hue //TrackBar3
4.DSVideoWindowEx21.ColorControl.Saturation //TrackBar4
|
для удобства изменения параметров возьмем компонент TTrackBar(для каждого свойства по одному!!! т.е. 4 штуки)
а сейчас нам необходимо настроить для каждого свойства параметры
для //TrackBar1
Frequency =1000 (этот параметр не догма...)
Min = 0
Max = 10000
Position = 750
для //TrackBar2
Frequency = 2000(этот параметр не догма...)
Min = 0
Max =20000
Position =10000
для //TrackBar3
Frequency = 36 (этот параметр не догма...)
Min = -180
Max = 180
Position =0
для //TrackBar4
Frequency = 2000(этот параметр не догма...)
Min = 0
Max =20000
Position =10000
вот теперь мы все настроили....=))) перейдем непосредственно к программированию... (p.s.: к сожалению этог7о сегодня мало ((( )
в обработчике события OnChange пишем
для //TrackBar1
| Код |
DSVideoWindowEx21.ColorControl.Brightness := TrackBar1.Position;
|
для //TrackBar2
| Код |
DSVideoWindowEx21.ColorControl.Contrast := TrackBar2.Position;
|
для //TrackBar3
| Код |
DSVideoWindowEx21.ColorControl.Hue:=TrackBar3.Position;
|
для //TrackBar4
| Код |
DSVideoWindowEx21.ColorControl.Saturation:=TrackBar4.Position;
|
ну вот в принципе и все.... теперь все должно работать!
© Made by edevil 2008