Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   como se que control tenia el foco (https://www.clubdelphi.com/foros/showthread.php?t=24513)

JavierO 24-08-2005 00:26:58

como se que control tenia el foco
 
Hola A todos:

mi situacion es la siguente.

debo abrir una nueva forma dependiendo de que dbedit tenia el foco antes de ser presionado un boton que me muestra la información.

es decir...

si yo estaba parado en el dbedit de productos y yo presiono el boton de listado me muetrre informacion de listado de productos ó
si yo estaba parado en el dbedit de equipos y presiono el boton de listado(el mismo boton ya que seria general) me abra un listado referente a los tipos de equipos que se tienen.

si alguien puede darme una orientacion de como debo de hacerlo, estare agredecido.

Saludos

ContraVeneno 24-08-2005 00:59:37

se me ocurre que a cada dbedit le pongas un número de ID en la propiedad TAG... y en el evento OnEnter del dbedit hagas algo así como:
Código Delphi [-]
 btnListado.Tag=(sender as dbedit).Tag 
 //todos los dbedit realizen el mismo evento.

y para finalizar en el evento click del botón del listado:
Código Delphi [-]
 case btnListado.Tag of
 1:
   //mostrar tal cosa
 2:
  //mostrar otra cosa
 ...
end; //case

ring any bells?? :D

Saludos

roman 24-08-2005 04:50:23

¿Y si al momento de presionar el botón el foco no estaba en ninguno de los dos edits?

¿Y si el usuario, aún teniendo el foco en el edit de productos, desea abrir el listado de equipos?

En mi opinión convendría revisar el diseño de la interfaz. Un botón de menos no es ningún ahorro significativo de recursos y sí hace confusa la interfaz para el usuario y complica- como se ve -la programación.

Yo pondría un botón para el listado de productos y otro para el listado de equipos; incluso si el formulaio que se abre es el mismo con distintos parámetros.

En el peor de los casos pondría dos radioboxes para que el usuario escoja cual listado abrir al oprimir el botón. Será más claro para el usuario. Pero aún así, fuerza click innecesarios.

// Saludos

vtdeleon 24-08-2005 14:02:46

Saludos

Cita:

Empezado por roman
¿Y si al momento de presionar el botón el foco no estaba en ninguno de los dos edits?

Podria usar un SpeedButton:), ya que este no toma el foco
Aun asi, estoy de acuerdo con roman

Post

dec 24-08-2005 14:57:58

Hola,

A mí se me ocurrieron un par de peregrinas soluciones al problema, pero, cuando iba a publicarlas Contraveneno había aportado su solución, la cual era a todas luces mejor que la que yo pensaba proponer. Por otro lado coincido con roman: es probable que en este caso un par de botones o botones "radio" o algo, en fin, debería permitir al usuario abrir el formulario que le fuera menester y no confundirle, como creo que ocurriría si se implementa lo que se propone: a uno le puede parecer una buena solución, pero, teniendo en cuenta que no se gana nada y que el usuario puede no verlo así opino con roman que el tema habría que solucionarlo de otro modo.

JavierO 24-08-2005 20:59:06

Gracias a todos por sus opiniones.

El detalle de que porque lo estoy haciendo así, es debido a que tengo que hacer una versión de escritorio (D6 con Access 2000) de un sistema que hecho con Oracle Forms y solo se va a implementar las pantallas basicas para operar en caso de falla de comunicacion con localidades remotas, y se requiere que tenga exactamente la misma funcionalidad.

Por tanto alli hay algunos listados que cuando se presiona el boton "listados" dependiendo de donde se encuentre parado muestra el listado correspondiente,

si esta parado en un dbedit que no deba mostrar listado y se presiona el boton, no debe hacer nada.

si el usuario, aún teniendo el foco en el edit de productos, desea abrir el listado de equipos..... debe colocarse en el dbedit de equipos y presionar el boton.

Saludos y gracias por sus aportaciones que puedan brindarme.

roman 24-08-2005 21:16:28

Cita:

Empezado por JavierO
y se requiere que tenga exactamente la misma funcionalidad.

Entonces ni hablar, al cliente lo que pida

// Saludos

dec 25-08-2005 02:47:17

Hola,

Cita:

Empezado por roman
Entonces ni hablar, al cliente lo que pida

Hombre, acaso las cursivas indiquen que al cliente se le puede hablar y comunicar lo que pensamos: ¿porqué no comentarle al cliente que las cosas podrían muy bien ser de otra manera? ¿Quién sabe si no se vendrá a razones si lo que le decimos parece razonable? Habrá que probar al menos...


La franja horaria es GMT +2. Ahora son las 02:26:16.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi