OnKeyPress
if key=#13 then
key:=Chr(9);

解决方案 »

  1.   

    OnKeyPress
    if key=#13 then
    key:=Chr(9);//試試,應該可以解決吧
      

  2.   

    OnKeyPress
    if key=#13 then
    key:=Chr(39);//應該是這樣
      

  3.   

    朋友:
       不好意思,再说一下.13,39我想是某键的ASCII码值
    应该不能设置DBGRID中的Taborder吧?我刚才试了,焦点还是不能改变,可能是我没明白你的意思?我试着这样解决:
    procedure TFrm_ddjkEdit.DBGrid1KeyPress(Sender: TObject; var Key: Char);
      VAR
        ls_field:Tfield;
    begin
      if key=#13 then
      begin
        ls_field:=Tfield.Create(Self);
        if DBGrid1.SelectedField.FieldName='CZ'
        THEN
        begin
          showmessage('This is CZ!');
          if dbgrid1.Fields[dbgrid1.SelectedIndex].AsString='' then
            showmessage('车种不能为空!')
          else
          begin
             DBGrid1ColumnMoved(dbgrid1,0,1);
             ls_field.FieldName:='ZIZ';
             DBGrid1.SelectedField:=ls_field;
             ls_field.Destroy;
          end;
      end;
    end;但失败了.....那位大虾能提供跟明白的方法让菜鸟学学吗?
      

  4.   

    朋友:
       不好意思,再说一下.13,39我想是某键的ASCII码值
    应该不能设置DBGRID中的Taborder吧?我刚才试了,焦点还是不能改变,可能是我没明白你的意思?我试着这样解决:
    procedure TFrm_ddjkEdit.DBGrid1KeyPress(Sender: TObject; var Key: Char);
      VAR
        ls_field:Tfield;
    begin
      if key=#13 then
      begin
        ls_field:=Tfield.Create(Self);
        if DBGrid1.SelectedField.FieldName='CZ'
        THEN
        begin
          showmessage('This is CZ!');
          if dbgrid1.Fields[dbgrid1.SelectedIndex].AsString='' then
            showmessage('车种不能为空!')
          else
          begin
             //方法一
             // DBGrid1ColumnMoved(dbgrid1,0,1);
            //这个是我想用DBGrid1ColumnMoved但也失败了
            //方法二
             ls_field.FieldName:='ZIZ';
             DBGrid1.SelectedField:=ls_field;
             ls_field.Destroy;
          end;
      end;
    end;但失败了.....那位大虾能提供跟明白的方法让菜鸟学学吗?
      

  5.   

    procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if key = 13 then
        if DBGrid1.SelectedIndex = DBGrid1.Columns.Count-1 then
          DBGrid1.SelectedIndex := 0
        else
          DBGrid1.SelectedIndex := DBGrid1.SelectedIndex + 1;;
    end;
      

  6.   

    if (Key=VK_RETURN) then
     begin
        DBGrid1.SelectedIndex:=DBGrid1.SelectedIndex+1;
     end;
      

  7.   

    问题得以解决:多谢大虾们....哈哈
    --------------
    procedure TFrm_ddjkEdit.DBGrid1KeyPress(Sender: TObject; var Key: Char);
    begin
      if key=#13 then
      begin
        if DBGrid1.SelectedField.FieldName='CZ'
        THEN
        begin
          showmessage('This is'+DBGrid1.SelectedField.FieldName);
          if dbgrid1.Fields[dbgrid1.SelectedIndex].AsString='' then
            showmessage('车种不能为空!')
          else
            DBGrid1.SelectedIndex:=4;
        end;  end;
    end;
    ---------------------------------------------------------------但怎么用dbgrid1.selectedfield:=ls_field;这种方法为什么不行呢?
    我一直对Delphi中的create方法使用不太熟练,
    像:create(ower)
       create(self)
       create(parent)
       create(application)等参数使用不太熟
    那位大虾能介绍下吗?<求书:那本好书介绍关于数据库编程,对ADO,BDE控件的方法,函数使用的比较详细?  >