Nesta aula faremos nosso menu interagir com nossas opções.
Iremos fazer com que ativem janelas, que podem ser de Tres tipos:
Normais, MDI e MDIChild, onde:
MDI são janelas que darão suportes à outras janelas internas.
MDICHILD são janelas filhas penduradas em janelas MDI.
Normais são janelas independentes podendo ser abertas livremente mas ocasionam problemas se a janela principal for fechada antes.
Portanto não coloque janelas normais penduradas em janelas MDI, coloque somente MDICHILD ou Dialogs.
Figura 03
Digite o código abaixo em um arquivo e de-lhe o nome de AULA03.PRG e compiLe utilizando o BUILD.BAT:
C:\>BUILD AULA03
#include "fivewin.ch"
function main()
local oWnd
DEFINE WINDOW oWnd TITLE "Janela principal" ;
FROM 5, 5 TO 24, 64 ;
MENU Menu() ;
MDI
ACTIVATE WINDOW oWnd
return nil
FUNCTION Menu()
local oMenu, oMenu1, oMenu2
local oSub1,oSub2,oSub3
MENU oMenu
MENUITEM oMenu1 PROMPT "Opcao &1"
MENU
MENUITEM "&Clientes"
MENU
MENUITEM "Incluir" ACTION MDIChild()
MENUITEM "Excluir" ACTION MDIChild()
SEPARATOR
MENUITEM "Consultar" ACTION MDIChild()
ENDMENU
MENUITEM "&Fornecedores"
MENU
MENUITEM "Incluir" ACTION MDIChild2()
MENUITEM "Excluir" ACTION MDIChild2()
SEPARATOR
MENUITEM "Consultar" ACTION MDIChild2()
ENDMENU
ENDMENU
MENUITEM oMenu2 PROMPT "Opcao &2" DISABLED
MENU
MENUITEM "Item 1" DISABLED ACTION MDIChild()
MENUITEM "Item 2" DISABLED ACTION MDIChild()
ENDMENU
ENDMENU
return oMenu
function MDIChild()
local oWnd1
DEFINE WINDOW oWnd1 TITLE "Janela Normal" ;
FROM 1, 1 TO 10, 30
ACTIVATE WINDOW oWnd1
return nil
function MDIChild2()
local oWnd1
DEFINE WINDOW oWnd1 TITLE "Janela MDI" MDICHILD ;
FROM 1, 1 TO 10, 30
ACTIVATE WINDOW oWnd1
return nil
Vejam que foi definida uma variável de suporte a janela como sendo oWnd1, desta forma, ao longo de seu aplicativo fica mais fácil identificar e até refenciar a mesma. havendo a necessidade de se referenciar a esta variável em função ou rotina externa esta deverá ser passada como parâmetro ou tornada PUBLICa.
Veja que o parâmetro MDI foi acrescentado ao comando DEFINE WINDOW, transformando desta forma nossa janela principal em multi-janelas.
Até a próxima.