我想打开对话框,然后选择多个文件赋给listbox试了半天都不行,怎么弄呢?
var
i:integer;
begin
if opendialog1.Execute then
for i:=0 to 100 do
listbox1.items.Strings[i]:=opendialog1.FileName ;
end;
var
i:integer;
begin
if opendialog1.Execute then
for i:=0 to 100 do
listbox1.items.Strings[i]:=opendialog1.FileName ;
end;
謝謝。
listbox1.items.Add(opendialog1.FileName) ;
listbox1.items.Strings[i]:=opendialog1.FileName ;
这两个都没有问题。
而在于你是在执行了一次opendialog1.execute之后就开始循环了,结果肯定是101行,行行都是相同的。
for i:=0 to 100 do
begin
if opendialog1.Execute then
listbox1.items.Strings[i]:=opendialog1.FileName ;
end;
这样一一放入才正确。不过这样的话会不停的要打开dialog,很麻烦。
我不确定你是如何在opendialog中选择多个文件的,你是按shift?还是用鼠标框住你要的文件?
好像一次只能选择一个呀。我没有很注意。
那兄弟你等等哈,我再去试试。
begin
OpenDialog1.Options := [ofAllowMultiSelect, ofFileMustExist];
if OpenDialog1.Execute then
ListBox1.Items.Assign(OpenDialog1.Files);
end;
多选情况下要用属性 Files,这是一个TStrings属性,可以直接赋给ListBox1.Items 。