Até agora, provavelmente vocês estão se perguntando, "Quando vou manipular dados?".
Nesta aula iremos acrescentar às nossas MDI Child manipulação de dados, criando para isto um browse e conhecendo alguns de seus atributos para deixar o visual mais atraente.
Sera acrescentado mais um botão, os botões serão agrupados para dar maior definição e estes botões irão acionar duas janelas, sendo uma com browse e outra contendo barra de botões e browse.
O resultado deverã ser igual ao da figura abaixo:
Figura 07
Digite o código abaixo em um arquivo e de-lhe o nome de AULA07.PRG e compiLe utilizando o BUILD.BAT:
C:\>BUILD AULA07
#include "fivewin.ch"
function main()
local oWnd
DEFINE WINDOW oWnd TITLE "Janela principal" ;
FROM 5, 5 TO 24, 64 ;
MENU Menu() ;
MDI
DEFINE BUTTONBAR oBar OF oWnd
DEFINE BUTTON OF oBar FILE "exit.bmp" ;
ACTION oWnd:end() ;
MESSAGE "Fecha este aplicativo..." ;
TOOLTIP "Fecha este aplicativo."
DEFINE BUTTON OF oBar GROUP FILE "Open.bmp" ;
ACTION MDIChild() ;
MESSAGE "Abre um browse normal..." ;
TOOLTIP "Abre um browse normal."
DEFINE BUTTON OF oBar FILE "cut.bmp" ;
ACTION MDIChild2() ;
MESSAGE "Abre um browse com botões..." ;
TOOLTIP "Abre um browse com botões."
SET MESSAGE OF oWnd TO "Forum Clipper-On-Line" KEYBOARD DATE CLOCK
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, oBrw
USE AULA07 NEW SHARED
DEFINE WINDOW oWnd1 TITLE "Janela Normal" MDICHILD ;
FROM 1, 1 TO 10, 30
@ 0,0 LISTBOX oBrw FIELDS OF oWnd1 SIZE 225,115
ACTIVATE WINDOW oWnd1
return nil
function MDIChild2()
local oWnd1, oBrw
USE AULA07 NEW SHARED ALIAS AULA072
DEFINE WINDOW oWnd1 TITLE "Janela MDI" MDICHILD ;
FROM 1, 1 TO 10, 30
DEFINE BUTTONBAR oBar1 OF oWnd1
DEFINE BUTTON OF oBar1 FILE "exit.bmp" ;
ACTION MsgInfo( "Coloque uma chamada a uma rotina" ) ;
MESSAGE "Coloque aqui uma mensagem..." ;
TOOLTIP "Sou uma dica rapida para este controle."
DEFINE BUTTON OF oBar1 FILE "Open.bmp" ;
ACTION MsgInfo( "Coloque uma chamada a uma rotina" ) ;
MESSAGE "Coloque aqui uma mensagem..." ;
TOOLTIP "Sou uma dica rapida para este controle."
@ 2,0 LISTBOX oBrw FIELDS OF oWnd1 SIZE 230,90
ACTIVATE WINDOW oWnd1
return nil
Serão necessários também os DBFs apresentados abaixo:
aula07.dbf.zip (renomeie para aula07.dbf)
O resultado ficará assim:
Figura 07a
Veja que existe um espaço entre os botões que foi feito via parâmetro GROUP em um dos DEFINE BUTTON da barra de botões
Até a próxima.