我想在DBGRID中的某一个网格里放俩个时间控件,一个DateTimePicker选择日期,另外一个DateTimePicker选择时间,然后我要将日期和时间组合成一个字符串保存到数据表里,所以该字段不可以是DATETIME类型,因为这个字段的长度超出了8,要既显示日期又要显示时间。我不知道如何将DateTimePicker控件放在DBGRID上,请大家帮忙啊,这个问题被卡了一天了,谢谢。在DBGRIDEH中可以实现也行。

解决方案 »

  1.   

    http://delphi.about.com/library/weekly/aa121503a.htmDateTimePicker inside a DBGrid  
     
    Here's how to place a TDateTimePicker into a DBGrid. Create visually more attractive user interfaces for editing date/time fields inside a DBGrid - place a drop down calendar into a cell of a DBGrid.  procedure TForm1.DBGrid1DrawColumnCell
      (Sender: TObject; 
       const Rect: TRect; 
       DataCol: Integer; 
       Column: TColumn; 
       State: TGridDrawState);
    begin
      if (gdFocused in State) then
      begin
        if (Column.Field.FieldName = 'DateAdded') then
        with DateTimePicker do 
        begin
          Left := Rect.Left + DBGrid1.Left + 1;
          Top := Rect.Top + DBGrid1.Top + 1;
          Width := Rect.Right - Rect.Left + 2;
          Width := Rect.Right - Rect.Left + 2;
          Height := Rect.Bottom - Rect.Top + 2;      Visible := True;
        end;
      end
    end;procedure TForm1.DBGrid1ColExit(Sender: TObject);
    begin
      if DBGrid1.SelectedField.FieldName = 'DateAdded' then 
        DateTimePicker.Visible := False
    end;procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
    begin
      if (key = Chr(9)) then Exit;  if (DBGrid1.SelectedField.FieldName = 'DateAdded') then
      begin
        DateTimePicker.SetFocus;
        SendMessage(DateTimePicker.Handle, WM_Char, word(Key), 0);
      end
    end;procedure TForm1.DateTimePickerChange(Sender: TObject);
    begin
      if DBGrid1.DataSource.State in [dsEdit, dsInsert] then
        ADOTable1DateAdded.Value := DateTimePicker.DateTime;
    end;procedure TForm1.DateTimePickerDropDown(Sender: TObject);
    begin
      DBGrid1.DataSource.Edit;
    end;
      

  2.   

    比较简单的方法是放一个DateTimePicker控件,Visable属性默认为否,在处理Grid的相关click等事件时再将Visable设为true,并且通过控制DateTimePicker控件的Left和Top属性达到你想要的目的。
      

  3.   

    同意aiirii(ari-爱的眼睛) 的方法。用第三方控件也可以。