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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.06.2012, 01:05   #1
mutb
Пользователь
 
Регистрация: 18.06.2012
Сообщений: 10
По умолчанию OpenDialog.execut как выполнить программно

Немного начал программировать упёрся в тупик, помогите. Есть процедура из mp3 проигрывателя которая отвечает за выбор файлов и добавления их в плейлист через OpenDialog (функция ofAllowMultiSelect=True):
Цитата:
procedure TForm_player.Button1Click(Sender: TObject);
var j: integer;
begin
OpenDialog1.Title := 'Open Files';
OpenDialog1.Filter := 'mp3|*.mp3'; //фильтр для файлов
//проверяем если PlayList не пустой то запоминаем номер текущей песни
//иначе устанавливаем номер песни 0 (первая позиция в PlayList)
if listbox1.Count<>0 then i:=ListBox1.ItemIndex else i:=0;
//Диалог открытия файла
if not OpenDialog1.Execute then exit;
begin
for j:=0 to OpenDialog1.Files.Count-1 do
begin
//заполняем PlayList
ListBox1.Items.Add(OpenDialog1.File s.Strings[j]);
end;
end;
//запоминаем имя файла текущей песни в плейлисте
Filename:=ListBox1.Items.Strings[i];
//Выделяем эту песню в PlayList
ListBox1.ItemIndex:=i;
end;
Я хочу по ходу выполнения кода программы эмитировалось выбор 1 и более файлов, несколько раз для добавления в плейлист. А потом я запущу его проигрывания.
Но не как не могу эмитировать выбор файлов.
Если присваиваю через OpenDialog1.FileName, то тогда значение OpenDialog1.Files.Strings[j] равно 0 и программа не срабатывает. Если присваиваю через OpenDialog1.File[j] не срабатывает.
Не совсем понимаю, какие переменные используются при выборе файла через execute. Подскажите пожалуйста

Последний раз редактировалось mutb; 18.06.2012 в 01:08.
mutb вне форума Ответить с цитированием
Старый 18.06.2012, 01:16   #2
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Я ничего не понял. Вот так если написать то работает?

Код:
OpenDialog1.Title := 'Open Files';
OpenDialog1.Filter := 'mp3|*.mp3'; //фильтр для файлов

if OpenDialog1.Execute then
for i := 0 to OpenDialog1.Files.Count - 1 do
ListBox1.Items.Add(ExtractFileName(OpenDialog1.Files.Strings[i]));
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 18.06.2012, 01:20   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,306
По умолчанию

Зачем таким образом эмулировать?
Сразу записывайте, что хотите, в listbox1.

Valio, я так понял, что приведенная ТС функция работает, когда вызвана пользователем.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 18.06.2012, 01:22   #4
mutb
Пользователь
 
Регистрация: 18.06.2012
Сообщений: 10
По умолчанию

Это рабочий кусок кода. Но я хочу сделать примерно так (не срабатывает):

Цитата:
OpenDialog1.Files[1]:='\mp3\diskoteka.mp3';
OpenDialog1.Files[2]:='\mp3\diskoteka2.mp3';
for j:=0 to OpenDialog1.Files.Count-1 do
begin
ListBox1.Items.Add(OpenDialog1.File s.Strings[j]);
end;
end;
Filename:=ListBox1.Items.Strings[i];
ListBox1.ItemIndex:=i;

Выбрать файлы через opendialog но вручную. Но не знаю какие переменные использовать, чтобы обойтись без графического режима
mutb вне форума Ответить с цитированием
Старый 18.06.2012, 01:28   #5
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Дык почемуб не писать так:

Код:
ListBox1.Items.Add('\mp3\diskoteka.mp3');
ListBox1.Items.Add('\mp3\diskoteka2.mp3');
Если не нужно участие пользователя, то не надо трогать опендиалог.
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 18.06.2012, 01:29   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,306
По умолчанию

Цитата:
Выбрать файлы через opendialog но вручную.
Эту фразу не понял
Делайте сразу так:
Код:
if listbox1.Count<>0 then i:=ListBox1.ItemIndex else i:=0;
ListBox1.Items.Add(ExtractFilePath(ParamStr(0))+'mp3\diskoteka.mp3');
Filename:=ListBox1.Items.Strings[i];
ListBox1.ItemIndex:=i;
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 18.06.2012, 02:09   #7
mutb
Пользователь
 
Регистрация: 18.06.2012
Сообщений: 10
По умолчанию

Большое спасибко, оказывается всё намного проще))
mutb вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Эмитация клавиш Biohazard Общие вопросы Delphi 4 01.06.2010 09:09
Эмитация звука микрафона mish@ Помощь студентам 7 02.03.2010 20:13
Вылет на экран выбора пользователя Alex Cones Операционные системы общие вопросы 2 05.02.2010 13:29
Настроить OpenDialog для выбора папки. Alex Cones Общие вопросы Delphi 7 02.12.2009 10:24
Запустить приложение на экране выбора пользователя Alex Cones Операционные системы общие вопросы 3 27.08.2009 10:15