在用dbgrid浏览纪录的时候,按下enter,光标就跳到下一列,同时更新数据库中的内容?当是在最后一列按的enter时,我就新增加一行,让用户添加数据?

解决方案 »

  1.   

    帮忙啊,各位
    如果dbgrid不行,
    是否有什么控件可用?
    就像pb里面一样,
    直接在grid里面录入。
    不另外作录入界面了。
      

  2.   

    不难,在dbgrid的onkeydown事件中捕获回车键,然后调用dataset的next方法下移,同时判断是否到最后一行
      

  3.   

    在dbgrid的keypress写一点语句就可以了,没什么难的吧
      

  4.   

    procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
       begin
         if Key = #13 then
         if ActiveControl = DBGrid1 then
         begin
            TDBGrid(ActiveControl).SelectedRows := TDBGrid(ActiveControl).SelectedRows + 1;
            Key := #0;
         end;
       end;
      

  5.   


    为啥子delphi不准控制行的增加啊,列都可以
      

  6.   

    ntsnow(玛娅传说) [Error] Unit1.pas(35): Cannot assign to a read-only property
    [Error] Unit1.pas(35): Incompatible types
      

  7.   

    if selectedindex<fieldcount-1 then
                 selectedindex := selectedindex +1
               else selectedindex:=0;
      

  8.   

    newsofter(横空出世小霸王) (
    大哥,你那是控制列的,
    我的意思是要控制行,比如,我添加数据,当添加至行的尾部时候时,
    我按一下enter就dbgrid就有一个新行,等待继续添加数据。
    这个在pb中是很简单的。
    delphi中的dbgrid,我真的不知道怎么办。
      

  9.   

    单机吗?C/S吗?我不喜欢绑定,用StringGrid 一切尽在掌握之中。----------------爽,就一个子。
      

  10.   

    if Key=#13 then
    begin
      with qry do
      begin
        if eof then
          append
        else 
          edit;
        fieldbyname('**')...
        ....
        post;
    end;就这么个道理,呵呵!