改成这样试试:
{$R *.DFM}function Tform2.Get_refno(gpar:string) : string;
         ^^^^^^^
  var
    mcpar,lcpar ,adstr ,azero : string ;
    ftyno ,i : Integer;
  begin
  lcpar:=Copy(gpar,5,3);
  mcpar:=copy(gpar,1,4);  
  if form2.surefno.FindKey([gpar]) then  {此行有问题}
    begin
    .....
    end;

解决方案 »

  1.   

    很正常啊。你把Function定义在Type TForm2=Class(TForm)中,也就是说这个函数是TForm2的成员函数,当然在实现的时候,要写TForm2.Get_refno()
      

  2.   

    将定义部分加在
    Type Form2=class(TForm)
    ......
    end;
    后面,就行了。
      

  3.   

    (*//
    把函数的定义声明到接口部分即可
    //*)unit MyUnit;interface(*/************\*)
    (*   接口部分   *)
    (*\************/*)uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls, Registry;type
      TFormCreate = function(AOwner: TComponent): TForm; stdcall; //自定义类型
      
    const
      WIConfig = 'WIConfigPr.Dll'; //自定义常量var
      V_SoftWareName: string; //自定义变量function ZsIif();function ZsIif(mBool: Boolean; mDataA, mDataB: Variant): Variant; //自定义函数implementation(*/************\*)
    (*   代码部分   *)
    (*\************/*)function ZsIif(mBool: Boolean; mDataA, mDataB: Variant): Variant;
    begin
      Result := mDataB;
      if mBool then Result := mDataA;
    end;initialization(*/************\*)
    (*   开始部分   *)
    (*\************/*)finalization(*/************\*)
    (*   终止部分   *)
    (*\************/*)end.
      

  4.   

    我是说如果是类的成员,就可以省略的类的名称呀好象这里的FORM2,而为什么不加类别时程序出错呢?
      

  5.   

    改成
    function Tform2.Get_refno(gpar:string) : string;
    begin
      ....
    end;