我是这样写的:
property left read Fleft write Fleft default 5;
为什么我得到的Fleft的值不确定?它在属性栏里显示为0,但实际上是200多?

解决方案 »

  1.   

    default指令的意思不是设置属性默认值。它的意思是:当你在组件可视化设计时设置的属性值和它指定的值不相同时,才将该值存入dfm文件。比如
    property open:boolean read FOpen write setOpen default true;
    如果你在Object Inspector中设置open为true时,open不会被保存,否则保存到dfm文件中。
    要设置默认值,应该在构造函数Create中设置,如:
    constructor  Ttest.Create(AOwner: TComponent);
    begin
      inherited;
      open := true;
      //....
    end;—————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    —————————————————————————————————
      

  2.   

    来晚了。楼上说的很清楚了。要通过构造函数来实现。
    提醒一下,通常构造函数都是声明在public中,且override重载。
      

  3.   

    default并不会真正设定默认值,应该覆盖构造函数
      

  4.   

    你在create 事件中写FLeft=5不就好了