DOCUMENTAÇÃO DO MENU TRI!
MENU.PRG:
Através de um arquivo de MENU MPR, ele gera um cursor chamado MENU_PRONTO
com os dados organizados de modo que a classe abaixo possa trabalhar adequadamente.
Requisitos:
- VFP9
- GDIPLUSX com as classes instaladas na pasta Classes do MENU.
| Objeto: | Método/Propriedade: | Descrição: |
| botoes | comando | Executa o command do menu |
| botoes | sub= | Determina se o botão esta num sub-menu ou cabeçalho (.T. sim / .F. não) |
| botoes | pai= | Em caso de ser um sub=.T. ele guarda o nome do "pai" |
| botoes | mouseMove() | Caso o botão não tenha um comando, considera-se "pai", então, ao passar
o mouse por ele e o form de sub-menu estiver visivel, o botão leva um
clique para puxar o sub-menu para ele. |
| botoes | mouseLeave() | Limpa o botão para o estado: sem fócu |
| botoes | click() | - Caso não seja um Sub(!this.sub) e não tenha um comando, ele tira o
sub-sub-menu se existir e organiza um sub-menu para exibir os ítens "filhos". - Caso não seja um Sub(!this.sub) e tenha um comando, ele esconde os forms e executa o comando. - Caso seja um Sub(this.sub) ele busca os sub-ítens de segundo nivel, e organiza o objeto form "sub_form" |
| _menu | sub= | Caso seja menu de segundo-nivel, ele levará .T. |
| _menu | atual= | Armazena o código do pai que o ativou |
| _menu | tab= | Armazena a ordem tab do objeto atual para navegar sob os ítens através do teclado |
| _menu | gera() | - De acordo com um cursor "itens" gerado por seu menu-pai,
ele gera os botões e configura suas dimensões baseado nos
tamanhos necessários dos botões. - Ao final, executa a pintura do fundo do objeto this.imgcanvas1 e define a imagem de fundo do this.imgcanvas2 |
| _menu | limpa() | Apaga todos os botões baseados na classe botoes |
| _menu | keyPress() | Identifica a tecla pressionada, para efetuar a navegação sob os botões. |
| _menu | deactivate() | No momento em que se clicar fora do form, tirando o fóco dele,
efetua-se o seguinte: - caso não seja this.sub e não haja um sub de segundo nivel, aí ele some. - caso ele seja um this.sub ele sempre sumirá - ou então, ele fica visivel. |
| _menu.imgcanvas1 | BeforeDraw() | Desenha o fundo gradiente que os botões posicionam-se sob. |
| icone | . . | Exibe o ícone do ítem do menú. |
| _cont_menu2 | init() | Declara reconhecimento de funções de DLL necessária para GDI+, cria uma propridade System para facilitar interação com GDI+. E cria o objeto OBJ que refere-se ao sub-menu principal. |
| _cont_menu2 | gera() | Começa apagando todos objetos que não possuam Asterisco(*) na propriedade
TAG. Organiza dados do cursor e gera um SCAN com os dados do novo Cursor
que contém apenas os dados de ítens pais. E efetua a criação dos ítens. Por fim, ele se melhor posiciona na tela para se caso ele esteja em uma classe toolbar. |
| Variaveis: | Descrição: | |
| obj | Refere-se ao sub-menu principal, aquele ativado ao clicar-se nos pais.
É originado baseado na _menu. Ele é uma vez criado e depois apenas setado como Visivel ou Invisivel. |
|
| sub_form | Refere-se ao sub-menu se segundo nivel, aquele ativado a partir de um
sub-menu de primeiro nivel. Ele é criado sempre que necessário e apagado da memória sempre que fechado. |
|
Exemplo de aplicação:
- menu_teste.sct - contém um exemplo com menu no form simples, em toolbar docked
e undocked.
Maiores informações: http://www.lipsil.com.br/menu.htm
Sugestões:
rafaellippert@gmail.com
Um abraço,
Rafael Lippert