如上

解决方案 »

  1.   

    另外放一个DateTimePicker控件,当选择日期时对Table或者Query相应的字段变量赋值即可
    也可以选择第三方控件,挺好用的
      

  2.   

    在form中放一个DateTimePicker值为不可见
    响应dbgrid的ondrawdatacell事件
      if (gbfocused in State) then
      begin
        DateTimePicker.Left:=rect.left+dbgrid1.left;
        DateTimePicker.Top:=rect.top+dbgrid1.top;
        DateTimePicker.width:=rect.Right-dbgrid1.left;
        DateTimePicker.Height:=rect.bottom-dbgrid1.Top;
        DateTimePicker.Visible:=True;
      end;
    响应dbgrid的onColExit事件
      begin  
        DateTimePicker.Visible:=False;
      end;
      

  3.   

    用楼上的方法,或干脆用datetimepicker组件另外输入好了!
      

  4.   

    procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
    begin
        if (key < > chr(9)) then
        begin
            if (DBGrid1.SelectedField.FieldName=datetimetostr(DateTimePicker.Data)) then
            begin
                 DateTimePicker.SetFocus;
                 SendMessage(DateTimePicker.Handle, WM_Char, word(Key), 0);
            end;
        end;
    end;