Página 1 de 1

Apagar o Main Menu do Form

Enviado: 25 Abr 2016 12:15
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

Apagar o Main Menu do Form

Enviado: 25 Abr 2016 15:39
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,

Apagar o Main Menu do Form

Enviado: 25 Abr 2016 17:55
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

Apagar o Main Menu do Form

Enviado: 25 Abr 2016 19:40
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.

Apagar o Main Menu do Form

Enviado: 25 Abr 2016 20:05
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,

Apagar o Main Menu do Form

Enviado: 27 Abr 2016 09:32
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

Apagar o Main Menu do Form

Enviado: 02 Mai 2019 18:34
por syslink
rubens escreveu:RELEASE MAIN MENU OF DATASAC
vou tentar experimenta essa solucao pra ve se eh o q to quereno

Apagar o Main Menu do Form

Enviado: 03 Mai 2019 10:40
por syslink
essa opcao de release main menu é o q eu quero e deu certo brigadu