Neste exemplo será mostrado como criar uma Tela com menu/submenu, chamando uma segunda janela. Os componentes utilizados são:
Tela Principal | Twindow() |
Menu | TMenu |
Sub-Menu | TMenuItem |
Janelas Secundárias | TDialog |
Veja o exemplo na imagem abaixo:
#Include "Protheus.ch" User Function MenuTela() Local oTela // --------------------- Cria Tela Principal ------------ oTela := TWindow():New( 10, 10, 400, 400, 'Exemplo TWindow',,,,,,,,CLR_BLACK,CLR_WHITE,,,,,,,.T. ) TMenuBar := TMenuBar():New(oTela) TMenuBar:nClrPane := RGB(150,178,133) // --------------------- Cria Menu --------------------- oTMenu1 := TMenu():New(0,0,0,0,.T.,,oTela) oTMenu2 := TMenu():New(0,0,0,0,.T.,,oTela) TMenuBar:AddItem("Menu 1" , oTMenu1, .T.) TMenuBar:AddItem("Menu 2" , oTMenu2, .T.) // --------------------- Cria SubMenus --------------------- oTMenuItem := TMenuItem():New(oTela,"SubMenu 01",,,,{|| SubMenu1() },,"AVGLBPAR1",,,,,,,.T.) oTMenu1:Add(oTMenuItem) oTMenuItem := TMenuItem():New(oTela,"SubMenu 02",,,,{|| SubMenu2() },,"AVGLBPAR1",,,,,,,.T.) oTMenu1:Add(oTMenuItem) oTMenuItem := TMenuItem():New(oTela,"SubMenu 03",,,,{|| SubMenu3() },,,,,,,,,.T.) oTMenu2:Add(oTMenuItem) oTMenuItem := TMenuItem():New(oTela,"SubMenu 04",,,,{|| SubMenu4() },,,,,,,,,.T.) oTMenu2:Add(oTMenuItem) oTela:SetMenu( TMenuBar ) oTela:Activate('MAXIMIZED') Return // ---------------------------------------------------------------------------------------------- Static Function SubMenu1() Local oTela1 := Nil Alert("SubMenu1") oTela1 := TDialog():New(180,180,450,600,"TDialog - SubMenu 1",,,,,CLR_BLACK,CLR_WHITE,,,.T.) oTela1:Activate(,,,.T.,{||msgstop('validou!'),.T.},,{||msgstop('Abrindo tDialog SubMenu 1')}) Return // ---------------------------------------------------------------------------------------------- Static Function SubMenu2() Local oTela2 := Nil Alert("SubMenu2") oTela2 := TDialog():New(180,180,450,600,"TDialog - SubMenu 2",,,,,CLR_BLACK,CLR_WHITE,,,.T.) oTela2:Activate(,,,.T.,{||msgstop('validou!'),.T.},,{||msgstop('Abrindo tDialog SubMenu 2')}) Return // ---------------------------------------------------------------------------------------------- Static Function SubMenu3() Local oTela3 := Nil Alert("SubMenu3") oTela3 := TDialog():New(180,180,450,600,"TDialog - SubMenu 3",,,,,CLR_BLACK,CLR_WHITE,,,.T.) oTela3:Activate(,,,.T.,{||msgstop('validou!'),.T.},,{||msgstop('Abrindo tDialog SubMenu 3')}) Return // ---------------------------------------------------------------------------------------------- Static Function SubMenu4() Local oTela4 := Nil Alert("SubMenu4") oTela4 := TDialog():New(180,180,450,600,"TDialog - SubMenu 4",,,,,CLR_BLACK,CLR_WHITE,,,.T.) oTela4:Activate(,,,.T.,{||msgstop('validou!'),.T.},,{||msgstop('Abrindo tDialog SubMenu 4')}) Return
No meu PC esse código não funcionou!