Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #21  
Antiguo 14-12-2004
llonigualker llonigualker is offline
Miembro
 
Registrado: jul 2003
Posts: 67
Poder: 21
llonigualker Va por buen camino
Y a nadie se le ha ocurrido pobar con el evento "Onkeydown" y key=vk_return? (Siempre que el keypreview del form este a true, claro)

Probadlo.

Saludos.
__________________
El que pregunta es tonto durante 5 minutos, el que no pregunta es tonto para toda su vida.
Responder Con Cita
  #22  
Antiguo 23-01-2008
Minotaure Minotaure is offline
Miembro
 
Registrado: ene 2006
Ubicación: Sabadell (Catalunya)
Posts: 29
Poder: 0
Minotaure Va por buen camino
Mismo problema: no detecta el enter

Utilizo Delphi 6 y tengo el mismo problema que tenía ronson.
En el evento KeyPress de un edit tengo esto:
Código:
  if (( Key = #13 ) {and ( QLinies.State in [dsEdit,dsInsert])}) then
  begin
//codigo
  end;
Pues el problema es que cuando presiono enter ni tan siquiera me entra en el evento KeyPress, tampoco si presiono Mayus+Enter como decían por aquí. En cambio al presionar cualquier otra tecla sí que me entra en el evento (hasta con la tecla de retroceso/borrar).
En el form tengo la propieadad KeyPreview=True.
Yo estoy trabajando en un ordenador de sobremesa, no un portátil.

La verdad es que llevo muchas horas probando esto hasta que he encontrado este hilo. La verdad es que no sé que puede ser. ¿Un error del Delphi 6?
Responder Con Cita
  #23  
Antiguo 23-01-2008
Minotaure Minotaure is offline
Miembro
 
Registrado: ene 2006
Ubicación: Sabadell (Catalunya)
Posts: 29
Poder: 0
Minotaure Va por buen camino
He descubierto el problema

Haciendo pruebas con un Form en blanco he descubierto el problema: cuándo había un único componente no había ningún problema: detectaba el enter.
Al haber más de uno lo que hacia en el primer enter pasa el foco al siguiente componente (como un Tab). Esto es porqué está definido en el global aplicación.

Ahora me las intentaré apañar con el evento on exit.
Responder Con Cita
  #24  
Antiguo 18-03-2008
Minio Minio is offline
Miembro
 
Registrado: jul 2007
Ubicación: Elche (Alicante) ESPAÑA
Posts: 65
Poder: 17
Minio Va por buen camino
Como dice llonigualker, probar con el evento OnKeyDown y con la siguiente condicion:

Código Delphi [-]
  if Key = VK_RETURN then
    begin
      Key := 0;
      SpeedButtonClick(sender);
    end

Siempre que la propiedad KeyPreview del formulario este a true
Responder Con Cita
  #25  
Antiguo 28-04-2008
Nereida Nereida is offline
Miembro
 
Registrado: abr 2008
Posts: 34
Poder: 0
Nereida Va por buen camino
Cita:
Empezado por Minio Ver Mensaje
Como dice llonigualker, probar con el evento OnKeyDown y con la siguiente condicion:


Código Delphi [-]
if Key = VK_RETURN then
begin
Key := 0;
SpeedButtonClick(sender);
end





Siempre que la propiedad KeyPreview del formulario este a true
Probé eso que dijiste aunque puede que lo entendiera mal.
Yo puse un:

Código:
 
if key=13 then
showmessage('entro');
end;
simplemente de prueba para ver si entraba en un dbedit que tengo.
No me funciona pero en cambio, si le doy a MAYUS + INTRO si que entra en el evento Keypress del dbedit.
Como puedo solucionar esto???

Saludos
Responder Con Cita
  #26  
Antiguo 28-04-2008
Minio Minio is offline
Miembro
 
Registrado: jul 2007
Ubicación: Elche (Alicante) ESPAÑA
Posts: 65
Poder: 17
Minio Va por buen camino
Cambia del evento OnKeyPress al OnKeyDown, y recuerda poner la propiedad KeyPreview del formulario a True.
Responder Con Cita
  #27  
Antiguo 28-04-2008
Nereida Nereida is offline
Miembro
 
Registrado: abr 2008
Posts: 34
Poder: 0
Nereida Va por buen camino
Cita:
Empezado por Minio Ver Mensaje
Cambia del evento OnKeyPress al OnKeyDown, y recuerda poner la propiedad KeyPreview del formulario a True.
Lo termino de cambiar pero sigue sin hacerlo. Si no es con el mayus + intro sigue sin ir
Responder Con Cita
  #28  
Antiguo 28-04-2008
Minio Minio is offline
Miembro
 
Registrado: jul 2007
Ubicación: Elche (Alicante) ESPAÑA
Posts: 65
Poder: 17
Minio Va por buen camino
tiene la propiedad KeyPreview del Form a True
Responder Con Cita
  #29  
Antiguo 28-04-2008
Minio Minio is offline
Miembro
 
Registrado: jul 2007
Ubicación: Elche (Alicante) ESPAÑA
Posts: 65
Poder: 17
Minio Va por buen camino
Mira he probado esto, con el OnKeyPress y funciona:

Formulario donde insertas el DBEdit
KeyPreview -> True

DBEdit en el Evento OnKeyPress
Código Delphi [-]
if key = #13 then
  ShowMessage('Entra');

Y no me hace nada raro, el evento OnKeyDown es prácticamente igual pero cambiamos #13 por VK_RETURN

Última edición por Minio fecha: 28-04-2008 a las 13:11:00.
Responder Con Cita
  #30  
Antiguo 28-04-2008
Nereida Nereida is offline
Miembro
 
Registrado: abr 2008
Posts: 34
Poder: 0
Nereida Va por buen camino
Minio, lo he probado de las dos maneras pero me sigue sin ir
Responder Con Cita
  #31  
Antiguo 28-04-2008
Minio Minio is offline
Miembro
 
Registrado: jul 2007
Ubicación: Elche (Alicante) ESPAÑA
Posts: 65
Poder: 17
Minio Va por buen camino
Ahora mismo no se me ocurre por que no funciona, puedes probar con F5 para hacerlo correr paso a paso con F8, para ver que es lo que hace y lo comentas.
Responder Con Cita
  #32  
Antiguo 28-04-2008
Minio Minio is offline
Miembro
 
Registrado: jul 2007
Ubicación: Elche (Alicante) ESPAÑA
Posts: 65
Poder: 17
Minio Va por buen camino
Tienes algo programado en el OnKeyPress del Formulario?, o en el OnKeyDown del Formulario???
Responder Con Cita
  #33  
Antiguo 29-04-2008
Nereida Nereida is offline
Miembro
 
Registrado: abr 2008
Posts: 34
Poder: 0
Nereida Va por buen camino
Eliminé todo el contenido del keypress del dbedit y puse lo que me dijiste en el keydown. También realicé el seguimiento paso a paso y lo extraño es que entra en un botón de Aceptar que tengo pero no entra ni en el keydown ni en el keypress.
Se me hace muy raro que ocurra esto.

Saludos
Responder Con Cita
  #34  
Antiguo 29-04-2008
Minio Minio is offline
Miembro
 
Registrado: jul 2007
Ubicación: Elche (Alicante) ESPAÑA
Posts: 65
Poder: 17
Minio Va por buen camino
Tienes que tener algún código que anule lo que tienes en ese DBEdit, puede que sea lo que dices en ese botón aceptar, ¿Ocurre antes o depués del evento que deberia ejecutar en el DBEdit?
Responder Con Cita
  #35  
Antiguo 29-04-2008
Minio Minio is offline
Miembro
 
Registrado: jul 2007
Ubicación: Elche (Alicante) ESPAÑA
Posts: 65
Poder: 17
Minio Va por buen camino
Has probado a ver si te admite otra tecla del teclado como por ejemplo una letra ('C' o 'c')?
Responder Con Cita
  #36  
Antiguo 29-04-2008
Nereida Nereida is offline
Miembro
 
Registrado: abr 2008
Posts: 34
Poder: 0
Nereida Va por buen camino
A ver como me explico: si pulso la tecla de SHIFT y luego la letra me lo toma como dos teclas distintas, no sé si eso es a lo que te referias.
Si pulso el boton MAYUS y le pongo la letra, si que me la reconoce como mayuscula.
Estoy hecha un lio, no entiendo nada de pq me pasa eso
Responder Con Cita
  #37  
Antiguo 29-04-2008
Minio Minio is offline
Miembro
 
Registrado: jul 2007
Ubicación: Elche (Alicante) ESPAÑA
Posts: 65
Poder: 17
Minio Va por buen camino
A lo que referia es que intentases capturar otra tecla que no sea el intro mejor una letra.
De todas formas vamos a ver si esto funciona.

Pon esto en el evento OnEnter del DBEdit.
DBEdit.OnKeyPress := DBEditKeyPress;

Pon el KeyPreview a False, por si tuvieras eentos programados en el form.

Y no se me ocurre otra osa que pruebes tambien el evento OnKeyUp
Responder Con Cita
  #38  
Antiguo 29-04-2008
Nereida Nereida is offline
Miembro
 
Registrado: abr 2008
Posts: 34
Poder: 0
Nereida Va por buen camino
Ni con esas pero bueno a ver si se me ocurre algo pq un compañero mio si que tiene lo del intro y a él le funciona pero poniendo el mismo código a mi me sigue sin ir
Gracias por todo

Saludos ^_^
Responder Con Cita
  #39  
Antiguo 29-04-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Nereida Ver Mensaje
Eliminé todo el contenido del keypress del dbedit y puse lo que me dijiste en el keydown. También realicé el seguimiento paso a paso y lo extraño es que entra en un botón de Aceptar que tengo pero no entra ni en el keydown ni en el keypress.
Se me hace muy raro que ocurra esto.
Lo más probable es que ese botón Aceptar es el que está interceptando el evento OnKeyPress. Cuando en un formulario hay un botón con su propiedad Default en true, la tecla ENTER la procesa ese botón (aun cuando no tenga su evento OnClick definido) sin dar oportunidad a ningún otro control a procesarla.

El problema es que procesar el ENTER en un control, habiendo un botón de default es contradictorio y tendrás que decidir entre cual de los dos comportamientos quieres.

// Saludos
Responder Con Cita
  #40  
Antiguo 30-04-2008
Nereida Nereida is offline
Miembro
 
Registrado: abr 2008
Posts: 34
Poder: 0
Nereida Va por buen camino
Talking

He hecho eso y por fin me va.
Ahora tengo que intentar arreglar el código pero vamos q ya me va
Muchisimas gracias ^_^


Saludos Buah, que contenta estoy pq es que encima lo necesitaba para un trabajo y ahora el programa se va a quedar de lujo.
Gracias otra vez ^_^

Última edición por Nereida fecha: 30-04-2008 a las 15:15:53.
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


La franja horaria es GMT +2. Ahora son las 11:51:42.


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