Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-11-2010
kokele kokele is offline
Miembro
 
Registrado: jun 2004
Posts: 16
Poder: 0
kokele Va por buen camino
Tecla Enter

Hola a todo el foro.

Estoy haciendo unos forms con base de datos y utilizo el componente tdbedit. Mi pregunta es la siguiente:
¿Al igual que pulso el tabulador para pasar a cada componte tdbedit, se puede utilizar intro sin tener que programarlo o hay que programarlo?

Nota: De momento lo estoy poniendo en el evento onkeydown que me pase al siguiente tdbedit al pulsar intro.

saludos
kokele
Responder Con Cita
  #2  
Antiguo 24-11-2010
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
¿OnKeyDown de dónde, de cada componente?

Por que lo podrías programar en el formulario, una sola vez, algo así como 3 líneas de código te darían esa funcionalidad en todo tu formulario...
__________________

Responder Con Cita
  #3  
Antiguo 24-11-2010
cloayza cloayza is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz, Chile
Posts: 913
Poder: 23
cloayza Tiene un aura espectacularcloayza Tiene un aura espectacular
Podrias hacer lo siguiente

Código Delphi [-]
procedure TForm1.DBEdit1KeyPress(var Key: Char);
begin
     if (key = #13) then
      begin
          PostMessage(GetparentForm(Self).Handle, WM_NEXTDLGCTL ,0,0);
          Key := #0;
          Exit;
      end;
end;

Lo que debes hacer a continuacion es asociar este evento a todos los DBEdit...

Saludos
Responder Con Cita
  #4  
Antiguo 24-11-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Otra posible solución es:
Código Delphi [-]
procedure TForm1.DBEditKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if Key = VK_RETURN then
    Perform(WM_NEXTDLGCTL ,0,0);
end;

Saludos.
Responder Con Cita
  #5  
Antiguo 24-11-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Me quede pensando y creo que la sugerencia de ContraVeneno, de capturar la tecla en el form te sirve para qualquier componente.
Así que podrías poner la propiedad KeyPreview del form a True y este código en el evento OnKeyPress del form:

Código Delphi [-]
...
  if Key = #13 then
  begin
     Perform(WM_NEXTDLGCTL ,0,0);
     Key:= #0;
  end;
...

Tené en cuenta que puede cambiar el comportamiento normal de algunos componentes como por ejemplo el TStringGrid...

Saludos.
Responder Con Cita
  #6  
Antiguo 24-11-2010
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
...
Tené en cuenta que puede cambiar el comportamiento normal de algunos componentes como por ejemplo el TStringGrid...

Saludos.
Cuando empezamos a ver como "cambia el comportamiento normal de algunos componentes", es cuando empieza a NO gustarme que se muevan con el enter...

Yo prefiero seguir con funcionalidad del sistema operativo... el cuál, NO se mueve al siguiente control con la tecla enter... "oye..." - diran algunos -..." pero el excel se mueve con el enter..." si amigo, pero excel es una tabla, grilla, grid...

diran otros: "es que es más rápido con el enter....", a caray... si me muestras un estudio científico dónde se demuestre que existe una diferencia considerable entre presionar "Enter" y presionar "Tab", empezaré a considerar esta acción como buena. No hay que confundir "la costumbre" con "la facilidad" o "la funcionalidad"...

En fin, yo prefiero seguir haciendo lo que hace el sistema operativo... el enter NO mueve al siguiente control.
__________________

Responder Con Cita
  #7  
Antiguo 24-11-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Existe muchas referencias para hacer que la tecla "Enter" funcione como "Tab" por ejemplo mira éstas:
http://www.trucomania.org/trucomania/truco.cgi?1&esp
http://www.clubdelphi.com/foros/showthread.php?t=64992
y muchos más...
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #8  
Antiguo 25-11-2010
kokele kokele is offline
Miembro
 
Registrado: jun 2004
Posts: 16
Poder: 0
kokele Va por buen camino
Gracias a todos por las respuestas, me habeis aclarado el tema.

Saludos,
kokele
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Tecla Enter en un TMEMO seb@ OOP 4 23-05-2008 15:15:06
Tecla ENTER scooterjgm OOP 12 16-09-2005 18:59:40
TECLA <ENTER> en TEdit inetplus Varios 7 16-03-2004 23:36:23
Utilizar la tecla enter como el Tab ckaki Varios 3 02-10-2003 17:25:42
Moverse por un formulario con la tecla enter cisterpe OOP 3 13-09-2003 18:37:40


La franja horaria es GMT +2. Ahora son las 17:08:39.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi