DBGrid, Pasar al siguiente control al presionar la tecla Intro
Sabemos que, generalmente, al presionar la tecla Tab se mueve el foco al siguiente control y con Shift + Tab al anterior en el orden de tabulación del formulario. Al trabajar con aplicaciones de Windows , algunos usuarios intuitivamente esperan que la tecla Intro se comporte como una tecla Tab.
Existe una gran cantidad de código de terceros para implementar un mejor procesamiento en la entrada de datos en Delphi. Estos es uno de los mejores métodos disponibles (con algunas modificaciones).
El ejemplo siguiente se escribió asumiendo que no existe un botón predeterminado en el formulario. Cuando su formulario contiene un botón cuya propiedad Default se establece en True, al presionar Intro en tiempo de ejecución, se ejecuta cualquier código contenido en el controlador de eventos OnClick de ese botón.
Intro como Tab en DBGrid
El siguiente código hace que al presionar Intro se comporte como Tab y Shift + Intro como Shift + Tab:
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char); begin if Key = #13 then // Si presionamos Intro Begin if HiWord(GetKeyState(VK_SHIFT)) <> 0 then // Si esta presionado Shift begin with (Sender as TDBGrid) do begin if selectedindex > 0 then selectedindex := selectedindex - 1; else begin DataSource.DataSet.Prior; selectedindex := fieldcount - 1; end; end; end else // Si no esta presionado Shift begin with (Sender as TDBGrid) do if selectedindex < (fieldcount - 1) then selectedindex := selectedindex + 1 else begin DataSource.DataSet.Next; selectedindex := 0; end; end; Key := #0 end; end;