HOLA AL FORO YO NUEVAMENTE CON DILEMAS
MIREN TENGO UN DIALOGO DENTRO UN FOLDER CON DOS PESTAÑAS,, EN CADA UNA DE ELLAS UNOS GET, BROWSE, ETC..
EL PROBLEMA ES Q CUANDO PINCHO LAS SOLAPAS DE LA SEGUNDA PESTAÑA DEL FOLDER SE EJECUTA LA INSTRUCCION VALID DEL PRIMER GET,, ES RARO ES,, AL PRINCIPIO LO HACIA EN LA PRIMERA PESTAÑA DEL FOLDER EN LA VALID DEL PRIMER GET (Ojo las dos pestañas del folder tienen los mismo objetos,,),, PERO LO SOLUCIONES DANDOLE EL SETFOCUS AL GET CON ON INIT del dialogo...
la pregunta del millon como le digo que cuando pinche la segunda pestaña del folder el get que tiene el valid reciba el foco..
GRACIAS DE ANTEMANO
AYUDA CON FOLDER
-
- Posts: 12
- Joined: Thu Aug 31, 2006 6:25 pm
Ayuda con Folder
El folder tiene la clausula ON CHANGE que sirve para saber cuando se cambia de pestaña.
Ejemplo:
ON CHANGE ( IIf( oFolder:nOption == 1, oGet1:SetFocus(), oGet2:SetFocus() )
Esto posicionaria el foco en el objeto oGet1 si esta en la solapa 1 y si esta en otra en el objeto oGet2.
Ejemplo:
ON CHANGE ( IIf( oFolder:nOption == 1, oGet1:SetFocus(), oGet2:SetFocus() )
Esto posicionaria el foco en el objeto oGet1 si esta en la solapa 1 y si esta en otra en el objeto oGet2.
-
- Posts: 12
- Joined: Thu Aug 31, 2006 6:25 pm
Ayuda con Folder
El folder tiene la clausula ON CHANGE que sirve para saber cuando se cambia de pestaña.
Ejemplo:
ON CHANGE ( IIf( oFolder:nOption == 1, oGet1:SetFocus(), oGet2:SetFocus() )
Esto posicionaria el foco en el objeto oGet1 si esta en la solapa 1 y si esta en otra en el objeto oGet2.
Ejemplo:
ON CHANGE ( IIf( oFolder:nOption == 1, oGet1:SetFocus(), oGet2:SetFocus() )
Esto posicionaria el foco en el objeto oGet1 si esta en la solapa 1 y si esta en otra en el objeto oGet2.
AYUDA CON FOLDER
EL PROBLEMA DEBE SER OTRO APLIQUE LO Q DIJISTE Y AUNQUE DA EL FOCO AL GET,, AUN SE SIGUE EJECUTANDO EL VALID DEL GET,, Y NOSE PORQUE... SE SUPONE Q EL VALID SOLO DEBERIA VALIDAR LA SALIDA DEL GET VERDAD,,
ALGUNA SUGERENCIA
GRACIAS
ALGUNA SUGERENCIA
GRACIAS
Podrías modificar la clase TGET para que por defecto se ejecute el VALID, pero que mediante un nuevo DATA, puesto a 'false', éste no se ejecute.
Me explico, podrías añadir:
DATA lValidar AS LOGIC INIT .T.
Después en el METHOD lValid()
cambiar:
if ::oGet:BadDate
Tone( 100, 3 )
return .f.
else
...
por:
if ::oGet:BadDate
Tone( 100, 3 )
return .f.
elseif !::lValidar
return .T.
else
...
De esta manera, el Valid sólo se ejecuta cuando ::lValidar está en .T. (Defecto)
Finalmente, podrías poner en el ON CHANGE de la 1ª pesataña oGet:lValidar := .F., y en el de la 2ª oGet:lValidar := .T. o algo así, de manera que cuando pinchas en la segunda pestaña el Get en cuestión no se valida y cuando vuelves a la primera se vuelve a activar la validación del Get.
Debería funcionar, a no ser que el método de validación del GET se ejecute antes que el ON CHANGE del Folder, en cuyo caso habrá que poner lValidar := .F. en un lugar más apropiado, o sujeto a condiciones más específicas.
Por probar no pierdfes nada.
Un saludo
Me explico, podrías añadir:
DATA lValidar AS LOGIC INIT .T.
Después en el METHOD lValid()
cambiar:
if ::oGet:BadDate
Tone( 100, 3 )
return .f.
else
...
por:
if ::oGet:BadDate
Tone( 100, 3 )
return .f.
elseif !::lValidar
return .T.
else
...
De esta manera, el Valid sólo se ejecuta cuando ::lValidar está en .T. (Defecto)
Finalmente, podrías poner en el ON CHANGE de la 1ª pesataña oGet:lValidar := .F., y en el de la 2ª oGet:lValidar := .T. o algo así, de manera que cuando pinchas en la segunda pestaña el Get en cuestión no se valida y cuando vuelves a la primera se vuelve a activar la validación del Get.
Debería funcionar, a no ser que el método de validación del GET se ejecute antes que el ON CHANGE del Folder, en cuyo caso habrá que poner lValidar := .F. en un lugar más apropiado, o sujeto a condiciones más específicas.
Por probar no pierdfes nada.
Un saludo
Nos Gusta Programar