比如我定义一个类:
  DFile = class(TObject)
  public
    bDay: Boolean= true;   //默认值为true,格式错误..不知道该怎么写,有不想在create()中写
    Constructor Create();
  end;怎么办?

解决方案 »

  1.   

    你要初始化一个类的成员函数肯定只能在构造函数里面初始话 因为构造函数是构造对象时首先被调用的type
      DFile = class(TObject)
      public
        bDay: Boolean;
        Constructor Create();
      end;{ DFile }constructor DFile.Create;
    begin
      bDay:=true;
      inherited;
    end;
      

  2.   

    一般面向对象不在public下直接加字段(变量),要做接口的话可以做成属性,例如:
      DFile = class(TObject)
      private
        FbDay: Boolean;
        procedure SetbDay(const Value: Boolean);
      public
        Constructor Create();
        property bDay: Boolean read FbDay write SetbDay default true;  end;
      

  3.   

    你这个是面向组件开发的思维,虽然default为true,create里面还是要fBDay := True;
      

  4.   

    default只是用于在object inspector中是否加粗属性的值而已(是默认值的就不加粗)
      

  5.   

    default的确不管用,但是在public下一般不直接加变量,一般把对外做接口的设为属性
      

  6.   

    不想放在Create中?你对Create敏感?
    事实上,Delphi也都是这么做的,看看他的源码!