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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2009, 15:51   #1
blackstersl
Форумчанин
 
Аватар для blackstersl
 
Регистрация: 23.08.2008
Сообщений: 374
Вопрос проблемка с opendialog.

привет всем. У меня проблема с opendialog: я нажимаю на кнопку, появляется диалог => выбираю несколько файлов, а в listbox1 попадает только первый файл и + весь путь к нему(загружаю музыкальные форматы), а как сделать так чтоб можно было загружать много файлов сразу, и в listbox-e было только название файла. Спасибо.

Код:
procedure TForm1.N2Click(Sender: TObject);
var
   s1, s2, s3, s4 : string;
   SearchRec: TSearchRec;
    LpBuf: PChar;
begin
 if not BassPlayer1.PlayerReady then
   begin
      Application.MessageBox('Cannot open file (BassPlayer is not ready)',
                 'Confirm', MB_OK);
      exit;
   end;


 sopendialog1.Filename := '';
 s1 := BassPlayer1.NativeFileExts;
   s2 := BassPlayer1.PluginFileExts;
   sOpenDialog1.Filter:=
    'All supported formats|*.mp3;*.mp2;*.mp1;*.wav;*.ogg;*.mo3;*.it;*.xm;*.s3m;' +
    '*.mtm;*.mod;*.umx;*.wma;*.wm;*.ofr;*.ofs;*.flac;*.wv;*.aac;*.mp4;*.ac3;*.alac;*.ape;*.mpc;*.spx;*.tta';

    sopendialog1.Filter:= sopendialog1.Filter + '|' +
    'MPEG Audio Files (*.mp3;*.mp2;*.mp1)|*.mp3;*.mp2;*.mp1|'+
    'Ogg Vorbis Audio (*.ogg)|*.ogg|'+
    'Microsoft Wave Audio (*.wav)|*.wav|'+
    'MOD Music (*.mo3;*.it;*.xm;*.s3m;*.mtm;*.mod;*.umx)|*.mo3;*.it;*.xm;*.s3m;*.mtm;*.mod;*.umx'+
    '|Windows Media Audio (*.wma;*.wm)|*.wma;*.wm'+
    '|OptimFROG Audio Files (*.ofr;*.ofs)|*.ofr;*.ofs'+
    '|Free Lossless Audio Files (*.flac)|*.flac'+
    '|WavPack Audio Files (*.wv)|*.wv'+
    '|FAAD Audio Files (.aac;*.mp4)|*.aac;*.mp4'+
    '|AC3 Audio Files (*.ac3)|*.ac3'+
    '|Apple Lossless Audio Files (*.alac)|*.alac'+
    '|Monkeys Audio Audio Files (*.ape)|*.ape'+
    '|Musepack Audio Files (*.mpc)|*.mpc'+
    '|Speex Audio Files (*.spx)|*.spx'+
    '|True Audio Files (*.tta)|*.tta';

  if(sopendialog1.Execute) then
listbox1.Items.Add(sopendialog1.FileName);


      begin
         SPS := BassPlayer1.StreamInfo.SampleRate;
          { Clear captions }
  ClearAll;
           end;
blackstersl вне форума Ответить с цитированием
Старый 30.04.2009, 15:55   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
begin
OpenDialog1.Options:=OpenDialog1.Options+[ofAllowMultiSelect];
if OpenDialog1.Execute then begin
 ListBox1.Items:=OpenDialog1.Files;
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.04.2009, 16:01   #3
blackstersl
Форумчанин
 
Аватар для blackstersl
 
Регистрация: 23.08.2008
Сообщений: 374
По умолчанию

спаибо, но в listbox-e показывается путь к файлу. как єто убрать?
blackstersl вне форума Ответить с цитированием
Старый 30.04.2009, 16:14   #4
lexaltd
Форумчанин
 
Регистрация: 21.07.2008
Сообщений: 192
По умолчанию

Код:
ExtractFileName (OpenDialog1.Files)
будет типа такого 'файл.mp3'

Но тебе надо наверно и пути файлов - можно создать TStringList
И в него писать пути ,и индекс ListBox1.Items будет соответствовать индексу TStringList

Последний раз редактировалось lexaltd; 30.04.2009 в 16:19.
lexaltd вне форума Ответить с цитированием
Старый 30.04.2009, 16:15   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
lexaltd
Сам то пробовал что написал?

Автор:
Тогда в цикле по OpenDialog1.Files
Выдирая через ExtractFileName имена файла и добавляя их
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.04.2009, 16:22   #6
blackstersl
Форумчанин
 
Аватар для blackstersl
 
Регистрация: 23.08.2008
Сообщений: 374
По умолчанию

я конечно извеняюсь, но я немного не понял как этот цикл написать

Последний раз редактировалось KORN; 30.04.2009 в 16:29.
blackstersl вне форума Ответить с цитированием
Старый 30.04.2009, 16:28   #7
KORN
Банхаммер
Участник клуба
 
Аватар для KORN
 
Регистрация: 17.02.2007
Сообщений: 1,754
По умолчанию

Код:
for i:=0 to OpenDialog1.Files.count-1 do
listbox1.items.add(extractfilename(OpenDialog1.Files.strings[i]));
Перед тем как спросить ищи на форуме и в GOOGLE

Последний раз редактировалось KORN; 30.04.2009 в 16:30.
KORN вне форума Ответить с цитированием
Старый 30.04.2009, 16:32   #8
lexaltd
Форумчанин
 
Регистрация: 21.07.2008
Сообщений: 192
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Сам то пробовал что написал?

Автор:
Тогда в цикле по OpenDialog1.Files
Выдирая через ExtractFileName имена файла и добавляя их
А что циклы отменили ?
Пути то надо всё ровно - предложи другое решение
Можно сделать второй невидимый ListBox2 и в него писать пути

На основании кода KORN

Код:
var
  Strig : TStringList;

procedure TForm1.BitBtn1Click(Sender: TObject);
var
  i : Integer;
begin
 ListBox1.Clear;
 Strig := TStringList.Create;
 OpenDialog1.Options:=OpenDialog1.Options+[ofAllowMultiSelect];
if OpenDialog1.Execute then
begin
  for i:=0 to OpenDialog1.Files.count-1 do
   begin
     ListBox1.Items.Add(extractfilename(OpenDialog1.Files.strings[i]));
     Strig.Add(OpenDialog1.Files.strings[i]);
   end;
end;
end;
У ListBox1.Items[1] будет путь Strig.Strings[1]

Последний раз редактировалось lexaltd; 30.04.2009 в 16:56.
lexaltd вне форума Ответить с цитированием
Старый 30.04.2009, 16:42   #9
blackstersl
Форумчанин
 
Аватар для blackstersl
 
Регистрация: 23.08.2008
Сообщений: 374
По умолчанию

KORN а теперь в listbox1. добавляется сразу две копии файла:
1. С полным путём к файлу
2. Просто название.
blackstersl вне форума Ответить с цитированием
Старый 30.04.2009, 16:48   #10
KORN
Банхаммер
Участник клуба
 
Аватар для KORN
 
Регистрация: 17.02.2007
Сообщений: 1,754
По умолчанию

Цитата:
Сообщение от blackstersl Посмотреть сообщение
KORN а теперь в listbox1. добавляется сразу две копии файла:
1. С полным путём к файлу
2. Просто название.
это типа ты говоришь что бы я написал код или че7
Перед тем как спросить ищи на форуме и в GOOGLE
KORN вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
OpenDialog Cabyrc БД в Delphi 4 05.04.2009 11:56
opendialog blackstersl Общие вопросы Delphi 4 18.09.2008 15:21
opendialog blackstersl Общие вопросы Delphi 1 11.09.2008 18:23
OpenDialog Rahim1993 Общие вопросы Delphi 20 21.01.2008 08:26
OpenDialog.Options:=OpenDialog.Options+[ofAllowMultiSelect]; necky Компоненты Delphi 2 11.08.2007 12:53