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-08-2006
beatriz g beatriz g is offline
Miembro
 
Registrado: ago 2006
Posts: 21
Poder: 0
beatriz g Va por buen camino
cambiar el foco de control

Hola, tengo un campo Tedit con un limite de caracteres, quiero saber como puedo pasar el foco de control al siguiente edit cuando se este Tedit se llene por completo.
Gracias otrar vez.
Responder Con Cita
  #2  
Antiguo 23-08-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Hola nuevamente Beatriz

Supongo que habrás visto que el edit tiene la propiedad MaxLength, allí pones el máximo número de carácteres que quieras que se puedan escribir en el edit, luego en el evento OnKeyDown del edit puedes poner algo así:

Código Delphi [-]
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;Shift: TShiftState);
begin
  if Length(TEdit(Sender).Text) = TEdit(Sender).MaxLength then 
     SelectNext(TEdit(Sender), True, True);
end;

Esto te sirve para hacer el código en común para varios edits, comparas la longitud del edit en el que estés escribiendo si coincide con el valor del maxlength, si coincide llamas a la función SelectNext que pasa el foco al siguiente control coincidiendo con el orden definido en el TabOrder. seguramente habria que pulirlo un poco, pero la idea es esta.

Espero te sirva.

Saludos
Responder Con Cita
  #3  
Antiguo 23-08-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
OFFTOPIC: Ese comportamiento lo veo lógico para escribir un número de serie (al estilo de windows), para una aplicación normal, yo usaría la tecla enter para saltar de un edit a otro (if key = VK_RETURN THEN selectnext....)

Saludos y espero sirva de algo.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 23-08-2006
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
Yo diría, para cualquier dato de longitud fija y hay muchos casos así: códigos de productos, paises, clientes, etc, etc, etc. y es de mucha ayuda al tecleador, poder pasar al siguiente control en automático.

// Saludos
Responder Con Cita
  #5  
Antiguo 23-08-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Será que no uso esa filosofía.

Para códigos de las facturas y albaranes, uso el formato F00023/2005, por ejemplo, pero el usuario solo debe escribir "23" al pulsar intro se transforma en F00023/2006. Si desea una factura de otro año, solo tiene que escribir 23/05, al pulsar intro ya se transforma.

De momento no me topado con un caso en el que tenga que escribir todas las letras del código, pero puede presentarse.

Al ver su método, directamente pensé: "el usuario se equivoca y pulsa una letra de más en el primer Edit y el error se propaga hacia los demás".

Usando la tecla Enter solamente debe corregir un Edit.

Saludos y gracias por añadir ese escenario roman.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 23-08-2006
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Yo sí utilizaría el Enter para autocompletar un Edit, pero no para cambiarlo al siguiente.
__________________

Responder Con Cita
  #7  
Antiguo 24-08-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Según parece... sobre gustos... los colores jejeje.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #8  
Antiguo 24-08-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
No sólo sobre gustos, sino que tambien por necesidades opino yo. Así com ha comentado Roman:

Cita:
Empezado por Roman
Yo diría, para cualquier dato de longitud fija y hay muchos casos así: códigos de productos, paises, clientes, etc, etc, etc. y es de mucha ayuda al tecleador, poder pasar al siguiente control en automático.
En mi trabajo, para los clientes para los que desarrollo, los datos que tienen que meter en las aplicaciones generalmente son datos de longitud fija. Y nos hemos creado componentes edits nuevos que entre otras propiedades tienen el autonext que hace básicamente lo que yo puse en el primer post.
Yo entiendo que para este caso nuestro en particular es lo más cómodo, porque la gente básicamente se dedica a teclear los datos y al final presiona intro y se guarda todo y no hay que ir pulsando intro cada vez ni nada más.
Obviamente para cualquier otro tipo de aplicación esto no sirve o no es cómodo simplemente porque los datos no son de longitud fija. En ese caso si siguen un patrón como el de las factura y albaranes que cuenta Lepe, su método de autocompletar es absolutamente válido. Pero ahora mismo no se me ocurren ejemplos (la noche ha sido larga y no estoy muy despierto todavía) en los que no tampoco sirve el autocompletar y no podemos hacer nada de todo lo que hemos hablado.

Así que bueno, para terminar el rollo, en casos depende del gusto de cada uno y en otros la necesidad y/o comodidad harán que lo hagamos de una manera u otra, como todo en esta vida, no?

Saludos
Responder Con Cita
  #9  
Antiguo 24-08-2006
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 Bicho
entre otras propiedades tienen el autonext que hace básicamente lo que yo puse en el primer post.
En mi caso se llama FocusNext y hace lo mismo De hecho, solía poner en pareja un Edit y un DBLookupComboBox para que el usuario pudiera escoger un valor de la lista en caso de no recordar el código. Como ambos controles deben estar sincronizados y tenía tantos de ellos, en mi derivado de TEdit le aumenté una propiedad que apunta al LookupCombo asociado y la componente se encarga de toda la sincronización.

// Saludos
Responder Con Cita
  #10  
Antiguo 24-08-2006
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Cita:
Empezado por Roman
En mi caso se llama FocusNext y hace lo mismo De hecho, solía poner en pareja un Edit y un DBLookupComboBox para que el usuario pudiera escoger un valor de la lista en caso de no recordar el código. Como ambos controles deben estar sincronizados y tenía tantos de ellos, en mi derivado de TEdit le aumenté una propiedad que apunta al LookupCombo asociado y la componente se encarga de toda la sincronización.
El nuestro algo parecido, tiene asociado además de un label un bitbutton que al pulsarlo lanza un formulario con todos los codigos posibles (según un filtro previo) más algún dato para ayudar en la búsqueda, con un campo de búsqueda de cualquier caracter en cualquier posición de cualquier campo mostrado en la ventana de búsqueda. En la otra empresa en que estuve, ese browser estava creado como componente y yo hice el componente que lo asociaba a un labeledit. En la empresa en que estoy ahora ya estába creado.

Saludos
Responder Con Cita
  #11  
Antiguo 24-08-2006
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Extraño a 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
Mover el Foco al Siguiente Control con ENTER onlytk Varios 5 27-10-2005 20:33:13
como se que control tenia el foco JavierO Varios 7 25-08-2005 02:47:17
cambiar color foco Rabata Varios 1 09-09-2004 15:48:35
Cambiar foco de formulario jollodel API de Windows 6 02-08-2004 18:59:33
Cambiar Foco en messagebox. BECERRA OOP 2 15-12-2003 09:15:34


La franja horaria es GMT +2. Ahora son las 16:08:33.


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