estoy haciendo una clase generica para controlar las tareas basicas de un formulario para mantenimiento de datos (buscar, mover, etc..) de tal modo que adjuntando esa clase a un formulario, practicamente ya esta hecho casi todo. El formulario que incluye esta clase tiene un menu tal que
registro movimiento
------------------- ------------------
Nuevo Primer registro <home>
Editar Anterior <up>
Grabar Siguiente
etc... Ultimo registro
¿Como puedo referirme a las subopciones para activar desactivar (enabled)?
Para bloquear un button desde la clase hago
frm.controls("btnNew").Enabled = FALSE
Me gustaria hacer lo mismo con los menus. Actualmente lo que hago es llamar a una FUNCTION Private que me he hecho
setItem("mnuNew").Enabled = FALSE
PRIVATE FUNCTION setItem(opcion AS String) AS Menu
' Nos proporciona un objeto menu para referenciar la opcion con la que
' queremos trabajar (cambiar propiedad enable, etc.)
DIM hmnu AS Menu
DIM hsubmnu AS Menu
DIM encontrado AS Menu
FOR EACH hmnu IN frm.Menus ' frm es una variable publica de la clase (Formulario contenedor)
IF hmnu.Name = opcion
encontrado = hmnu ' Es una opcion de menu de primer nivel
EXIT
ENDIF
IF hmnu.Children.Count > 0
FOR EACH hsubmnu IN hmnu.Children
IF hsubmnu.Name = opcion
encontrado = hsubmnu ' Es una opcion de menu de 2º nivel (submenu)
EXIT
ENDIF
NEXT
ENDIF
NEXT
RETURN encontrado
END
' Nos proporciona un objeto menu para referenciar la opcion con la que
' queremos trabajar (cambiar propiedad enable, etc.)
DIM hmnu AS Menu
DIM hsubmnu AS Menu
DIM encontrado AS Menu
FOR EACH hmnu IN frm.Menus ' frm es una variable publica de la clase (Formulario contenedor)
IF hmnu.Name = opcion
encontrado = hmnu ' Es una opcion de menu de primer nivel
EXIT
ENDIF
IF hmnu.Children.Count > 0
FOR EACH hsubmnu IN hmnu.Children
IF hsubmnu.Name = opcion
encontrado = hsubmnu ' Es una opcion de menu de 2º nivel (submenu)
EXIT
ENDIF
NEXT
ENDIF
NEXT
RETURN encontrado
END
La pregunta es : ¿Existe un modo de referirse a un submenu como
formulario.Menus["mnuRec"].Children["mnuNew"].Enabled = TRUE
o algo parecido?
Agradecido por la cantidad de lineas de codigo que ahorrais/amos con este foro.
Felicidades por lo que estas haciendo Soplo.
Feliz Navidad a todos.
Antonio