在DBGrid中显示了数据,数据中有一字段是Date类型的,双击这个字段的值可以更改,但手写容易出错,由于我就想加一个DateTimePicker,可是位置怎么也找不好,在双击Date类型的字段时,显示这个控件,大小正好覆盖单元格,否则不显示该控件,以前做出来过,但忘了,希望大家给出代码

解决方案 »

  1.   

    http://borland.mblogger.cn/aiirii/posts/4911.aspx
      

  2.   

    procedure TForm1.DBGrid1CellClick(Column: TColumn);
    begin
       if(TDrawGrid(DBGrid1).Col = 1) then
       begin
         DateTimePicker1.Left := DBGrid1.Left +
            TDrawGrid(DBGrid1).CellRect(TDrawGrid(DBGrid1).Col, TDrawGrid(DBGrid1).Row).Left;
         DateTimePicker1.Top := DBGrid1.Top +
            TDrawGrid(DBGrid1).CellRect(TDrawGrid(DBGrid1).Col, TDrawGrid(DBGrid1).Row).Top;
         DateTimePicker1.Width :=
           TDrawGrid(DBGrid1).CellRect(TDrawGrid(DBGrid1).Col, TDrawGrid(DBGrid1).Row).Right
           - TDrawGrid(DBGrid1).CellRect(TDrawGrid(DBGrid1).Col, TDrawGrid(DBGrid1).Row).Left;
         DateTimePicker1.Height :=
           TDrawGrid(DBGrid1).CellRect(TDrawGrid(DBGrid1).Col, TDrawGrid(DBGrid1).Row).Bottom
           - TDrawGrid(DBGrid1).CellRect(TDrawGrid(DBGrid1).Col, TDrawGrid(DBGrid1).Row).Top;
       end;
    end;
      

  3.   

    点击时,可以得到该区域的位置,把DateTimePicker的TOP,LEFT,WIDTH设置为区域就可以了。我经常这吗做的。