terça-feira, 1 de abril de 2008

Garçom ! O menu, por favor !


Utilizando um novo conceito em seus programas, você pode aprender a criar menus totalmente dinâmicos sem a utilização do Dialog System. E se quiser dar uma gorjeta ao garçom, utilize o link do PagSeguro, aqui mesmo no blog.

Através do método "getMenubar" da classe Window, podemos pegar o menu de uma janela e criar submenus e ítens de menus, com os métodos das classes Menubar, Submenu e Menuitem. Tudo isso no fonte Cobol, sem a necessidade de utilizar o Dialog System.

Dentro do Dialog System, um evento especial detecta quando um ítem de menu criado fora do Dialog System foi selecionado. Chama-se ANY-OTHER-MENU-EVENT. O registrador especial $EVENT-DATA contém a identificação do ítem de menu selecionado.

Com esse código identificador, basta retornar ao programa Cobol e utilizar o método "menuitemAtCommand", com o objeto da classe Window. Um comando evaluate pode então detectar qual ítem de menu foi selecionado.

O fonte com a demonstração desse artigo encontra-se disponível para download no site do Clube Cobol.


4 comentários:

Antonio João disse...

Estou fazendo um sisteminha cujo menu usa esse conceito.

Criei um controlador (CBLTBAR) que cria um menu com uma toolbar (na verdade já defino estes no DS) e dá outros procedimentos.

Tenho um arquivo texto com as opções de menu, leio este arquivo, pego o item e chamo CBLTBAR para incluir este item.

Todos item selecionados vão para a mesmo entry (OnItemSelected) e geram o mesmo Event-Type, a ação, que no momento é o nome do programa a ser chamado, esta identificada no arquivo texto que guardo em um array.

Com isso é possível controlar com facilidade quais os itens o usuário pode ver, ou até mesmo criar um menu (arquivo texto) para cada usuário.

Eu pretendo fazer o usuário escolher as opções que ele usa e criar o MyMenu.mnu.

ARBONONI disse...

Pô! Alexandre ! Você foi rápido ! Comentei com você isso ontem e hoje já tem até exemplo pronto no Clube Cobol ?
Parabéns, cara ! Pessoas e profissionais como você é que nos amina na luta do dia a dia ! Vou baixar o exemplo e tentar aplicar no sistema que estou desenvolvendo.
Novamente, Parabéns !!!!

ARBONONI disse...

Oi, Alexandre.
Boa noite. Como eu te disse no email, baixei o programa do Clube Cobol e consegui fazê-lo funcionar com as minhas configurações. Só não consegui fazer o ANY-OTHER-MENU-EVENT funcionar. O que pode estar errado ?

Pita disse...

Grande amigo, o link para download esta quebrado, grande abraço