请教:控件是在什么时候去读其设计期的属性的?(50分)

  • 主题发起人 主题发起人 zhym79
  • 开始时间 开始时间
Z

zhym79

Unregistered / Unconfirmed
GUEST, unregistred user!
控件是在什么时候去读其设计期的属性的?
如我在控件中加一个private变量FOldFontColor,用来保存控件在设计期设定的Font.color;但我不知道该在什么时候(地方),去做:FOldFontColor := self.Font.Color;
我试过在Loaded中去做,但这是self.Font.Color=0,好像还没有把设计期的设定都进来。
 
這樣定義好就可以了...
procedure SetColor(Value: TColor);
property setfontcolor: Tcolr read SetColor write FOldFontColor default ClBlack;

procedure TControl.SetColor(Value: TColor);
begin
if FOldFontColor <> Value then
begin
FOldFontColor := Value;
Perform(CM_COLORCHANGED, 0, 0);
end;
end;

系統內部自己做...不用去管...
 
不行啊。我想要的是设计期的FontColor,以便在特定的时候恢复到这个颜色。(我在用户在控件上编辑的时候,把颜色改变)
 
你在SetColor中把self.Font.Color同時寫入到FOldFontColor不就行了嗎?
 
>>我试过在Loaded中去做
就是在这里做的,你先执行inherited Loaded;即可;
但是要注意一点:Loaded仅在运行时被调用,在设计时时看不到的。
 
如楼上所说的,在loaded中
每一个窗口或数据模块被创建时会调用本身的loaded,然后再调用控件的loaded;
 
后退
顶部