Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   evento onchange del edit (https://www.clubdelphi.com/foros/showthread.php?t=74213)

jfrancho 06-06-2011 05:28:51

evento onchange del edit
 
Hola colegas: tengo un problema con el evento onchange del edit. cuando leo un dato a través del lector de código de barras quiero que se active el evento onclick de un botón para que me realice una búsqueda, pero resulta ser que el lector de código de barras lee el dato pero el edit toma el primer digito y se activa el evento onchange de este, naturalmente que no encuentra el resultado esparado.Como soluciono esto ya que no quiero que el usuario presione ninguna tecla.(quiero ingresar el dato como en el supermercado)Desde ya muchas gracias.-

oscarac 06-06-2011 05:59:42

estoy casi seguro que cuando se lee codigos de barras desde una lectora te manda el (ENTER) o el char(13)

podrias usar el evento KeyDown y preguntar si la tecla presionada es ENTER y ahi recien procesar lo que desees

newtron 06-06-2011 09:04:27

Cita:

Empezado por oscarac (Mensaje 402682)
estoy casi seguro que cuando se lee codigos de barras desde una lectora te manda el (ENTER) o el char(13)

Yo te confirmo que es así, mientras que no se configure de otra manera las pistolas lectoras de códigos de barras envían un ENTER al final del código leido, con eso puedes determinar qué quieres hacer cuando lo lea.

Saludos

martinartaza 06-06-2011 14:26:28

Debe usar el evento onkeypress
 
usalo de la siguiente manera.


Código Delphi [-]
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key =#13 then
   begin
      Button1.OnClick(self);
   end;
end;

Si estás trabajando a distancia y el operador no sabe como configurar el lector de código de barra para que tire un enter, puede usar un timer, cualquier cosa avisame.

Martin, Artaza.

jfrancho 07-06-2011 04:48:23

evento onchange del edit
 
Gracias por tu respuesta Martín Artaza, el problema se suscita porque el lector de código de barras, no toma el ENTER, entonces queda con el foco en el edit.
como programo el lector de código de barras para que tome el ENTER, es un METROLOGIC ms9250, desde ya muchas gracias.-

martinartaza 07-06-2011 05:49:23

hace poquito lo resolvi con un timer.
 
buscar por el foro.
Pero estoy dudando si lo postee.
Lo que recuerdo que hice, fue tirar un Timer, darle a la propieda time = 500 y enable:= false, luego programa el evento ontimer del mismo, te muestro.

Código Delphi [-]
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
// cuando se presiona una tecla se activa el timer y da 500 milisegundo
para que termine de pasar los datos.
Timer1.Enabled:= true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
{
 ya se cargo los datos en el tedit
 puedes poner el foco en el proximo
 componente o agregarlo a una grilla
 o lo que quieras pero luego debes
 poner
}
Timer1.Enabled:= false;
end;

Acabo de recordar que pregunta hace 2 o 3 semanas como hacer para que una aplicacion mande enter o sea para que mi aplicación aprieta la tecla enter y eso era para dar una solución un poco más elegante a lo que acabo de escribirte.
Estaba teniendo el mismo problema pero en mi caso, no tengo acceso al lector, porque el programa lo hago a distancia.

Bueno, espero que te sirva.

newtron 07-06-2011 09:17:27

Cita:

Empezado por jfrancho (Mensaje 402830)
Gracias por tu respuesta Martín Artaza, el problema se suscita porque el lector de código de barras, no toma el ENTER, entonces queda con el foco en el edit.
como programo el lector de código de barras para que tome el ENTER, es un METROLOGIC ms9250, desde ya muchas gracias.-

¿Seguro que el problema es del lector y no de tu software? Te lo digo porque a no ser que lo controles en el edit aunque pulses ENTER no salta de campo, el salto de campo es con TAB.

Prueba a abrir el notepad y leer algo con el lector y ahí si que verás realmente si salta o no salta de linea.

Saludos

jfrancho 07-06-2011 19:57:38

evento onchange del edit
 
Ok: Matin, lo codifiqué y funciona de diez.Muchas gracias.-:D


La franja horaria es GMT +2. Ahora son las 00:22:15.

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