Esta perdendo o Objeto
Com um Menu com poucos itens não dá o erro, mas o que estou usando tem muitos, acaba perdendo o valor.
Alguém pode me ajudar a mante-la
Obrigado, a seguir listo o código
Error description: Error BASE/1003 Variable does not exist: OMENUTREE
FUNCTION MnuOpen( )
LOCAL oLbx, oMenuTree, oWndMenu
PUBLIC cUsuario
cUSUARIO="01" // Criar Gets para identificar qual usuário será configurado
IF ASCAN( oWnd:oWndClient:aWnd, {|x| x:cargo == "MenuCA"} ) == 0
DEFINE WINDOW oWndMenu MDICHILD FROM 1, 1 TO 40, 300;
TITLE "Controle de Senha Acesso";
BORDER NO of oWnd
IF !FILE("MENUS.DBF")
MsgStop("Arquivo não encotrado MENUS.DBF")
QUIT
ENDIF
Open_file("Menus","Menus",,.F.)
go top
TREE oMenuTree BITMAPS "MnClose.bmp","MnOpen.bmp" OPENED
DO WHILE .NOT. Eof()
DO CASE
CASE Menus->Tipo == 0
IF cUSUARIO$Menus->USUARIOS
TREE BITMAPS "MnClSl.bmp", "MnOpSl.bmp" OPENED
ELSE
TREE BITMAPS "MnClose.bmp","MnOpen.bmp" OPENED
ENDIF
CASE Menus->Tipo == 1
bGrava = 'GravaMarca('+ '"'+Menus->TEXTO+'",oMenutree)'
IF cUSUARIO$Menus->USUARIOS
TREEITEM ALLTRIM( Menus->Texto ) FILENAME "MnClSl.bmp", "MnOpSl.bmp" ACTION &bGrava
ELSE
TREEITEM ALLTRIM( Menus->Texto ) FILENAME "MnClose.bmp","MnOpen.bmp" ACTION &bGrava
ENDIF
CASE Menus->Tipo == 2
TREEITEM "--------------------------------"
CASE Menus->Tipo == 3
ENDTREE
ENDCASE
DBSkip()
ENDDO
ENDTREE
@ 0, 0 LISTBOX oLbx FIELDS "" ;
HEADERS "Arvore de Menus" ;
SIZE 400, 400 ;
OF oWndMenu UPDATE
oLbx:nClrBackHead := CLR_VERDEAGUA // Cor do Fundo do Cabeçalho
//oLbx:nClrForeHead := CLR_HRED // Cor nos Headers - Cabeçalhos
oLbx:SetTree( oMenuTree ) // Carrega Arvore no Listbox
//oLbx:aHeaders := {""} // Cabeçalho
oLbx:bKeyChar = { | nKey | KeyChar( oLbx, nKey ) }
//******* O ERRO ACONTECE NESSA LINHA **********//
oLbx:bLDblClicked = {|| If( oLbx:Cargo:oTree != nil, ;
( oLbx:Cargo:Toggle(), oLbx:Refresh() ),EVAL(oLbx:Cargo:Cargo) )}
oWndMenu:SetControl( oLbx )
oWndMenu:cargo := "MenuCA"
ENDIF
ACTIVATE WINDOW oWndMenu MAXIMIZED
return nil
STATIC FUNCTION KeyChar( oLbx, nKey)
DO CASE
CASE nKey == 13
msginfo("ENTER TESTE")
IF oLbx:Cargo:oTree != NIL
oLbx:Cargo:Toggle()
oLbx:Refresh()
ELSE
EVAL(oLbx:Cargo:Cargo)
ENDIF
CASE nKey == 27
ENDCASE
RETURN nil
FUNCTION GravaMarca(cItem,oMenutree)
msginfo("Click TESTE")
LOCATE FOR Menus->Texto=cItem
IF !(cUSUARIO$USUARIOS)
// Marcar
msginfo("Gravando Usuário " + cUSUARIO + " Acesso a "+cItem)
RLock()
repla USUARIOS WITH Trim(USUARIOS)+"*"+cUSUARIO
ELSE
// Rotina para desmarcar
msginfo("Já esta gravado Usuário " + cUSUARIO + " Acesso a "+cItem)
ENDIF
RETURN NIL