我試圖創建一個MP3播放器,以後我可以用作基地來創建卡拉OK,目前唯一的問題是我想顯示用戶選擇的目錄的* .mp3文件上,而無需手動1 1,它僅示出歌曲名稱不是當前路徑,則添加的列表框。我發現像使用大功能或代替列表框使用組合框一些方法,但它不是一個簡單的方法或將文件從組合框列表框轉移?在列表框中顯示文件Delphi
-1
A
回答
0
如果您只想列出特定文件夾中沒有圖標的所有文件,則可能需要使用Win 3.1標籤中的FileListBox
組件。
通過設置Directory
屬性,可以輕鬆地定義從中顯示目錄的內容。注意:這個屬性不會暴露目標管理器在設計時使用,但它是在運行時非常接近。
上述組件還允許定義過濾器甚至文件屬性,以僅顯示您所需的文件。
上述組件的唯一限制是它不允許您顯示子文件夾中的文件,這是很多最終用戶可能會喜歡的。
爲此,您必須自行搜索文件,並將它們逐個添加到所需組件。
如果你想只顯示文件名,而不是整個文件的路徑,你可以使用ExtractFileName
程序,但請記住,你仍然會有讓你知道要打開的文件以某種方式保存的完整路徑某處當您想要的組分選擇特定文件。
還有一些模仿類似Windows Explorer
像TShellTreeView或TShellListView與舊版本的Delphi附帶的文件瀏覽行爲提供一些組件。在谷歌
而且快速搜索顯示,甚至有更多的可用類似的組件。
0
試試這個代碼將添加文件名ListBox
,並保存其路徑TStringList
與同Index
所以你可以使用同時獲得無處不在你的代碼
var
Form1: TForm1;
FilePath: TStringList;
implementation
{$R *.dfm}
procedure FindFiles(FilesList: TStrings; FilesPath: TStrings;
StartDir, FileMask: string);
var
SR: TSearchRec;
DirList: TStringList;
IsFound: Boolean;
i: integer;
begin
if StartDir[length(StartDir)] <> '\' then
StartDir := StartDir + '\';
IsFound := FindFirst(StartDir + FileMask, faAnyFile - faDirectory, SR) = 0;
while IsFound do
begin
FilesPath.Add(StartDir + SR.Name);
FilesList.Add(SR.Name);
IsFound := FindNext(SR) = 0;
end;
FindClose(SR);
DirList := TStringList.Create;
IsFound := FindFirst(StartDir + '*.*', faAnyFile, SR) = 0;
while IsFound do
begin
if ((SR.Attr and faDirectory) <> 0) and (SR.Name[1] <> '.') then
DirList.Add(StartDir + SR.Name);
IsFound := FindNext(SR) = 0;
end;
FindClose(SR);
for i := 0 to DirList.Count - 1 do
FindFiles(FilesList, FilePath, DirList[i], FileMask);
DirList.Free;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
FilePath.Free;
end;
procedure TForm1.sButton1Click(Sender: TObject);
begin
FilePath := TStringList.Create;
FindFiles(sListBox1.Items, FilePath, EditStartDir.Text, '*.mp3');
{FilePath is where full file path saved, EditStartDir is where to search}
end;
procedure TForm1.sListBox1Click(Sender: TObject);
begin
If sListBox1.ItemIndex > -1 then
sEdit2.Text := FilePath.Strings[sListBox1.ItemIndex];
end;
end.
相關問題
- 1. 在列表框中顯示文本列?
- 2. 在C中顯示列表框中的文件#
- 3. 在列表框中顯示動態列
- 4. 將列表框中列出的文本文件內容顯示爲文本框?
- 5. 掃描計算機並在列表框中顯示文件?
- 6. C#WFA在列表中打開文件對話框顯示
- 7. 僅在列表框中顯示圖像文件擴展
- 8. 如何讀取文件並在VB.NET的列表框中顯示?
- 9. 在文本框中顯示列表框中的數據結果
- 10. 顯示列表框
- 11. 從列表框中顯示電子郵件正文在文本框Imap/pop3
- 12. 在Delphi EXE文件中顯示Scratch項目(.SB)文件
- 13. 在文本框或列表框中顯示值c#
- 14. 如何顯示excel文件在列表框在VB6
- 15. 在列表框中顯示一組值
- 16. 在WPF中切換列表框顯示
- 17. 列表框在C#中不顯示
- 18. 在列表框中顯示SQL結果
- 19. 不會顯示在列表框中VB
- 20. 在列表框中顯示進度
- 21. 從文本文件中讀取信息並顯示在列表框中
- 22. 顯示列表框中的圖像保持文件鎖定
- 23. 將XML文件顯示到列表框中
- 24. 顯示目錄中帶有複選框的文件列表
- 25. 在下面的文本字段控件上顯示列表框
- 26. 列表框中的顯示陣列
- 27. 如何防止Delphi MainForm顯示何時顯示文件對話框?
- 28. 顯示android中的文件列表?
- 29. Actionscript AIR +顯示列表中的文件
- 30. 顯示ListView中的文件列表
推薦閱讀:[**歡迎SO ** (http://stackoverflow.com/tour)以及[**幫助中心**](http://stackoverflow.com/help)特別是關於問問題。 –
你的問題不明確,範圍太廣,不過話說回來,你可以用'SelectDirectory()'讓用戶選擇一個目錄,'的FindFirst,FindNext中和FindClose'搜索目錄中的所有'.mp3'文件是上市。這些功能均包含在Delphi幫助。如果您遇到問題的詳細信息,歡迎您問的具體問題,顯示你的嘗試(代碼)SOFAR和明確說明你的問題。 –