GetFileCount是你写的内部函数,只能在FormCreate里面调用,外面当然调用不了。

解决方案 »

  1.   

    在form的public中  定义  function GetFileCount(srcPath, srcFileName: string): Integer;
      

  2.   

    如4L说的,先声明,然后Ctrl+Shift+C,生成函数,然后把你的方法实现拷贝进去,就可以调用了你写在FormCreate里面,就属于这个FormCreate的内部函数,仅供这一个方法调用这个函数。
      

  3.   

    错误:
    function GetFileCount(srcPath, srcFileName: string): Integer;
     定义在FormCreat事件 中,
    Button事件是不能调用的。
    修正:
    你应该将它拉出来,放在
    private

    public
        { Public declarati
    均可:
    单元代码:
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
        function GetFileCount(srcPath, srcFileName: string): Integer;
      end;var
      Form1: TForm1;implementation{$R *.dfm}function TForm1.GetFileCount(srcPath, srcFileName: string): Integer;
    var FileRec: TSearchrec;
        currPath: string;
    begin
      if srcPath[Length(srcPath)] <> '\' then srcPath := srcPath + '\';
      currPath := srcPath + '*.*';
      Result := 0;
      if FindFirst(currPath, faAnyFile, FileRec) = 0 then
      repeat
        if ((FileRec.Attr and faDirectory) <> 0) and
          (FileRec.Name <> '.') and
          (FileRec.Name <> '..') then
        begin
          Result := Result + GetFileCount(srcPath + FileRec.Name, srcFileName);
        end
        else
          if AnsiCompareText(srcFileName, FileRec.Name) = 0 then
            Result := Result + 1;
      until FindNext(FileRec) <> 0;
    end;procedure TForm1.Button1Click(Sender: TObject);
    var n:integer;
    begin
      n:=GetFileCount('c:\', 'cmd.exe');
      showmessage('有'+inttostr(n)+'个同名文件');
    end;end.
      

  4.   

    编译,验证时,使用一个U盘。在C:\盘目录文件太多,会执行很长时间。
    U盘的不同的目录,拷贝若干个1.txt文件。  就可以验证了。比如Utel是I:
    procedure TForm1.Button1Click(Sender: TObject);
    var n:integer;
    begin
      n:=GetFileCount('I:\', '1.txt');
      showmessage('有'+inttostr(n)+'个同名文件');
    end;