一、TDateTimePicker的问题
   创建一个Application,在Form1上放一个DateTimePicker,设置ShowCheckBox属性为 true,在Form1的OnCreate事件中写下如下代码:
  DateTimePicker1.Checked:=false;
  DateTeimPicker1.Checked:=false;
  在第一句上设断点,察看Checked的值,会发现执行了第一句之后,Checked的值还是true,执行了第二句之后才是false,为什么?bug?
  或者在每一句后面跟一句:
  ShowMessage(BoolToStr(DateTimePicker1.Checked));
  第一次竟是 -1。
  而在OnShow事件中就没有以上的问题,其他控件、其他属性也没这样的问题。二、TFrame的问题
  创建一个Application,打开new items对话框,创建一个Frame(Frame2),再次打开new items对话框,选择Project1页,创建一个继承于TFrame2的Frame(Frame3);
  在Form1中添加一个Button,OnClick事件代码:
    TFrame2.Create(Self);
    TFrame3.Create(Self);
 在执行第二句时竟然报错:'A Component named Frame2 already exist.' 
  My God!我知道在创建子类对象时先构造一个父类对象,但在创建子类对象之前就给父类对象的Name属性指定缺省值肯定不对。而对于TForm类,却不会报错。如,TForm3继承于TForm2,如下的代码就不会报错:
  TForm2.Create(Application);
  TForm3.Create(Application);我用的是Delphi6,觉得还不错的,真不希望这两个小小问题动摇我对他的信心。请大家指点迷津,如也发现了类似的问题,也提出来吧,大家共同讨论。

解决方案 »

  1.   

    至于第一个问题,我觉得正好说明delphi得编译器做得好!代码优化!
    你那样的语句,第一句再代码优化阶段会被删掉!因为你那么携带吗没有任何作用,如果你说是为了延迟时间的,那你也就太至于第二个错误,确实让人感觉不好!哈哈,还好,你还有兴趣测试出来了,如果是我,一定不能发现,因为从来都不会那么些代码
      

  2.   

    按照你的方法试一下,是这样的,但是如果 FormCreate 中只有一个 DateTimePicker1.Checked := False,则没有问题。