Anterior Sumário Próximo OpenBASE! o Banco de Dados inteligente. Fale conosco!

Funções para controle de menus

O controle de menus e submenus é uma tarefa muito fácil, na linguagem OpusWin. As funções aqui apresentadas devem ser utilizadas apenas quando for necessário.

Função Menu()

A função Menu() serve para identificar qual o nome do menu principal selecionado pelo usuário. Caso existam vários menus primários, o programa, eventualmente, precisa saber qual desses menus está sendo processado no momento e, assim, comandar a execução dos procedimentos pertinentes.

A função Menu() retorna, em variável cadeia, o nome do menu principal cujos itens foram selecionados pelo usuário.

Exemplo

if Menu() = "Util1" 

  do proc_Util1

elseif Menu() = "Util2"

  do proc_Util2

else ...

...

endif

Função Popup()

A função Popup() serve para identificar qual o nome do menu secundário, ou suspenso, selecionado pelo usuário. Freqüentemente, existem vários menus primários definidos no mesmo programa. Assim sendo, é necessário, eventualmente, saber qual desses menus secundários está sendo processado no momento e, assim, comandar a execução dos procedimentos pertinentes.

A função Popup() retorna, em variável cadeia, o nome do menu secundário cujos itens foram selecionados pelo usuário.

Exemplo

if  Popup() = "popU101"  .and.  bar()  =  02 

  do rot_CODI

endif

Função Prompt()

A função Prompt() serve para obter o "rótulo" ou "caption" dos itens de um menu (principal ou secundário) de modo que o programa possa reconhecer e processar corretamente os itens do menu selecionado. A função Prompt() retorna, em variável cadeia, o conteúdo que foi especificado no comando prompt, quando da definição dos itens de um menu.

Exemplo

if Menu() = "Util1" .and.  Popup() = "popU101"  .and.  bar()  =  02 

  ? prompt()

endif

Observações

O exemplo acima deverá mostrar o "rótulo" ("caption") associado ao item 02 do menu secundário popU101 do menu primário Util1.

Função Pad()

A função Pad() serve para obter o nome de um item do menu principal selecionado pelo usuário. Esta informação permite que o programa execute os procedimentos correspondentes, conforme a escolha feita pelo usuário. A função Pad() retorna uma variável cadeia.

Exemplo

if Menu() = "Util1" 

  ? Pad()

endif

Observações

O exemplo acima deverá mostrar o nome do item selecionado pelo usuário na barra de menu principal.

Função Bar()

A função Bar() serve para obter o número identificador do item selecionado, dentro de um menu suspenso. A função Bar() retorna uma variável numérica, ou seja o identificador do item selecionado, dentro do menu suspenso referenciado através da função popup().

Exemplo

if Menu() = "Util1" .and.  Popup() = "popU101" 

  ? str(Bar())

endif

Observações

O exemplo acima deverá mostrar o número do item selecionado pelo usuário dentro do menu secundário popU101, subordinado ao menu principal Util1.

Função IsMenu()

A função IsMenu() serve para identificar se o procedimento em execução foi invocado, ou não, através da opção do <proc> associada aos comandos PAD e BAR, quando da definição do menu. A função lógica IsMenu() retorna .t. ou .f. dependendo se a procedure corrente foi chamada, ou não, através do acionamento de algum item de menu.

A informação obtida através da função IsMenu() é de grande utilidade, por exemplo, quando o mesmo procedimento é invocado via menu ou via Barra de Ferramentas, como veremos mais adiante.

Exemplo

Proc proc-menu

if IsMenu() = .f.  .or. menu() <> "Util1" 

  return

endif

sel = bar()

do case

  case sel = 1

  case sel = 2

endcase

Observações

O procedimento proc-menu apenas trabalha quando for chamado pelo menu "Util1".

Anterior Sumário Próximo OpenBASE! o Banco de Dados inteligente. Fale conosco!