rt

解决方案 »

  1.   

    procedure TFmfilialinfo.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 + DBGrid2.Left + 1,rect.Top + DBGrid2.Top +1,
                                    rect.Right - rect.Left ,rect.Bottom -rect.Top);
        end;
    end;procedure TFmfilialinfo.DateTimePicker1CloseUp(Sender: TObject);
    begin
      adotable1.edit;
      adotable1.fieldbyname('出生年月').value:=DateTimePicker1.datetime;
      DateTimePicker1.Visible :=false;
    end;procedure TFmfilialinfo.DBGrid1ColEnter(Sender: TObject);
    begin
      if dbgrid1.Columns [DBGrid2.SelectedIndex ].FieldName ='出生年月' then
          DateTimePicker1.Visible :=true
      else
         DateTimePicker1.Visible :=false;
    end;
      

  2.   

    http://delphi.about.com/od/usedbvcl/l/aa121503a.htmprocedure 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;
      

  3.   

    DBGRIDEH直接用
    什么代码都不用写
    ehlib系列控件
      

  4.   

    我做了个万能查询程序,你可以参看:
       http://www.cnkernel.com/wncx.rar