TDateTimePicker的控件,有两个属性为Checked和ShowCheckBox,表示是否显示选择框,但是选择框出现时,在XP下正常,在Win7问题特多,表现如下:1、当Checked默认为false,启动程序,按道理是选择框不选择,XP是这样的,但是Win7默认居然是选择的,不论你如何预先设置Checked属性。2、点击下拉框开始选择日期时,Win7就是让那个选择框自动勾选,无论那个选择框是否已经勾选。例如:选择框本来未勾选,如果要开始选择日期,那个选择框会自动选中,XP下不是这样的,因此,当以下代码出现时,根本无法选择时间,因为选择框一直是选中的。所以一直显示“无”。
    procedure TForm1.DateTimePickerChange(Sender: TObject);
    begin
      if DP.Checked then
        DP.Format :='无'
      else
        DP.Format :='';
    end;
3、如果按以上代码设置显示格式,如果开启皮肤效果(就是XPMan控件放置上去效果),只要勾选了选择选择框,那么久一直显示“无”,无法再继续其他显示。以上的现象在XP下不会出现,但是在我的Win7系统上,简直无法琢磨,开发环境是D7,请问如何解决。

解决方案 »

  1.   

    状态搞反了,是默认选择的,要好改成以下方式即可
        procedure TForm1.DateTimePickerChange(Sender: TObject);
        begin
          if not DP.Checked then
            DP.Format :='无'
          else
            DP.Format :='';
        end;现在就剩下第3点了,只要变成“无”显示,显示格式就怎么也改不回来了,XP下不会这样。