Jose,
MENUITEM oMenuItem CAPTION "&Añadir" ACTION ::AddNew( oSender)
Y luego oMenuItem:Disbled()
Te puede ser muy útil también la clasula WHEN del MENUITEM
#xcommand MENUITEM [ <oItem> <x: CAPTION,TEXT> ] <cText> [ <action: ACTION,
ONCLICK, ON CLICK> <OnClick> ] [ MENU <oSubMenu> ] ;
[ <lDisabled: DISABLED> ] ;
[ <lChecked: CHECKED> ] ;
[ <lGrayed: GRAYED> ] ;
[ <lHilited: HILITED> ] ;
[ <lDefault: DEFAULT> ] ;
[ WHEN <bWhen> ] ;
[ BITMAP <cBitmap> ] ;
[ MESSAGE <cMsg> ] ;
[ <lRight: RIGHT> ] ;
Saludos,
"José R.Castro" <
JRCPOLI@terra.es> escribió en el mensaje
news:43286bbf$[email=
1@ozsrvnegro.ozlan.local...]
1@ozsrvnegro.ozlan.local...[/email]
> Ignacio:
>
> La desactivación de la ToolBar sin problemas.
> Ahora lo del menú nada como dicen los argentinos no me da ni bola, me
> lanza siempre error, por lo que creo que lo mejor es que veas el código
> que
> lo genera.
>
> METHOD FormInitialize( oSender ) CLASS TFormComunes
> LOCAL oSortMenu
> LOCAL oMenu
> LOCAL aTags
> LOCAL nFor
> SET DELETED ON
> SET DATE FRENCH
> MENU oMenu //oMenu
> MENUITEM "&Fichero"
> MENU
> MENUITEM "&Añadir" ACTION ::AddNew( oSender)
> MENUITEM "&Editar"
> MENUITEM "&Borrar"
> SEPARATOR
> MENUITEM "&Imprimir"
> MENUITEM "&Configurar Impresora" ACTION Printer:Setup( Self )
> SEPARATOR
> MENUITEM "&Exit" ACTION ::Close()
> ENDMENU
> MENUITEM "&Mover"
> MENU
> MENUITEM "Ir al &Primer Registro" ACTION ::oBrowseComunes:GoTop()
> MENUITEM "Ir al &Siguiente Registro" ACTION
> ::oBrowseComunes:GoDown()
> MENUITEM "Ir al &Anterior Registro" ACTION ::oBrowseComunes:GoUp()
> MENUITEM "Ir al &Ultimo Registro" ACTION
> ::oBrowseComunes:GoBottom()
> ENDMENU
> MENUITEM "&Ayuda"
> MENU
> MENUITEM "&Acerca de..." ;
> ACTION ShellAbout( Application:Handle,
> Application:cTitle,
> ;
> "Copyright Xailer 2003-2004" )
> ENDMENU
> ENDMENU
> ::oMenu := oMenu
> oSortMenu := TMenu():Create( Self, .t. )
> ** Poner los Tag que componen el fichero de Zonas
> ** en el menú
> IF ::oDataSetComunes:lOpen
> WITH OBJECT ::oDataSetComunes
> ::aTags := :GetTags()
> :OrdSetFocus( "" )
> END
> ENDIF
> * Obtener todos los Tag del fichero de Zonas
> FOR nFor := 1 to len( ::aTags )
> WITH OBJECT TMenuItem():New( oSortMenu )
> :cText := "Por order de " + ::aTags[ nFor ]
> :Cargo := nFor
> :OnClick := {|o| ::nTag := o:Cargo }
> :Create()
> END
> NEXT
> ** Añadir a la ToolBar los elementos de menú
> WITH OBJECT ::oToolBar := TToolBar():New( ::oRebar1 )
> :lList := .t.
> :lAutoSize := .t.
> :Create()
> ::oTagBtn := :AddButton( "", "BMP_SORT",,, "Orden Selecc. :" , {||
> ::nTag++ }, oSortMenu )
> ::nTag := 1 // Selecciona el indice 1 del Tag de Zonas
> :AddSeparator()
> :AddButton( "", "BMP_FIRST",,, "Primer Registro", {||
> ::oBrowseComunes:GoTop() } )
> :AddButton( "", "BMP_PREVIOUS",,, "Anterior Registro",
> {||::oBrowseComunes:GoUp() } )
> :AddButton( "", "BMP_NEXT",,, "Siguiente Registro", {||
> ::oBrowseComunes:GoDown() } )
> :AddButton( "", "BMP_LAST",,, "Ultimo Registro", {||
> ::oBrowseComunes:GoBottom() } )
> :AddSeparator()
> :AddButton( "", "BMP_APPEND",,, "Añadir", { || ::AddNew(
> oSender ) } )
> :AddButton( "", "BMP_EDIT",,, "Editar",)
> :AddButton( "", "BMP_DELETE",,, "Borrar",)
> :AddSeparator()
> :AddButton( "", "XA_BMP_PRINTER",,, "Imprimir", )
> :AddButton( "", "XA_BMP_EXIT",,, "Salir", {|| ::Close() } )
> END
> ** Crear el objeto Rebar
> WITH OBJECT ::oRebarBand := TRebarBand():New( ::oRebar1 )
> :oControl := ::oToolBar
> :Create()
> END
> ** Posiciona el Browser en el último registro
> WITH OBJECT ::oBrowseComunes
> :GoBottom()
> END
> ** Desactivar Botones
> ::DesactBotones()
> RETURN Nil
>
> Cuando pulso sobre añadir en la ToolBar quiero que se desactive esta, cosa
> que hace y también el menú para que se quede como un formulario de
> edicción,
> hasta que pulsando en los botones que estan fuera (Grabar y Cancelar ) se
> vuelva a restablecer el formulario tal como estaba para poder navegar por
> los registros. Con la ToolBar sin problemas esto ya lo hace pero el menú
> no, ¿Quizas sea la forma en que he confeccionado el menú?.
>
> Si hago ::oMenu:lEnabled := .F. me dice TFORMCOMUNES:ADDNEW(313)
> Error BASE/1005 Message not found: TMENU:_LENABLED
> Argumentos: ()
>
> Si Hago ::oMenuItem:lEnabled := .F. me dice TFORMCOMUNES:ADDNEW(313)
> Error BASE/1004 Message not found: FORMCOMUNES:OMENUITEM
> Argumentos: ()
>
> José Ramón Castro Polinio.
>
> "Ignacio Ortiz de Zúñiga" <
InvalidAccount@ozs.com> escribió en el mensaje
> news:432805b6$[email=
1@ozsrvnegro.ozlan.local...]
1@ozsrvnegro.ozlan.local...[/email]
>> José,
>>
>> Para desactivar un botón de la toolbar simplemente haz:
>>
>> oBtn:lEnabled := .F.
>>
>> En el caso de menús:
>>
>> oMenuItem:lEnabled := .F.
>>
>> No obstante si muestras un segundo formulario para la edición con que lo
>> abras en modo modal es suficiente ( oForm:ShowModal() ), ya que de esa
>> forma
>> se impide que el usuario puede seleccionar otra vez el primer formulario
>> hasta que no salga del segundo.
>>
>> Saludos,
>>
>> "José R.Castro" <
JRCPOLI@terra.es> escribió en el mensaje
>> news:4327fbdf$[email=
1@ozsrvnegro.ozlan.local...]
1@ozsrvnegro.ozlan.local...[/email]
>>> Saludos:
>>>
>>> He realizado un formulario que contiene en la ToolBar los mismo
>>> botones
>>> que están en el ejemplo dos de los Browse de la carpeta Samples, la
>>> navegación por los registros está superada, ahora solo queda dar
>>> Altas,Bajas
>>> y Editarlos, para lo cual he añadido dos botones al formulario (Grabar,
>>> Cancelar) que activo y desactivo cuando es necesario para las altas y
>>> la
>>> edicción de registros, solo me queda saber como desactivar los botones
>>> de
>>> la
>>> ToolBar y las opciones del menú cuando realice esas dos tareas, o a lo
>>> mejor
>>> me aconsejáis que las realice aparte, pero el formulario que es requiere
>>> muchos datos y hacer otro para tener lo mismo sería incrementar mucho el
>>> ejecutable.¿ Que opinión os merece ? ¿ que es lo mejor ?, y sobre todo
>>> como
>>> se activa botones de la Toolbar y del menú en un formulario.
>>>
>>> José Ramón Castro Polinio.
>>>
>>>
>>>
>>>
>>
>>
>
>