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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2009, 21:06   #1
blackstersl
Форумчанин
 
Аватар для blackstersl
 
Регистрация: 23.08.2008
Сообщений: 374
Вопрос как добавить в listbox файлы(пишу с помощью bassplayer)(Listbox+opendialog=play )

Привет. Вот тут начал разбираться в bassplayer и столкнулся с пробемой.(не ругайте за тупой вопрос) Есть listbox и opendialog, как мне сделать так чтоб в listbox попадали выбранные файлы и как их потом восспроизвести? Но нужно чтоб в kistbox попадало только название, а не путь+название. Спасибо.

Последний раз редактировалось blackstersl; 09.02.2009 в 21:09.
blackstersl вне форума Ответить с цитированием
Старый 09.02.2009, 21:45   #2
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

хмм... в самом начале моего дзэнства (читай - пути к просвещению) я тоже столкнулся с такой проблемой... и вот мне пришла только одна идея в голову - хранить массив строк с путями файлов, и листбокс только с именами.... но если есть другой способ - крайне рад буду услышать, как я заблуждался просто больше с таким не сталкивался пока что и как-то не пытался даже оптимизировать свой выбор
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума Ответить с цитированием
Старый 10.02.2009, 20:53   #3
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Вот попробуй:

Код:
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
if OpenDialog1.Execute then
  begin
    for i:=0 to opendialog1.Files.Count-1 do
      begin
        ListBox1.Items.Add(OpenDialog1.Files.Strings[i]);
      end;
  end;
end;
Свойство компонента OpenDialog ofAllowMultiSelect поставь в true.
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 10.02.2009, 21:09   #4
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

хмм... spamer, ТС же спрашивал, чтобы в листбоксе были не полные пути к файлам, а только названия.... так что как минимум в вашем коде надо делать ExtractFileName(OpenDialog1.Files.S trings[i]), но так не откроешь потом... И надо заводить массив, куда вписывать ExtractFilePath(OpenDialog1.Files.S trings[i])... и вот от этого уже плясать
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума Ответить с цитированием
Старый 11.02.2009, 08:15   #5
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Цитата:
Сообщение от goblinyara Посмотреть сообщение
хмм... spamer, ТС же спрашивал, чтобы в листбоксе были не полные пути к файлам, а только названия.... так что как минимум в вашем коде надо делать ExtractFileName(OpenDialog1.Files.S trings[i]), но так не откроешь потом... И надо заводить массив, куда вписывать ExtractFilePath(OpenDialog1.Files.S trings[i])... и вот от этого уже плясать
Ну на счет полных путей - там и самому можно доделать. (а тем более, вы ему уже показали как).

А на счет 'потом не откроешь' - я с вами не согласен. Там все открывается - проверял сам.
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 11.02.2009, 12:50   #6
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

хмм... а вот интересно - если в листбоксе будет только имя файла без пути, откуда bassplayer поймёт, откуда ему всё таки этот файл брать? то есть из какого каталога?
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума Ответить с цитированием
Старый 11.02.2009, 13:08   #7
N!ckeL
Форумчанин
 
Регистрация: 29.03.2008
Сообщений: 300
По умолчанию

Цитата:
откуда ему всё таки этот файл брать? то есть из какого каталога?
можно создать массив структур с двумя строковыми переменными первая будет содержать имя файла, а вторая путь.
Карп преодолевший водопад становится драконом.
N!ckeL вне форума Ответить с цитированием
Старый 11.02.2009, 13:21   #8
goblinyara
Форумчанин
 
Аватар для goblinyara
 
Регистрация: 02.01.2009
Сообщений: 340
По умолчанию

Цитата:
Сообщение от N!ckeL Посмотреть сообщение
можно создать массив структур с двумя строковыми переменными первая будет содержать имя файла, а вторая путь.
ну я в своём первом сообщении именно это и написал... я просто хотел spamer'у объяснить, что его решение проблемы не полное...
DelphiWorld 6. Скачай, поставь, и будет тебе счастье=)
Программирование, как и любовь -- одно слово, за которым скрывается бесконечное множество занятий.
goblinyara вне форума Ответить с цитированием
Старый 11.02.2009, 13:28   #9
DRX_
 
Регистрация: 11.02.2009
Сообщений: 3
По умолчанию

Я когда-то страдал такой фигней (первый плеер как ни как).
Я решил свою проблему так:
Загрузил с opendialog все имена файлов (исп. ExtractFileName).
По двойному клику по ListBox вычислил ItemIndex.
Взял полное имя файла с opendialog по ItemIndex.
Правда это работает только в последнем каталоге, который открывал opendialog
DRX_ вне форума Ответить с цитированием
Старый 11.02.2009, 13:41   #10
lexaltd
Форумчанин
 
Регистрация: 21.07.2008
Сообщений: 192
По умолчанию

Цитата:
Сообщение от N!ckeL Посмотреть сообщение
можно создать массив структур с двумя строковыми переменными первая будет содержать имя файла, а вторая путь.
N!ckeL - Прав надо создать два массива имя файла, и путь

path - массив путей
И потом обращаться через path[ListBox1.ItemIndex] - если не надо сортировка в ListBox

Если надо то можно так :
name - массив имён

Код:
for i = 0 to Length(path) -1 do
if ListBox1.Items.Strings[ListBox1.ItemIndex] = name[i] then
begin
// тут твой код что ты хочеш сделать с path[i]
end;

Последний раз редактировалось lexaltd; 12.02.2009 в 09:49.
lexaltd вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как прокрутить ListBox с помощью TrackBar Dr.Badnezz Общие вопросы Delphi 4 06.01.2009 14:54
ListBox и OpenDialog срочно One.Love Общие вопросы Delphi 6 11.09.2008 17:07
Как мне в ListBox Добавить/Изменить рисунок (иконку)? Рустам Компоненты Delphi 12 10.06.2008 18:54
Как создать ListBox? AidarBik Win Api 3 08.02.2008 22:06