ehlib中有一个DBGrideh的,可以实现你要的功能
http://www.developres.com/dispdoc.asp?id=767

解决方案 »

  1.   

    不用Ehlib, 可以将该列的编辑属性设成按键,然后附加代码实现。
      

  2.   

    往窗体上放一个datetimepicker1,把它的visible设为false,然后参考这段代码:
    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
      const Rect: TRect; DataCol: Integer; Column: TColumn;
      State: TGridDrawState);
    begin
       if (gdfocused in state) and (column.FieldName='出生年月') then
        begin
          DateTimePicker1.SetBounds(rect.Left + dbgrid1.Left + 1,rect.Top + dbgrid1.Top +1,                             rect.Right - rect.Left ,rect.Bottom -rect.Top);
        end;
    end;procedure TForm1.DateTimePicker1CloseUp(Sender: TObject);
    begin
      adotable1.edit;
      adotable1.fieldbyname('出生年月').value:=DateTimePicker1.datetime;
      DateTimePicker1.Visible :=false;
    end;procedure TForm1.DBGrid1ColEnter(Sender: TObject);
    begin
      if dbgrid1.Columns [dbgrid1.SelectedIndex ].FieldName ='出生年月' then
          DateTimePicker1.Visible :=true
      else
         DateTimePicker1.Visible :=false;
    end;