Программирование - это просто
Advertisement
Главная arrow Уроки Delphi arrow Delphi - это просто! arrow Delphi. Урок 7.2. Компоненты закладки System (TTimer, TMediaPlayer)
19.04.2024 г.
Главное меню
Главная
Интернет магазин
Программные продукты
Биржевые роботы
Искусственный интеллект
Математика и информатика
1С:Предприятие
Уроки C#
Уроки Delphi
Уроки программирования
Web-программирование
Дизайн и графика
Компьютер для блондинок
Исходники
Статьи
Платный раздел
Рассказы про компьютеры
Хитрости и секреты
Системный подход
Размышления
Наука для чайников
Друзья сайта
Excel-это не сложно
Все о финансах
.
Delphi. Урок 7.2. Компоненты закладки System (TTimer, TMediaPlayer) Печать E-mail
Автор megabax   
09.07.2009 г.
На этом уроке мы познакомимся с некоторыми компонентами закладки System

Компоненты закладки System (TTimer, TMediaPlayer)

На этом уроке мы познакомимся с некоторыми компонентами закладки System. Начнем с таймера (TTimer)*.

 

Компоненты закладки System (TTimer, TMediaPlayer)

 

Давайте положим его на форму и назовем tmClockEvents, а самой форме присвоим имя frmClock.

Так же положим на форму метку lbClock (компонент TLabel) и сделаем у нее шрифт по крупнее (свойство Font).

Теперь напишем обработчик события OnTime таймера (TTimer).

 

procedure TfrmClock.tmClockEventsTimer(Sender: TObject);

begin

   lbClock.Caption:=TimeToStr(Time);

end;

 

Еще, один немаловажный момент. Давайте сразу привыкать давать формам нормальные заголовки. Присвоим свойству Caption формы значение «Часы».  

Все, теперь можно запустить программу:

 

 

Компонент TTimer

 

 

Теперь перейдем к компоненту TMediaPlayer*.

 

Где найти компонент TMediaPlayer: на закладке system

 

Для демонстрации его возможностей напишем более программу проигрывания музыкальных файлов. И так, положим на форму сам компонент TMediaPlayer и назовем его mpPlay. Так же добавим к форме TListBox с именем lbPlayList, кнопочки btnAdd и btnDelete с заголовками «Добавить» и «Удалить» соответственно, диалог открытия файлов odPlay и метку lbFileName. Саму форму назовем frmPlay и установим у нее свойство Caption равным «Проигрыватель музыки».

Настроим фильтр диалога открытия файлов, что бы он открывал только файлы mp3.*

 

Компоненты закладки System (TTimer, TMediaPlayer)

 

У компонента TMediaPlayer есть свойство VisibleButtons. Раскроем (нажав на плюсик) и установим в false значения следующих свойств:

·        btStep.

·        btBack.

·        btRecord.

·        btEject.*

 

 

Компоненты закладки System (TTimer, TMediaPlayer)

 

Вот так должна  выглядеть форма, когда мы разместим все нужные нам компоненты*

Компоненты закладки System (TTimer, TMediaPlayer)

 

Теперь займемся программированием. По кнопке «Добавить» у нас должен быть вызван диалог выбора файла, который мы хотим добавить в плэйлист. Для этого напишем обработчик для кнопки обработчик события OnClick:

 

procedure TfrmPlay.btnAddClick(Sender: TObject);

begin

  if odPlay.Execute then lbPlayList.items.Add(odPlay.FileName);

end;

 

 

Теперь обработчик OnClick кнопки «Удалить»:

 

procedure TfrmPlay.btnDeleteClick(Sender: TObject);

begin

  if lbPlayList.ItemIndex>-1 then lbPlayList.Items.Delete(lbPlayList.ItemIndex);

end;

 

И немного комментариев к программе: items.Add – думаю, вы помните с того момента, когда мы изучали компонент ListBox (список) – это добавление элемента в список. Items.Delete – это удаление. В качестве параметра передаем ему номер удаляемого элемента (счет начинается с нуля). ItemIndex – это номер выделенного в списке элемента. Если ни один элемент не выделен – то значение этого свойства равно минус 1.

Теперь напишем обработчик события OnClick для списка:

 

procedure TfrmPlay.lbPlayListClick(Sender: TObject);

begin

  mpPlay.FileName:=lbPlayList.Items[lbPlayList.ItemIndex];

  mpPlay.Open;

  mpPlay.Play;

  lbFileName.Caption:=mpPlay.FileName;

end;

 

В данном обработчике мы изменяем имя файла, которое проигрывает наш MediaPlayer. Затем отрываем его:

 

mpPlay.Open;

 

и запускаем процесс проигрывания:

 

mpPlay.Play;

 

еще внизу списка изменяем название проигрываемого файла:

 

lbFileName.Caption:=mpPlay.FileName;

 

 

Далее, начинается самое интересное, обработчик OnClick самого MediaPlayer. В нем мы изучим новый оператор case.

 

procedure TfrmPlay.mpPlayClick(Sender: TObject; Button: TMPBtnType;

  var DoDefault: Boolean);

begin

  case Button of

    btNext:

    begin

       mpPlay.Stop;

       if lbPlayList.ItemIndex<>lbPlayList.Items.Count-1 then

          lbPlayList.ItemIndex:=lbPlayList.ItemIndex+1

       else

          lbPlayList.ItemIndex:=0;

       mpPlay.FileName:=lbPlayList.Items[lbPlayList.ItemIndex];

       mpPlay.Open;

       mpPlay.Play;

       DoDefault:=false;

    end;

    btPrev:

    begin

       mpPlay.Stop;

       if lbPlayList.ItemIndex<>0 then

          lbPlayList.ItemIndex:=lbPlayList.ItemIndex-1

       else

          lbPlayList.ItemIndex:=lbPlayList.Items.Count-1;

       mpPlay.FileName:=lbPlayList.Items[lbPlayList.ItemIndex];

       mpPlay.Open;

       mpPlay.Play;

       DoDefault:=false;

    end;

    btStop:

    begin

      mpPlay.Position:=0;

      DoDefault:=false;

    end

end;

  lbFileName.Caption:=mpPlay.FileName;

end;

 

 

И так, несколько комментариев к программе. В обработчик события в качестве параметра передается Button, в котором храниться код нажатой кнопки. Мы обрабатываем три случая:

·        Нажата кнопка Компоненты закладки System (TTimer, TMediaPlayer). Кнопка "вперед"* (следующая песня). Ее код btNext

·        Нажата кнопка Компоненты закладки System (TTimer, TMediaPlayer). Кнопка "назад"* (предыдущая песня). Ее код btPrev.

·        Нажата кнопка Компоненты закладки System (TTimer, TMediaPlayer). Кнопка "стоп"* (остановить). Ее код btStop.

 

Еще обратим внимание на параметр DoDefault. Заметили что перед ним оператор var, а перед другими параметрам его нет? Если этого параметра нет, то параметр будет являться локальной переменной. А если перед параметром стоит var, то это означает, что изменяя значение переменной внутри процедуры, мы изменяем и значение внешней переменной, переданной в процедуру в качестве параметра.

В обработчике данного события параметр DoDefault объявлен как var потому что он возвращает признак, нужно ли использовать стандартный обработчик события. В данном случае, когда мы используем свой обработчик, стандартный обработчик  использовать не нужно. Поэтому мы выполняем оператор DoDefault:=false;.

 Теперь насчет оператора case, с которого мы и начали изучать обработчик. В конструкции

 

  case Button of

 

мы анализируем значение параметра Button. В зависимости от его значения выполняется соответствующая ветка программы.

 

В общем случае синтаксис оператора такой:

 

Case [Параметр] of

      [Значение1]: [ветка значения 1];

      [Значение2]: [ветка значения 2];

      [ЗначениеN]: [ветка значения N];

     else [ветка иначе];

end;

 

В качестве ветки оператора case может быть как один оператор, так и блок операторов, заключенный в begin end.

 

 

Если пользователь нажал на кнопку «Следующий», то программа переведет указатель на следующий элемент списка значений, после этого и переоткроет музыкальный файл. Если же у нас последний элемент списка, то программа спозиционирует на первый элемент списка.

 

       if lbPlayList.ItemIndex<>lbPlayList.Items.Count-1 then

          lbPlayList.ItemIndex:=lbPlayList.ItemIndex+1

       else

          lbPlayList.ItemIndex:=0;

 

Аналогично работает и ветка кнопки «Предыдущий», только там идет уменьшение на единицу:

 

       if lbPlayList.ItemIndex<>0 then

          lbPlayList.ItemIndex:=lbPlayList.ItemIndex-1

       else

          lbPlayList.ItemIndex:=lbPlayList.Items.Count-1;

 

 Еще у нас есть ветка кнопки «Стоп». В ней мы просто сбрасываем позицию проигрывателя командой 

 

      mpPlay.Position:=0;

 

Вот примерно у нас должна выглядеть запущенная программа

 

Компоненты закладки System (TTimer, TMediaPlayer). Внешний вид программы примера использования

 

 


Скриншоты, помеченные знаком * , являются цитатами и иллюстрациями   программного продукта "Delphi", авторское право на который принадлежит "Borland Software Corporation".


 

Последнее обновление ( 06.11.2011 г. )
 
« След.   Пред. »
 
© 2024 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги