我用Tdatetimepicker控件时,运行程序录入功能时,
第一次焦点是在“年”上,
但第二次录入时焦点就在“日”上了,这样用户录入日期就很不方便。经过多次试验,发现Tdatetimepicker控件的焦点都是在上次退出的地方。
请问:怎样让每次焦点都在“年”上。
另外,我是肯定结帖的,我都很讨厌那些只提问不结贴的人。
我感谢每一个关注此问题的人,即时是UP。

解决方案 »

  1.   

    在每次进去是在form1.CREAT里初始化。旧好了。
      

  2.   

    form1.CREAT里初始化?
    但是多次录入时并不退出Form,
    而且每次进去,不用初始化,焦点都在“年”上面。
      

  3.   

    在DATETIMEPICKER的 onexit事件里写吧,
    离开后,然后把焦点移到“年”上
      

  4.   

    请问nyf1220(浅水游虫):
    怎么做初始化?
    又怎样把焦点移到“年”上?
    请教了。
      

  5.   

    窗体初始化及每次输入之前让年获得焦点不就行吗?如:  "年".setfocus
      

  6.   

    FSU(洋葱面) ,
    但是,Tdatetimepicker是一控件,“年”作为其部件,我查遍资料,没有发现直接存取的属性或方法。唉,看来,我还比各位懂得还多一点。
      

  7.   

    换个思路试试也许能成!procedure TForm1.DateTimePicker1Enter(Sender: TObject);
    begin
      PostMessage(DateTimePicker1.Handle, WM_KEYDOWN, VK_LEFT, 0);
    end;
      

  8.   

    谢谢cmmi(大彬),
    你的思路是模拟键盘方向键输入,我也考虑过了。
    但由于1、“年”“月”“日”按左右键是循环移动的,但是
    1:第一次是在“年”,不能移动,怎么判断第“几”次,相信有办法,但会不会把问题修改范围扩大了呢?
    2:你无法确定上次是在哪里退出,所以模拟键盘次数不能确定。
    3:感觉Delphi还是,很多怪问题(有空我写出来),不是一个很严格的产品。
      

  9.   

    up,puv 初学的帮你顶,我想以后可能用到。
      

  10.   

    关注了。你试试重新设一直DateMode属性呢?是不是可以把这个组件变成默认的状态,我的意思你懂吧。
      

  11.   

    实在不行,你自己看看TcommonCalendar类有什么好方法没
      

  12.   

    whitetiger8(蜗牛[我要一步一步往上爬]) ,您的方法我试了,不行,至于TcommonCalendar类,我还看到TControl类了,都没有发现。
    我已经绝望了
      

  13.   

    mib3000(黑仔) ,
    我实际用的是TDBdatetimepicker控件,你的方法肯定行,但是涉及改动的范围太多了,包括界面格式等等,只是下策啊!
      

  14.   

    难道你的FORM就不可以动态创建?我试了动态创建就没这个问题!
      

  15.   

    如果你实际做的是不需要动态创建FORM的话,那就动态创建datetimepicker!我试了的,可行!
      

  16.   

    再给个笨方法:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      nTop, nLeft, nWidth: integer;
      ParentCtl: TWinControl;
      val: TDateTime;
    begin
      with DateTimePicker1 do
      begin
        ParentCtl := Parent;
        nTop := Top;
        nLeft := Left;
        nWidth := Width;
        val := DateTime;
        Free;
      end;  DateTimePicker1 := TDateTimePicker.Create(Application);
      with DateTimePicker1 do
      begin
        Parent := ParentCtl;
        Top := nTop;
        Left := nLeft;
        Width := nWidth;
        DateTime := val;
        SetFocus;
      end;
    end;
      

  17.   

    我也帮UP吧。
    我总是觉得在Delphi里,涉及到日期总会出现一些小问题。
      

  18.   

    WuLoveXue(晕死,又这样) :
    请问怎样动态创建datetimepicker?能否说得详细一点。多谢了!
     cmmi(大彬):
    你的方法我马上试试。
    如果行的话,我马上结了这个帖子,并且另开一个给分,请两位关顾。
      

  19.   

    和和,好久没来啊!被cmmi(大彬)给抢了,5555555555
    方法就是cmmi(大彬)所说的啦