Hacer que la tecla Intro funcione como pestaña

Enfocar el siguiente control de entrada al presionar la tecla Intro

Primer plano de la tecla Intro en el portátil

Getty Images/Prateek Prajapati/EyeEm





Sabemos que, en general, al presionar la tecla Tabulador se mueve el foco de entrada al siguiente control y Mayús-Tab al anterior en el orden de tabulación del formulario. al trabajar con aplicaciones de Windows , algunos usuarios esperan intuitivamente que la tecla Intro se comporte como una tecla Tabulador.

Hay mucho código de terceros para implementar un mejor procesamiento de entrada de datos en Delphi. Estos son algunos de los mejores métodos que existen (con algunas modificaciones).



Los ejemplos a continuación están escritos asumiendo que no hay un botón predeterminado en el formulario. Cuando su formulario contiene un botón cuya propiedad Predeterminada está establecida en Verdadero, al presionar Entrar entiempo de ejecuciónejecuta cualquier código contenido en el controlador de eventos OnClick del botón.

Entrar como pestaña

El siguiente código hace que Enter se comporte como Tabulador y Shift+Enter como Shift+Tab:



~~~~~~~~~~~~~~~~~~~~~~~~~
procedimiento TForm1.Edit1KeyPress (Sender: TObject; var Key: Char) ;
empezar
Si clave = #13, entonces comience
Si HolaPalabra(GetKeyState(VK_SHIFT)) 0 entonces
Seleccionar Siguiente (Remitente como TWinControl, Falso, Verdadero)
más
SelectNext(Remitente como TWinControl,Verdadero,Verdadero);
Clave := #0
final;
final;

~~~~~~~~~~~~~~~~~~~~~~~~~

en DBGrid

Si desea tener un procesamiento Enter (Shift+Enter) similar enDBGrid:

~~~~~~~~~~~~~~~~~~~~~~~~~
procedimiento TForm1.DBGrid1KeyPress (Remitente: TObject; var Clave: Char) ;
empezar
Si clave = #13, entonces comience
Si HiWord(GetKeyState(VK_SHIFT)) 0 entonces comienza
con (Remitente como TDBGrid) hacer
si el índice seleccionado > 0 entonces
índiceseleccionado := índiceseleccionado - 1
más empezar
Fuente de datos.Conjunto de datos.Prior;
índiceseleccionado := número de campos - 1;
final;
terminar si no empezar
con (Remitente como TDBGrid) hacer
si se selecciona índice<(fieldcount - 1) then
índiceseleccionado := índiceseleccionado + 1
más empezar
DataSource.DataSet.Next;
índice seleccionado := 0;
final;
final;
Clave := #0
final;
final;

~~~~~~~~~~~~~~~~~~~~~~~~~

Más información sobre las aplicaciones de Delphi

  • Sinfonía de teclado Familiarícese con los procedimientos de evento OnKeyDown, OnKeyUp y onKeyPress para responder a varias acciones clave o manejar y procesar caracteres ASCII junto con otras teclas de propósito especial.
  • ¿Qué significa #13#10 en código Delphi? Si se pregunta qué significan esos caracteres, aquí está la respuesta.