Cuidado con las trampas del ActiveForm(276 palabras totales en este texto) (7879 lecturas)  Cuidado con las trampas del ActiveForm
Autor:
Mike Lewis
www.ml-consult.co.uk
Texto original:
-- Watch out for the ActiveForm trap --
http://www.ml-consult.co.uk/foxst-08.htm
Traducido para Portalfox por:
Ana María Bisbé York
amby@telefonica.net
Algunos buenos consejos a tener en mente cuando utilicemos la propiedad
ActiveForm.
Probablemente conoce que _Screen.ActiveForm contiene una referencia sobre
cualquier formulario que está activo en su aplicación. Puede sacar provecho de
esto para escribir código genérico. Por ejemplo, si desea una forma genérica
para cerrar el formulario actual, puede hacer lo siguiente:
_ Screen.ActiveForm.Release
Este código por ejemplo, se puede colocar en el procedimiento asociado con el
comando Cerrar del menú Ficheros.
Sin embargo, cuando no hay ningún formulario activo, cualquier referencia a _Screen.ActiveForm
va a producir un mensaje de error: “ACTIVEFORM no es un objeto” ("ACTIVEFORM is
not an object"). Entonces si el usuario selecciona el comando Cerrar cuando no
hay formulario activo que cerrar, ocurrirá un error.
Puede verificar esta condición utilizando la función TYPE(). De esa manera va
a devolver U (de indefinido - undefined), si no existen formularios abiertos.
Alternativamente, se puede verificar _SCREEN.FormCount, el que contendrá cero
cuando no hay formularios activos.
En el caso del menú de comandos, un buen lugar para colocar esta verificación
será en la cláusula Saltar si (Skip for) del elemento del menú (ejemplo) De esta
forma el comando aparecerá en un tono grisáceo indicando que en ese momento está
sin efecto. Si usa el generador de Menú, puede colocar la condición para el
“Saltar si” en la ventana de texto de la opción de condición para el salto. La
encontrará oprimiendo del botón de la extrema derecha.
Mike Lewis Consultants Ltd. Noviembre 1999.
|