我在DELPHI6中定义了一个类,如下所示:
type Tstudent=class
name:string;
sex:string;
procedure setdata(n:string;s:string);
end;
procedure Tstudent.setdata(n:string;s:string);
begin
name:=n;
sex:=s;
end;
然后在一个button1的click事件中写如下代码:
var stud:Tstudent;
begin
stud.create;
stud.setdata('孙司空','男');
end;
可是每次退出时执行close的时候有一个错误,说什么access violation,at address xxxxx;什么的。这是为什么啊。小弟不知为什么,望知位大哥明指。

解决方案 »

  1.   

    我在d7中把你的代码改成
    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 }
      end;
    type Tstudent=class  class procedure setdata(n:string;s:string);
    end;
    var
      Form1: TForm1;implementation{$R *.dfm}
    class procedure Tstudent.setdata(n:string;s:string);
    var
    name:string;
    sex:string;
    begin
    name:=n;
    sex:=s;
    end;procedure TForm1.Button1Click(Sender: TObject);
    var stud:Tstudent;
    begin
    stud.create;
    stud.setdata('孙司空','男');
    end;
    end.就没有哪个问题,可能在你引用申明类过程时的初始化有问题
      

  2.   

    真正的原因是这样的:
    stud.create;
    stud.setdata('孙司空','男');
    改成:
    stud := Tstudent.Create;
    stud.setdata('孙司空','男');
      

  3.   


     stu.Create;
    改为
      stu:= TStudent.Create;
    即可