| Код |
Var TempPath : array[0..MAX_PATH] of char; FileName:String; s:TsearchRec;
//Открываем нужную папку procedure TForm1.Button1Click(Sender: TObject); var TitleName : string; lpItemID : PItemIDList; BrowseInfo : TBrowseInfo; DisplayName : array[0..MAX_PATH] of char; begin FillChar(BrowseInfo, sizeof(TBrowseInfo), #0); BrowseInfo.hwndOwner := Form1.Handle; BrowseInfo.pszDisplayName := @DisplayName; TitleName := 'Please specify a directory'; BrowseInfo.lpszTitle := PChar(TitleName); BrowseInfo.ulFlags := BIF_RETURNONLYFSDIRS; lpItemID := SHBrowseForFolder(BrowseInfo); if lpItemId <> nil then begin SHGetPathFromIDList(lpItemID, TempPath); GlobalFreePtr(lpItemID); end; if TempPath<>'' then begin ListBox1.Items.Clear; FindFirst(TempPath+'\*.mp3',faAnyFile,s); if s.Name<>'' then ListBox1.Items.Add(' '+s.Name); while FindNext(s)=0 do ListBox1.Items.Add(' '+s.Name); FindFirst(TempPath+'\*.wav',faAnyFile,s); if s.Name<>'' then ListBox1.Items.Add(' '+s.Name); while FindNext(s)=0 do ListBox1.Items.Add(' '+s.Name); end; end;
//Теперь по клику: procedure TForm1.ListBox1DblClick(Sender: TObject); begin MediaPlayer1.Close; MediaPlayer1.FileName:=String(TempPath)+'\'+ListBox1.Items.ValueFromIndex[ListBox1.ItemIndex]; MediaPlayer1.Open; MediaPlayer1.Play; Play:=true; SpeedButton1.Enabled:=false; SpeedButton2.Enabled:=true; SpeedButton3.Enabled:=true; end;
|
Взято из рабочего кода, так что всё лишнее можешь убрать. P.S. При заполнении ListBox я добавляю пробелы, так как при снятии данных, у меня обрезаеться первый символ, если у тебя такой проблемы нет, то просто убери пробелы.
P.P.S.
| Код | uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, ExtCtrls, MPlayer,ShellAPI, ShlObj, Buttons;
|
Если чего то не хватает, добавь. |