Habilitar e Desabilitar Menus na WVWTOOLS 0.83

Outras bibliotecas visuais e IDEs para Harbour/xHarbour (xHGTK/HbWxW/GtWvT/GtWvW/WvWtools.etc)

Moderador: Moderadores

Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Habilitar e Desabilitar Menus na WVWTOOLS 0.83

Mensagem por sygecom »

Olá a Todos,
Peguei recentemente um sisteminha para migrar, e estou pensando em usar a WVWTOOLS, alguém teria algum exemplo de como Habilitar e Desabilitar os Menus. (Isso vai servir para o controle de senhas pelos Menus)

Agradeço Antecipadamente
Leonardo Machado
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
acelconsultoria
Usuário Nível 3
Usuário Nível 3
Mensagens: 231
Registrado em: 10 Jan 2006 17:05
Localização: Itápolis-SP

Re: Habilitar e Desabilitar Menus na WVWTOOLS 0.83

Mensagem por acelconsultoria »

Verificando o código fonte da WVWTOOLS, na classe AddMenuItem, pude ver que os menus podem ser trabalhados com "condições". Se a condição é validada pelo EVAL, o menu fica habilitado, caso contrário, desabilitado.

Código: Selecionar todos

METHOD AddMenuItem( cCaption, bBlock, bCondition, cBitmap, lAddToContext, cFlag, nKeyCode ) CLASS WvW_tWindow
//****
   RETURN ::AddToMenu( cCaption, bBlock, bCondition, cBitmap, lAddToContext, .F.,, cFlag, nKeyCode )

//****
METHOD AddToMenu( cCaption, bBlock, ;
               bCondition, cBitmap, lAddToContext, lPopup, lSystem, cFlag, nKeyCode ) CLASS WvW_tWindow
//****
   LOCAL hPopup, nID
   //
   DEFAULT cCaption TO [\-], ;
        bCondition TO {|| .T.}, cBitMap TO [], lAddToContext TO .F., lSystem TO .F.
   cCaption := ALLTRIM( cCaption )
   IF ( lPopup )
      IF EMPTY( ::aContextPopups )
         hPopup := ::hContextMenu
      ELSE
         hPopup := ::aContextPopups[-1,1]
      ENDIF
      nID := ++ ::nContextMenuID
   ELSE
      IF ( lSystem )
         hPopup := ::hSysMenu
         nID := ++ ::nSysMenuID
      ELSE
         hPopup := ::aPopups[-1,1]
         nID := ++ ::nMenuID
      ENDIF
   ENDIF
   IF ( PCOUNT() = 0 .OR. ALLTRIM(cCaption) == [\-] )
      WvW_AppendMenu( hPopup, MF_SEPARATOR )
   ELSE
      IF ( cFlag != NIL .AND. nKeyCode != NIL)
         AADD( ::aAccelTable, { nKeyCode, cFlag, nId } )
         cCaption += ( CHR(9) + cFlag )
      ENDIF

      IF EVAL( bCondition ) // ************* TESTA A CONDIÇÃO
         WvW_AppendMenu( hPopup, MF_ENABLED + MF_STRING, nID, cCaption )
      ELSE
         WvW_AppendMenu( hPopup, MF_DISABLED + MF_STRING + MF_GRAYED, nID, cCaption )
      ENDIF

      IF ! EMPTY( cBitmap )
         cBitmap := ( ::cImagePath + cBitmap )
         WvW_MenuBitmap( hPopup, nID, cBitmap )
      ENDIF
      IF     ( lPopup )
         AADD( ::aContextMenuItems, { nID, bBlock, bCondition, cCaption } )
      ELSEIF ( lSystem )
         AADD( ::aSysMenuItems, { nID, bBlock, bCondition, cCaption } )
      ELSE
         AADD( ::aMenuItems, { nID, bBlock, bCondition, cCaption } )
      ENDIF
      IF ( lAddToContext )
         ::AddContextMenuItem( cCaption, bBlock, bCondition, cBitmap )
      ENDIF
   ENDIF
   //
   RETURN Self

Bom, eu não domino muito a sintaxe do EVAL, mas creio que a condição deva ser passada em code block, ou estou errado ???
Adm. Maickon Sato
Consultoria e Projetos
-------------------------------------------------------
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Habilitar e Desabilitar Menus na WVWTOOLS 0.83

Mensagem por sygecom »

Isso já tinha achado no sabado mesmo, e fiz funcionar assim:

Código: Selecionar todos

:AddMenuItem( "&1-Tabela de COMPRA",                     { || PESQTABC("N") },{||.f.},,,,)
Agora o problema é outro, veja se pode me ajudar, de vez em quando esta dando um erro pra lá de estranho, que não gera ERRO.LOG e não tem lugar certo para acontecer, abaixo no link um screem da tela com o erro.
http://www.sygecom.com.br/erro.bmp

Estou usando: xharbour 1.0.0 + Bcc 5.5.1 + wvwtools 083 + vl
Qualquer dica é bem vinda.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
acelconsultoria
Usuário Nível 3
Usuário Nível 3
Mensagens: 231
Registrado em: 10 Jan 2006 17:05
Localização: Itápolis-SP

Re: Habilitar e Desabilitar Menus na WVWTOOLS 0.83

Mensagem por acelconsultoria »

Vixe... que estranho !!!!

Mas o erro aconteceu depois que vc começou a usar os recursos de validações no menu ???? Ou já vinha ocorrendo ????

Sinistro demais !!!!! rssssssssssss.....
Adm. Maickon Sato
Consultoria e Projetos
-------------------------------------------------------
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Habilitar e Desabilitar Menus na WVWTOOLS 0.83

Mensagem por sygecom »

Já resolvi tmb. era apenas a ordem das LIB na hora de compilar, coloquei a WVWTOOLS para primeiro e tudo ficou normal, vou adiante com meu projeto.

Obrigado pela atenção.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder