Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2016, 22:19   #1
Ednikbod
Пользователь
 
Регистрация: 13.10.2015
Сообщений: 21
По умолчанию Проигрыватель медиа с плей-листом.

Здравствуйте!
Я новичок в программировании, полный профан в этом деле. Но хотелось бы познать азы этого дела.
Подскажите: что в этом коде не так? Программа должна открывать и проигрывать файлы в плей-листе. Но не компилируется.

#
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, OleCtrls, WMPLib_TLB;

type
  TForm1 = class(TForm)
    MediaPlayer1: TWindowsMediaPlayer;
    ListBox1: TListBox;
    OpenDialog1: TOpenDialog;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  SL: TStringList;
  
  implementation

  {$R *.dfm}


procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
begin
OpenDialog1.Options:=[ofHideReadOnly,ofAllowMultiSelect,ofEnableSizing];
 IF OpenDialog1.Execute Then
  Begin
   For I:=0 to OpenDialog1.Files.Count -1 do
    Begin
     SL.Add(OpenDialog1.Files[I]);
     ListBox1.Items.Add(ExtractFileName(OpenDialog1.Files[I]));
    End;
  End;
end;

procedure TForm1.ListBox1DblClick(Sender: TObject);
begin
 MediaPlayer1.FileName:=SL.Strings[ListBox1.ItemIndex];
 MediaPlayer1.Open;
 MediaPlayer1.Play;
end;

end.
#

Последний раз редактировалось Аватар; 21.06.2016 в 11:03.
Ednikbod вне форума Ответить с цитированием
Старый 18.06.2016, 08:18   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,876
По умолчанию

А Вы его правильно используете ? Нужно создать новый в дельфи проект с формой, кинуть листбокс, кнопку, медиа_плеер, опендиалог. На кнопке даблкликнуть (чтобы сформировался метод для события), а у листбокса в инспекторе объектов найти свойство OnDblClick и тоже по нему даблкликнуть, после чего код в модуле проекта надо заменить на этот код (за исключением секции uses. если у Вас дельфи версии ХЕ2 и выше) либо вставить в пустые методы- обработчики событий в коде проекта код из соответствующих обработчиков в этом коде плюс вставить переменную SL.
Ежели всё плохо, то указывайте сообщение об ошибке, строку в коде, на которую указывает ошибка, или вообще прикрепляйте проект. Также неплохо указывать версию дельфи в которой работаете.
phomm вне форума Ответить с цитированием
Старый 18.06.2016, 12:36   #3
Ednikbod
Пользователь
 
Регистрация: 13.10.2015
Сообщений: 21
По умолчанию

Отвечаю вам, phomm (спасибо, кстати, за поддержку):
У меня всё так и сделано: создан проект, брошены на форму все указанные компоненты, вставлен в обработчики весь указанный код, включены обработчики событий для кнопки и для плей-листа. Весь код (который я вам здесь показываю) - это мой уже созданный, существующий проект.
Версия Делфи у меня 7. Ошибки, которые возникают при компиляции:
[Îøèáêà] Unit1.pas(48): Undeclared identifier: 'FileName'
[Îøèáêà] Unit1.pas(49): Undeclared identifier: 'Open'
[Îøèáêà] Unit1.pas(50): Undeclared identifier: 'Play'
[Ôàòàëüíàÿ îøèáêà] Project1.dpr(5): Could not compile used unit 'Unit1.pas'


На всякий случай помещаю здесь ещё раз код программы, которую я повторно создал:

#
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, OleCtrls, WMPLib_TLB, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    ListBox1: TListBox;
    MediaPlayer1: TWindowsMediaPlayer;
    OpenDialog1: TOpenDialog;
    procedure Button1Click(Sender: TObject);
    procedure ListBox1DblClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  SL: TStringList;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
Var
 I: Integer;
begin
OpenDialog1.Options:=[ofHideReadOnly,ofAllowMultiSelect,ofEnableSizing];
 IF OpenDialog1.Execute Then
  Begin
   For I:=0 to OpenDialog1.Files.Count -1 do
    Begin
     SL.Add(OpenDialog1.Files[I]);
     ListBox1.Items.Add(ExtractFileName(OpenDialog1.Files[I]));
    End;
  End;
end;

procedure TForm1.ListBox1DblClick(Sender: TObject);
begin
MediaPlayer1.FileName:=SL.Strings[ListBox1.ItemIndex];
 MediaPlayer1.Open;
 MediaPlayer1.Play;
end;

end.
#

Последний раз редактировалось Аватар; 21.06.2016 в 11:04.
Ednikbod вне форума Ответить с цитированием
Старый 21.06.2016, 10:08   #4
Ednikbod
Пользователь
 
Регистрация: 13.10.2015
Сообщений: 21
По умолчанию

Я попробовал откомпилировать эту программу не в "Делфи 7", а в новой версии "Делфи" "Embarcadero Delphi 10.1 Berlin" - и всё сработало нормально. Программа работает.

Так что: эту тему можно закрыть, наверное!
Ednikbod вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Красивая видео галерея из плей листа ютуба Berdini PHP 0 26.01.2016 16:02
Создание плей листа в wpllib Teror4uks Мультимедиа в Delphi 0 26.01.2014 15:54
Организовать плей лист Volkogriz Общие вопросы Delphi 19 23.10.2012 23:35
Плей лист для медиаплеера S.T.A.L.K.E.R. Мультимедиа в Delphi 7 16.12.2010 20:15