FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
|||
|
|||
Controles
Amigos, estoy dandole vueltas a un tema que no puedo definir
Tengo unos controles (puede ser cualquiera) para introducir datos, con una validacion que obliga a introducir un dato, sino no puede salir (onExit). pero si el usuario se arrepiente debo dejarlo volver a los controles anteriores o pulsar el boton de cancelar, pero no debo dejarlo continuar con la carga, sin completar los datos en su totalidad. Como puedo detectar cuando pulsa sobre un control anterior, o posterior o sobre un boton ? (en este caso solo cancelar) No quiero hacerlo al final, antes de grabar verificar que todos los controles esten correctos, quiero hacerlo a medida que lo carga. Gracias a todos |
#2
|
||||
|
||||
No se si entendi bien, pero creo que quieres hacer una validacion individual para cada edit por ejemplo y no hacerlo en el boton grabar, si es asi la puedes hacer en el evento onexit de cada control, o sea la vaidas cuando intenta salir del control, cuando todos los controles esten validados recien activas el boton grabar, de lo contrario puede dejar activo el boton cancelar.
Espero que te sirva y yo haya captado la idea, si no es asi, pon algun ejemplo y te ayudo con gusto.
__________________
\_--> NoShY <--_/ |
#3
|
|||
|
|||
Controles
No es eso. En cada control estoy validando y no puede sarlir salvo que introduzca un dato. El tema es que si quierecancelar o ir a los controles anteriores no puede hacerlos por el valid en el onExit. y es esos casos, solo en esos, si tiene que salir, pero no debe poder ir a los controles siguientes si no introduce un dato. Se entiende.
Lo que necesito es que en el caso de que sea el boton de cancelar o en los casos de que sean controles anteriores pueda salir del control, pero no pueda avanzar. Tengo que detectar que control pulsa para saber si lo dejo salir o no. Espero que se entienda |
#4
|
||||
|
||||
deberias ver que control focusea, en el evento onExit fijate a donde quiere ir...
__________________
\_--> NoShY <--_/ Última edición por noshy fecha: 04-11-2010 a las 16:33:16. |
#5
|
|||
|
|||
controles
Ok.
Estaba intentando hacer algo asi, tambien queria probar con ControlState. pero me devuelve un error. Muchas gracias |
#7
|
|||
|
|||
Controles
Gracias
Tambien puede ser una buena alternativa, se entiende perfectamente. Gracias a todos. |
#8
|
||||
|
||||
Otra idea:
El formulario tiene una propiedad ActiveControl, cuyo valor es el control activo en cada momento. En el evento OnExit de un control, ActiveControl contiene ya el control al que se va a desplazar el foco mientras que (Sender as TWinControl) contiene el control que se está abandonando. Entonces, podemos comparar la propiedad TabOrder de ambos controles para saber si estamos avanzando o retrocediendo:
// Saludos |
#9
|
|||
|
|||
Contorles
Gracias por las ideas, con ellas pude resolver el problema decentemente !!!
|
#10
|
||||
|
||||
dao_ar:
Siempre es bueno que aclares cuál fue tu solución final para que otros con dudas similares puedan aprovecharla. // Saludos |
#11
|
|||
|
|||
Controles
Ok.
Lo solucione con preguntando a donde va el foco (Noshy). if (not canterior1.Focused) or (not canterior2.Focused) then ... Tambien anduvo la idea de Roman if ((Sender as TEdit).Text = '') and ((Sender as TWinControl).TabOrder < ActiveControl.TabOrder) then .. pero la otra es mas simple. Y como no dejo muchas alternativas donde ir, solo para los anteriores o Cancelar se puede controlar con la alternativa de Noshy. Gracias a todos. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
nombrar controles | Johnny Q | Varios | 6 | 30-06-2005 00:38:26 |
Controles ActiveX | senpiterno | Varios | 12 | 27-09-2004 20:14:47 |
Alineación de controles | roman | OOP | 9 | 24-08-2004 00:00:57 |
controles bd o no? | walrus | Conexión con bases de datos | 1 | 04-08-2004 18:01:33 |
Parpadeo de controles | roman | Varios | 11 | 03-04-2004 07:56:59 |
|