元件的各属性的初值是怎么怎么得到的?(100分)

  • 主题发起人 主题发起人 j5203
  • 开始时间 开始时间
其实Delphi5和Delphi6在处理初始控件大小的时候的确有些不同,
好象在Form上放一个直接从TControl继承下的控件时,在Delphi5中,Width和Height的确是0,
但是Delphi6中变成了41和100,这并不是Delphi6的整型初始值变成了41或100,
而是由IDE分配的,想知道什么属性是Create过程中置入的其实很简单,在Form上单击右键,
在弹出的菜单中选View as Text,然后在找到这个控件的定义部份,
删除从Object那行的下一行到End的前一行的所有内容,再单击右键选View as Form,
回到Form上,好了再单击右键选View as Text,再次进行文本方式,找到刚才删除属性的控件,
发现许多控件的属性已经恢复了,这些恢复的属性基本上都是在Create中赋值的,
当然Name属性除外,Name属性是IDE动态分配的。

好了,现在拿一个从TControl继承下来的Control来试,在Delphi6中
发现第一进以文本方式看看的时候,
在Width和Height是41和100,而第二次进入文本方式的时候是0和0。
 
然后再看看Loaded!它是在从DFM资源中装属性中执行的一个过程,
当你从文本方式显示一个Form后再转到以Form方式显示Form时你会发现不仅执行了Create,
也执行了Load过程。而新放一个控件时只执行Create。
 
后退
顶部