procedure checkitem(user:string);
var
Ads_Sel:TADODATASET;
begin
ads_sel := TADODATASET.Create(nil);
//.............
end;

解决方案 »

  1.   

    因為這是一個過程,不是類(class)的方法.所以沒有self
      

  2.   

    zswang(伴水)(伤心中):
    謝謝你!
      

  3.   

    Self是指所编的程序范围是在哪一个类中,Delphi中大都在窗体范围内编程,因此,self即指窗体,如果在编写一个类或是一个组件,则self指该类或组件。我们在函数或过程的声明中可看出self是代表哪个组件,即self代表‘.’号之前的组件,如在第一个例子中,self代表Tform1。另外应注意,self只能用在类方法中,而不能用在过程或函数中.
    解决办法:1.ads_sel := TADODATASET.Create(nil);
             2.降过程改为procedure Tform1.checkitem(user:string);
      

  4.   

    Self是指向类实例的指针
    procedure checkitem(user:string); //这是普通的函数(过程也可以叫函数)
    procedure TForm1.checkitem(user:string); //这是类的函数(属于TForm)
      

  5.   

    lizhenjia(暴雪)解释的很清楚啊
      

  6.   

    Demo.1ads_sel := TADODATASET.Create(nil);
    try
      { 操作ads_sel }
    finally
      ads_sel.Free; //要自己Free
    end;Demo.2
    ads_sel := TADODATASET.Create(Application);
    { 操作ads_sel }
    { 不自己Free }当Application.Free是就要自动执行ads_sel.Free