属性缺省值不能存储(50分)

  • 主题发起人 主题发起人 dagang
  • 开始时间 开始时间
D

dagang

Unregistered / Unconfirmed
GUEST, unregistred user!
在控件编写中有下面一句
published
...
property Edit_Color: TColor read fedit_color write SetColor_e stored true default clWindow;
...

测试时 Edit_Color 的默认值却是 clBlack .
why?
 
你的错误在于:default关键词并不存储属性的缺省值。它实际上是别的用途的
好好看看帮助就知道了

要想设定缺省值,只要在create里设定即可
private
fcolor:tcolor;
published edit_color:Tcolor read fcolor write fcolor;

constructor txx.create(aowner)
begin
fcolor:=clwindow;
end;
 
同意 hubdog。
Default 指令是在保存控件到 .DFM 中时起作用,如果 Delphi 发现该属性
的当前值与 Default 值不一样,就把它写入 .DFM 中。也就是说,只有在设计期
改变了的属性,才会在 .DFM 中加一笔。
From: BaKuBaKu
 
两位说的已经很全面了,其实default很容易让人误解。
不过那毕竟只是类声明,数据成员的初始化自然要在构造函数里进行。
 
多人接受答案了。
 
后退
顶部