Apagar o Main Menu do Form

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Apagar o Main Menu do Form

Mensagem por rubens »

Bom dia

Tem algum jeito de apagar o Main Menu de um Form.

Com outro controle vi que basta um
Form.Nome_Controle.Release

Mas qual seria o Nome_Controle de um Main Menu ?

Obrigado
Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Apagar o Main Menu do Form

Mensagem por Toledo »

Rubens, não existe um função para excluir o menu inteiro, então a saída seria refazer o menu, mas sem nenhuma opção. Por exemplo, você poderia criar uma função, tipo ApagarMenu() com o seguinte comando:

Código: Selecionar todos

Proc ApagarMenu()
   DEFINE MAIN MENU OF Nome_Form
   END MENU
Return
No código acima, troque Nome_Form pelo nome do seu Form.

Agora um detalhe, onde/quando você vai chamar esta função? Atenção: tem que ser depois do Form montado (END WINDOW) ou Ativo (ACTIVATE WINDOW).

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Apagar o Main Menu do Form

Mensagem por rubens »

Caro Toledo...

Consegui montar o menu dinâmico do jeito que eu queria, só que no sistema eu permito mudar o usuário dentro do programa sem ter que sair. Como o menu é dinâmico ele precisa ser "reconstruído" conforme o nível do usuário.

Se eu tentar definir um main menu que já existe não vai dar erro?
Vou tentar fazer aqui para ver...

Eu só monto o menu depois que o usuário digita a senha. Daí pego o nível dele e monto o menu. Mas preciso permitir mudar o usuário dentro do sistema. Dá seria só definir o menu novamente. Mas como ele já existe preciso apagá-lo.
Entrada Datasac.png
Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Claudio Soto
Colaborador
Colaborador
Mensagens: 566
Registrado em: 27 Ago 2012 12:31
Localização: Uruguay
Contato:

Apagar o Main Menu do Form

Mensagem por Claudio Soto »

En HMG Oficial existe:

Código: Selecionar todos

RELEASE MAIN MENU     OF <parent>
RELEASE MAINMENU      OF <parent>

RELEASE CONTEXT MENU  OF <parent>
RELEASE CONTEXTMENU   OF <parent>

RELEASE NOTIFY MENU   OF <parent>
RELEASE NOTIFYMENU    OF <parent>

RELEASE DROPDOWN MENU BUTTON      <button> OF <parent>
RELEASE DROPDOWNMENU  OWNERBUTTON <button> OF <parent>
No se si existe en MiniGUI Extended.
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Apagar o Main Menu do Form

Mensagem por Toledo »

Não sabia destas funções.
Claudio Soto escreveu:No se si existe en MiniGUI Extended.
Existe sim, no arquivo i_hmgcompat.ch

Código: Selecionar todos

#xcommand RELEASE MAIN MENU OF <form> => DEFINE MAIN MENU OF <form> ; END MENU ; DestroyMenu( GetMenu( GetFormHandle( <"form"> ) ) )
#xcommand RELEASE CONTEXT MENU OF <form> => DEFINE CONTEXT MENU OF <form> ; END MENU ; DestroyMenu( _HMG_aFormContextMenuHandle \[ GetFormIndex ( <"form"> ) ] )

#xcommand RELEASE NOTIFY MENU OF <form>  => DEFINE NOTIFY MENU OF <form> ; END MENU ; DestroyMenu( _HMG_aFormNotifyMenuHandle \[ GetFormIndex ( <"form"> ) ] )

#xcommand RELEASE DROPDOWN MENU BUTTON <button> OF <form>     => DEFINE DROPDOWN MENU BUTTON <button> OF <form> ; END MENU
#xcommand RELEASE DROPDOWNMENU OWNERBUTTON <button> OF <form> => DEFINE DROPDOWN MENU BUTTON <button> OF <form> ; END MENU
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Apagar o Main Menu do Form

Mensagem por rubens »

Bom dia...

Belezinha...
Funcionou do jeito que eu queria...

Código: Selecionar todos

FUNCTION APAGAMENU()
RELEASE MAIN MENU OF DATASAC
SetProperty('DATASAC','BTN_002','ENABLED',.F.)
SetProperty('DATASAC','BTN_004','ENABLED',.F.)
NIVEL='1'
MONTAMENU()
RETURN NIL 
SE alguém precisa de usar o comando não esquecer de inserir o cabeçalho
#include "i_hmgcompat.ch"


Obrigado

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
syslink
Usuário Nível 3
Usuário Nível 3
Mensagens: 132
Registrado em: 20 Fev 2018 13:13
Localização: joinvile/sc

Apagar o Main Menu do Form

Mensagem por syslink »

rubens escreveu:RELEASE MAIN MENU OF DATASAC
vou tentar experimenta essa solucao pra ve se eh o q to quereno
syslink
Usuário Nível 3
Usuário Nível 3
Mensagens: 132
Registrado em: 20 Fev 2018 13:13
Localização: joinvile/sc

Apagar o Main Menu do Form

Mensagem por syslink »

essa opcao de release main menu é o q eu quero e deu certo brigadu
Responder