我在开发项目的过程中发现一个问题:
Delphi的全局变量中会自动赋值:
eg:
  TForm1=class(TForm)
  public:
      sum:integer;//sum默认为1
而在过程和函数里的变量默认为一个很大的数(是编译器生成的),为什么不象全局变量一样赋为1呢?

解决方案 »

  1.   

    呵呵,这只有去问宝兰了,你可以在oncreate中设啊。
      

  2.   

    你把它写在后面的
    VAR
     FORM1 :FROM1;
    的后面这样就行了
    sum : integer =1;
      

  3.   

    “过程和函数里的变量默认为一个很大的数”:
        并不是编译器生成的。过程和函数里的变量的地址是在栈上的,编译器只是给它们分配了一个地址,但并没有初始化它们的值,因此进入到过程和函数中时,值是不确定的;    全局变量并不会自动赋值,你看到的可能是带类型的常量,通常有这样的形式:const
       number: Integer = 1;
        编译器会给这样的常量自动赋值;
        而你举的例子是类中的变量,并不会自动赋值。如果你看到它时它已有了值,可能在什么地方已经赋过值了,比方说在Create()中