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
  #1  
Antiguo 23-05-2011
Rofocale Rofocale is offline
Miembro
 
Registrado: mar 2010
Posts: 182
Poder: 15
Rofocale Va por buen camino
ciclo infinito con enter.. como lo soluciono ?

Código Delphi [-]
If (Key = VK_Return) then
               begin
                  txtcodigo.Text:= (''+idciu+'');
                  BuscaArticulo;
                  codebusqgrid.Visible:=False;
              end;

en buscar articulo al final tengo buttonagregar.setfocus para que se situe en el boton y poder yo apretar enter y agregar el articulo sin necesitad de utilizar el mouse.. pero el problema es que la rutina ahi como se ve es que si apreto enter me busca un articulo dependendiendo de que si txtcodigo ya tiene el codigo que se paso..

y a la vez cuando aprieto el boton con enter el articulo se agrega al grid normal pero vuelve a buscar el articulo y a posicionar el boton en focus..

ya que estoy utilizando el enter para las 2 cosas..

no se como hacerlo para que me funcione bien ... como lo haria ?

cuando tengo el codigo en el txt aprieto enter me busca el articulo y se posiciona el focus en el boton y de ahi aprieto enter y este es agregado al grid y al final se limpian los txt y el focus vuelve al edit.txt


alguien me ayuda ?
Responder Con Cita
  #2  
Antiguo 23-05-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
Cita:
Empezado por Rofocale Ver Mensaje
pero el problema es que la rutina ahi como se ve es que si apreto enter me busca un articulo dependendiendo de que si txtcodigo ya tiene el codigo que se paso..

no entiendo esto.. puedes explicar mejor?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #3  
Antiguo 23-05-2011
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
en el evento onKeyPress del TxtCodigo puedes poner esto

Código Delphi [-]
If Key =#13 Then  
   Begin
             BuscaArticulo;
             btn_Agrega.SetFocus;  
   End;


en el evento del boton puedes poner algo

Código Delphi [-]
// Agrega articulo al Grid....
...
TxtCodigo.Clear
TxtCodigo.SetFocus;


espero que asi sea

Salu2


__________________
BlueSteel
Responder Con Cita
  #4  
Antiguo 23-05-2011
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 Rofocale.

El código que adjuntas, ¿ Al evento OnKeyDown de que componente está asignado ?

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 23-05-2011
Rofocale Rofocale is offline
Miembro
 
Registrado: mar 2010
Posts: 182
Poder: 15
Rofocale Va por buen camino
se pone el codigo en el edit apreto enter busca el articulo aparecen en los demas edits los datos y posiciona el focus en el boton agregar

ahora al darle enter el boton agrega los datos al grid pero el focus permanece en el y se busca de nuevo el mismo articulo es como si fuera infinito

el enter esta haciendo 2 veces el trabajo a la vez como si el focus siempre estuviera en el edit y al apretar enter este busca el articulo y al apretar enter otra ves el boton agrega y busca y devuelve el focus al boton

espero haberme explicado
Responder Con Cita
  #6  
Antiguo 23-05-2011
Rofocale Rofocale is offline
Miembro
 
Registrado: mar 2010
Posts: 182
Poder: 15
Rofocale Va por buen camino
lo he puesto en el evento onkeyup del edit txtcodigo
Responder Con Cita
  #7  
Antiguo 23-05-2011
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.

¿ Podrías poner el código del evento OnClick del TButton ?

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 23-05-2011
Rofocale Rofocale is offline
Miembro
 
Registrado: mar 2010
Posts: 182
Poder: 15
Rofocale Va por buen camino
Código Delphi [-]
                agregar;
                Total;
                txtCodigo.Clear;
                txtDescripc.Clear;
                txtPrecio.Clear;
                txtCantidad.Clear;
                btnAgregar.Enabled := False;
                btnEliminar.Enabled := True;
                btnPagar.Enabled := true;
                txtcodigo.setfocus

bueno lo solucione quitando txtcodigo.setfocus eso producia el bucle infinito.. pero ahora como puedo hacer para que al agregar este me devuelva el focus al edit

osea pongo el codigo y apreto enter busca y pone el focus en el boton apreto enter llena el grid.. y aqui tiene que devolver el focus al edit... ya que no devuelve el focus al edit...


sugerencias?
Responder Con Cita
  #9  
Antiguo 23-05-2011
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 Rofocale.

En forma muy simplificada traté de reproducir la situación que creo haber entendido.
En la prueba no me provoca ciclo infinito, te pongo el código por si te da alguna idea o para que me aclares si te interpreté mal.

Código Delphi [-]
...
procedure TForm1.BuscarArticulo;
begin
  Panel1.Caption:= 'Buscar articulo';
  btn_Agrega.SetFocus;  // Foco en TButton
end;

procedure TForm1.AgregarArticulo;
begin
  Panel1.Caption:= 'Agregar articulo';
end;

procedure TForm1.btn_AgregaClick(Sender: TObject);
begin
  AgregarArticulo;
  txtcodigo.SetFocus;  // Foco en TEdit
end;

procedure TForm1.txtcodigoKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Key = VK_RETURN) then
    BuscarArticulo;
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #10  
Antiguo 23-05-2011
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por Rofocale Ver Mensaje
sugerencias?
Plantear con más calma, claridad y extensión las preguntas, mostrar partes más completas de tu código. Y, si no es mucho pedir, usar comas y acentos.

Todo eso ayudará a que te entendamos mejor. ¿Cuál es la prisa? Respira, redacta la duda como te sugiero, léela antes de enviarla para ver si no te faltó dar una pieza de información importante, y entonces la publicas. Así es más probable que el problema quede resuelto pronto.

Por ir de prisa llegarás en último lugar.

Un tranquilo saludo.

Al.
Responder Con Cita
  #11  
Antiguo 23-05-2011
Rofocale Rofocale is offline
Miembro
 
Registrado: mar 2010
Posts: 182
Poder: 15
Rofocale Va por buen camino
Bueno asi lo tenia antes... ahora me di cuenta que si pongo este codigo
Código Delphi [-]
       If (Key = VK_Return) then
               begin
                  txtcodigo.Text:= (''+idciu+'');
                  BuscaArticulo;
                  codebusqgrid.Visible:=False;

en onkeyup, entonces ahi es el problema de que los datos permanecen en el edit con el foco en el boton otra ves...

en cambio si lo pongo en onkey down si funciona.. a que se debe ?

por otro lado tengo otro problema, ese mismo codigo en el evento onkeyup si funcionaba la parte de
Código Delphi [-]
codebusqgrid.Visible:=False;
que es un grid que muestro al teclear para autocompletar los datos.
cuando apretaba enter este grid desaparecia, ahora que he movido el codigo al evento onkeydown el grid no desaparece...

a que se debe ?
Responder Con Cita
  #12  
Antiguo 28-05-2011
luchifer luchifer is offline
No confirmado
 
Registrado: jul 2007
Ubicación: Santa Cruz - Bolivia
Posts: 50
Poder: 0
luchifer Va por buen camino
Una vez trate de hacer un bucle infinito para un sorteo del cual debia salir cuando presionase una tecla, lamentablemente no pude y la mejor solucion que encontre fue la siguiente:

Código Delphi [-]
 
procedure TFsorteo.SpeedButton3Click(Sender: TObject);
var regis, contad:integer;
    sigue:boolean;
begin
   contad:=qconsulta.RecordCount;
   regis:=random(contad);
   if regis<1 then regis:=random(contad);
   qconsulta.First;
   contad:=1;
   sigue:=true;
   while sigue do
   begin
      qconsulta.Next;
      contad:=contad+1;
      if contad=regis then sigue:=false;
   end;
   dbg_clien.SetFocus;
end;

Encuentro un numero al azar comprendido entre el numero total de registros de la tabla y voy a dicho registro

Última edición por ecfisa fecha: 28-05-2011 a las 07:18:17. Razón: Etiquetas [DELPHI] [/DELPHI]
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
Ejemplo de ciclo o bucle infinito ecfisa Humor 4 09-07-2010 17:44:59
como actulizar un tabla desde un store procedure como un ciclo.. uper Firebird e Interbase 1 14-12-2005 14:43:03
crear label por codigo en un ciclo for.. las beses de el ciclo sakuragi .NET 3 29-09-2005 05:04:29
Como soluciono esto? jam888 Varios 3 24-11-2004 16:33:02
Como soluciono este problema que detallo a continuacion tulio Impresión 3 29-03-2004 23:19:32


La franja horaria es GMT +2. Ahora son las 01:04:52.


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