type TForm1 = class(TForm) private //var a:integer a:integer
//在类实例化成为对象后才能访问,只有本类可以访问 public { Public declarations } b:integer;//在类实例化成为对象后才能访问,其他地方也可以访问 //这里的变量一般用与 showmodal 方式的窗口返回数据 //比如 openfiledialog end
//var // Form1: TForm1
//form1是一个对象变量,tform1 是类名,其他单元可以访问(不安全) //所以,一般这个地方需要删除,而放在调用者单元里面implementation var a:integer
//在下面的 程序可以访问 ,其他单元不能访问//调用者单元//假如是一个 主程序program demo;uses unit1;var form1:tform1
//主程序变量 rtn:integer;begin form1 := tform1.create(application)
form1.showmodal
rtn := form1.b;end;只有一个单元也不一样type TForm1 = class(TForm) private a:integer public { Public declarations } end
var Form1: TForm1
//位置1 implementation var a:integer
//位置2function test1()var t:integer;begin t := a
//这里可以访问 位置2 的单元变量 result := t;endfunction tform1.dotest2()var tttt :integer;begin tttt := self.a
//访问 private 变量 ,self 是本类 tttt := a
// 访问 单元 变量 form1 := nil
//访问 位置1 的单元变量 如果form1 被多次实例化,可能出错 //所以位置1 的变量要完全消除,我范过这样的错误,教训啊end;