filelistbox使用问题,求解!(50分)

  • 主题发起人 主题发起人 cranky
  • 开始时间 开始时间
C

cranky

Unregistered / Unconfirmed
GUEST, unregistred user!
我在使用filelistbox时出现了一个问题:
procedure TForm1.FileListBox1DblClick(Sender: TObject);
begin

filelistbox1.SetFocus;
label1.caption:= '歌曲名:'+filelistbox1.FileName;
end;

运行后label1显示了包括delphi安装路径的文件地址
比如说:在filelistbox1中选中的是d:/mp3/1.mp3
显示的是c:/delphi6.0/d:/mp3/1.mp3这是为什么?
还想请教个问题,怎样才能只显示文件名?也就是显示1.mp3[8D]
 
我是过了,一切正常
 
1 不知道你是怎么作了,如果采有DriveComboBox1.DirectoryListBox1
FileListBox1 连动,不会出现这一问题,你是不是直接给directory赋值

2. ExtractFileName(filename)可以取出文件名,如1.mp3
 
to myname
我没有给dirctory赋值呀,难道filelistbox的dirctory默认是安装路径?
 
那么你的dirctory是怎么设的,
不设恐怕不行吧。
我建议你用DriveComboBox1.DirectoryListBox1
FileListBox1 连动
 
我是想做一个类似与winamp的filelist,双击需要的文件可以播放。
 
我仔细看了看,显示的是c:/delphi6.0/projects/d:/mp3/1.mp3
我将该程序保存在c:/delphi6.0/projects/里,会不会这里出了问题?
那又怎么解决呢?

哦,时间不早了,晚安
 
那么你是怎样让用户选择文件的,应该先驱动器,目录再文件吧
所以TDriveComboBox1.TDirectoryListBox1,TFileListBox一个也不能少吧,
如果你不是这样,请讲一下你用了些什么相关控件让用户找到所需文件的,
顺藤摸瓜,自然就能找到原因了。
 
我直接用的是opendialog
将opendialog.files放入到filelistbox中
然后在filelistbox双击要的文件名,在lable里显示
是这样的!
不行了哈,我要下网!
晚安
 
这不就对了吗?看以下程序
var i:integer;
begin

if opendialog1.execute then

with opendialog1do

begin

if files.count>0 then
//选择了文件
begin

filelistbox1.Directory:=extractfiledir(Files[0]);
//如果不设置就会出现你那种情况
for i:=0 to files.count-1do

filelistbox1.items.add(extractfilename(Files[1]));
end;

end;


end;


在dblclick事件中label1.caption:=extractfilename(filelistbox1.Filename);

另外,你为什么不用tlistbox。要简单得多
 
to myname
用你的方法,我可以找到文件的正确路径了,可是
filelistbox1.Directory:=extractfiledir(Files[0]);
//这里出现了问题
运行程序,在添加文件列表时,不管你有没有选择相关文件,被选的目录下的所有文件都会
被加到filelistbox,这是由于设置dirctory造成的吧?
 
sorry,确实有问题,因Tfilelistbox的功能就是将指定目录
的文件全部打开,

所以我建议你用Tlistbox
var i:integer;
begin

if opendialog1.execute then

with opendialog1do

begin

if files.count>0 then
//选择了文件
begin

listbox1.clear;
for i:=0 to files.count-1do

listbox1.items.add(Files[1]);
end;

end;


end;


在dblclick事件中label1.caption:=extractfilename(listbox1.items[listbox1.itemindex]);
 
在listbox里,我没有找到将listbox列表里的文件名赋值给label的方法。
label1.caption:=listbox1.?;
 
使用listbox实现了,谢谢myname!
 
后退
顶部