var
   i:integer;
begin
   opendialog1.options:=[ofallowmultiselect,offilemustexist];
   if opendialog1.execute then
     begin
        listbox1.clear;
        with opendialog1.files do
             for i:=0 to count-1 do
                 listbox1.items.add(string[i]);//这段代码在运行时报错,
     end;
   label1.caption:=extractfiledir(opendialog1.files[0]);
end;请教一下, OPENDIALOG1。files.string 表示着什么,在这里string[i]表示什么

解决方案 »

  1.   

    应该为OpenDialog1.Files.Strings[i]  你少了个s这表示你用OpenDialog1打开选择的文件。
      

  2.   

    当OpenDialog允许多选的时候也就是说Options的ofAllowMultiSelect为true的时候
    OpenDialog的filename是一组字符串,这样说应该能明白吧
      

  3.   

    选择多个文件时filename格式为
    c:\path\file1 &chr(0)& file2 &chr(0)& file3 
    而不是数组
      

  4.   

    写函数把文件名取出来,这是vb的代码。FileNames数组存放的是文件名,FileNames(0)为路径
      strlen = Len(CDialog1.filename)
      For i = 1 To strlen
        i = InStr(z, CDialog1.filename, Chr(0))  
        If i = 0 Then Exit For
          ReDim Preserve FileNames(y)
          FileNames(y) = Mid(CDialog1.filename, z, i - z)
          z = i + 1
          y = y + 1
      Next
      

  5.   

    当OpenDialog允许多选的时候有strings[]
      

  6.   

    string[1]中的string应为strings才对吧。opendialog.files是一个TString类,里面是所有文件的名字才对,strings[i]表示将其中文件名逐一取出写入ListBox。