Delphi - Enter

 
Vista:

Enter

Publicado por Karla MArtinez (3 intervenciones) el 01/07/2008 00:37:34
Hola a todos tengo un problema y es el siguiente, y solo me pasa en una forma, cuando voy a escribir datos y al pasar el foco con el enter la aplicacion se me bloquea.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Enter

Publicado por pacopaz (104 intervenciones) el 01/07/2008 00:44:35
Fíjate en los botones que tienes en la forma, sobretodo si es modal.
Cuando tienes un botón 'default' (que por lo general es el 'Aceptar' o 'Ok') mandas a ejectutar alguna cosas, si pulsas el botón 'Enter'.
Quita de cualquier forma los 'botones default' para prevenir esto.
Si no, además checa los eventos 'OnKeyPressed' u 'OnKeyDown' u 'OnKeyUp' para crecar que no estés ejecutando alguna acción que se dispare con el enter chr(13) o #13.

Espero que te sirva.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Enter

Publicado por Karla MArtinez (3 intervenciones) el 01/07/2008 00:59:32
pacopaz gracias por contestar tan Rapido pero hice lo me indicastes y sigue con lo mismo...
Que puede ser...?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Enter

Publicado por pacopaz (104 intervenciones) el 01/07/2008 01:07:30
No pues ponle checkpoints a todo el módulo (a las entradas de cada procedure o function) a ver que es lo que hace al pulsar la tecla 'Enter'
Sinceramente, al no tener mayor información, no sé que pueda estar haciendo.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Enter

Publicado por Karla MArtinez (3 intervenciones) el 01/07/2008 01:22:27
Hola Nuevamente pacopaz, eso esta pasando porque tengo lo siguiente.
procedure TFVentas.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
begin
key := #0;
perform(WM_NEXTDLGCTL, 0, 0);
end;
end;

Para pasar el foco si esto lo dejo hasta aqui todo bien pero apenas le agrego este otro porcedimiento se me bloque, claro esto lo coloco en

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
Var
Puerto, Senal: String;
begin
Puerto:='LPT1:';
Senal := #27+'p0'+#100+#100;
aBrircAjon(Puerto, Senal);
If Key = Vk_f2 then
begin
ShowMessage('Usted Abrio el cajón...');
end
end;
No se que me falta por ahcer para que no se me bloquee
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Enter

Publicado por pacopaz (104 intervenciones) el 01/07/2008 19:52:12
Según veo, las formas desde donde estás 'cachando' la tecla pulsada son distintas y, a menos que FVentas sea MDI Child de Form1 no deberían ser procesos concurrentes.
El problema, seguramente, está en la comunicación con tu puerto Lpt1. Ahora, creo que también deberías prestar atención a donde pones tu procedimiento de abrircajon. Según entiendo debe estar dentro del if y no antes de él. Esto por que cada vez que pulses un botón tratará de abrir el cajón, lo cual podría estar haciendo que a cada rato se quiera abrir, con su fallo normal.
Espero que esto te ayude a seguir buscando el problema.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Enter

Publicado por Jorge Morales (2 intervenciones) el 02/07/2008 19:16:19
Hola Karla, solo una pregunta para descartar opciones,
¿tienes conectada la miniprinter?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar