Tema: Por que
Ver Mensaje Individual
  #6  
Antiguo 25-03-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Reputación: 25
egostar Va camino a la fama
Cita:
Empezado por PabloZZZ Ver Mensaje
Pero no puedo estar poniendo la condición en cada TEdit.. para eso puse la condición en el OnKeyDown del form! para que sea global.. teoricamente.. se procesa antes que todos los demás componentes.. no?
Cita:
Empezado por gluglu Ver Mensaje
Se procesa antes el evento OnKeyDown del Form que el del TEdit. Correcto.

Pero creo estar casi seguro que no causa ningún efecto poner Key := 0 en el evento del Form, sino que lo tienes que poner en el evento del TEdit para que si que cause efecto el Key := 0.

El evento OnKeyDown del Form sirve para 'detectar' pulsaciones del teclado en el Form antes que en los Controles individuales.
Hola, de entrada el código de la tecla '+' es 187 y tú estas buscando 107 y 87, ahora, gluglu esta en lo cierto, el Key := 0 no tiene el efecto que deseas en ese evento, para eso necesitas usar el evento OnKeyPress de esta forma:

Código Delphi [-]
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if Key = '+' then Key := #0;
end;

Dices que no quieres hacer esto para cada uno de tus Edit's, pues porque crees que Delphi nos hace fácil la vida, genera ese evento en cualquier Edit y después asignalo a todos los demas Edit's. Así de fácil......

Salud OS

Edito: Por cierto, trata de colocar un titulo mas descriptivo ya que eso de "Por que" no dice nada.......
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney

Última edición por egostar fecha: 25-03-2008 a las 19:11:53.
Responder Con Cita