这个程序为什么不能执行啊?procedure TForm1.FormCreate(Sender: TObject);
var
SearchRec: TSearchRec;
nResult: Integer;
const
szFilePath = 'd:\*.*';
//填充ListBox
ListBox1.Items.clear;
nResult:=FindFirst(szFilePath,faAnyFile,SearchRec); //查找第一个文件
while nResult = 0 do //如果返回值为0表示找到文件
begin
//将找到的文件添加到ListBox中;ExtractFilepath函数用于提取文件路径
ListBox1.Items.Add(ExtractFilePath(szFilePath) + SearchRec.Name);
nResult:=FindNext(SearchRec); //继续查找下一个文件,至到返回值不为0时
end;

解决方案 »

  1.   

    另外,如果我想让listbox显示程序所在目录的.txt文件该如何处理啊?
      

  2.   

    var
      SearchRec: TSearchRec;
      Found: Integer;
    begin
      try
        Found := FindFirst('d:\*.*', 0, SearchRec);
        while Found = 0 do
        begin
          if (ExtractFileExt(SearchRec.Name)= '*.txt') then      
          ListBox1.Items.Add(SearchRec.Name);
          Found := FindNext(SearchRec);
        end;
      finally
        FindClose(SearchRec);
      end;
    end;
      

  3.   

    form create的时候listbox还没有出来呢,放到formshow里面。
    把*.*改称*.txt应该就是第二问的答案吧。
      

  4.   

    回复人: idilent(忍不住来讨论) ( ) 信誉:104  2003-11-26 22:53:00  得分:0 
     
     
      form create的时候listbox还没有出来呢,放到formshow里面。
    把*.*改称*.txt应该就是第二问的答案吧。
     ==================
    谁说的???????? 
     
      

  5.   

    多谢诸位,另有两问
    1.如何在listbox中显示程序所在目录的文件名,即szFilePath需要赋值为相对目录名
    2.如何只显示文件名,而不显示后缀.txt
      

  6.   

    var
      Form1: TForm1;
      i:integer = 1;
      sss: Array [1..10] of string;  //存放绝对路径的数组
    implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
     SearchRec:tSearchRec;
     FindResult:integer;
    begin
    FindResult := FindFirst('C:\top\'+ '*.txt',FaAnyFile,SearchRec);
    while findresult=0 do
    begin
       listbox1.items.Add(ChangeFileExt(SearchRec.Name,''));  //去掉后缀名..显示
       sss[i]:='C:\top\'+SearchRec.Name;
       i:=i+1;
       FindResult :=findnext(Searchrec);
    end;
    end;procedure TForm1.ListBox1DblClick(Sender: TObject);
    begin
    if listbox1.Selected[listbox1.ItemIndex]=true then
            begin
            edit1.Text:=sss[listbox1.ItemIndex+1];  //你的双击事件操作.
            end
            else
            Exit;
    end;
      

  7.   

    var
      SearchRec: TSearchRec;
      Found: Integer;
    begin
      try
        Found := FindFirst('d:\*.*', 0, SearchRec);
        while Found = 0 do
        begin
          if (ExtractFileExt(SearchRec.Name)= '*.txt') then      
          ListBox1.Items.Add(Copy(SearchRec.Name,1,Length(SearchRec.Name)-Length(ExtractFileExt(SearchRec.Name))));
          Found := FindNext(SearchRec);
        end;
      finally
        FindClose(SearchRec);
      end;
    end;