Muitos ainda tentam se acostumar com o layout do Protheus 11, com aquelas telas praticamente sem imagens, é claro que para nós desenvolvedores ficou mais fácil desenhá-las, mas outro dia, um amigo me perguntou se ainda era possível desenvolver telas com layouts diferente do padrão, assim como era nas versões anteriores. Sim, respondi a ele, continua sendo tão simples como era antes. Então mandei para ele o exemplo abaixo. É claro que podemos praticamente montar as telas em vários formatos e com designer mais elegante, dependendo do seu tempo livre, é claro!
#INCLUDE "PROTHEUS.CH" User Function fMsExpl() Local oDlg := Nil Local oExpl := Nil Local oPanel := Nil Local aPanels := {} //Instancia Objeto oExpl := MsExplorer():New("Titulo da MSExplorer",10,10,400,700,oDlg,/*lToolBar*/,/*lAddressBar*/,/*lDefBar*/,/*oTreeFont*/,/*cBitmap*/,/*nBmpWidth*/,/*oParent*/)//Cria EnchoiceButtons oExpl:AddDefButton("CLIPS" ,"ToolTip 01" ,{|| msgInfo("Botao ZeroUm")} ,/*cDefaultAct*/ ,/*bWhen*/,/*nWidth*/,"Botao Zero Um - 01") oExpl:AddDefButton("CLIENTE" ,"ToolTip 02" ,{|| msgInfo("Botao ZeroDois")} ,/*cDefaultAct*/ ,/*bWhen*/,/*nWidth*/,"Botao Zero Um - 02") oExpl:AddDefButton("CHAT" ,"ToolTip 03" ,{|| msgInfo("Botao ZeroTres")} ,/*cDefaultAct*/ ,/*bWhen*/,/*nWidth*/,"Botao Zero Um - 03") oExpl:AddDefButton("COMSOM" ,"ToolTip 04" ,{|| msgInfo("Botao ZeroQuatro")} ,/*cDefaultAct*/ ,/*bWhen*/,/*nWidth*/,"Botao Zero Um - 04") oExpl:AddDefButton("CARGA" ,"ToolTip 04" ,{|| msgInfo("Botao ZeroCinco")} ,/*cDefaultAct*/ ,/*bWhen*/,/*nWidth*/,"Botao Zero Um - 05")//Cria um item da Arvore aAdd(aPanels, oExpl:AddTree("Item01","BR_LARANJA" ,"BR_VERDE","#1000",.T.))//Cria itens na Arvore aAdd(aPanels, oExpl:AddItem("S1.1","BR_ROXO","#1100",.T.)) aAdd(aPanels, oExpl:AddItem("S1.2","BR_ROXO","#1200",.T.))//Adiciona um sub-item composto na Arvore aAdd(aPanels, oExpl:AddTree("S1.3","BR_PRETO" ,"BR_BRANCO","#1300",.T.)) aAdd(aPanels, oExpl:AddItem("S1.3.1","BR_ROXO","#1310",.T.)) aAdd(aPanels, oExpl:AddItem("S1.3.2","BR_ROXO","#1320",.T.)) aAdd(aPanels, oExpl:AddItem("S1.3.3","BR_ROXO","#1330",.T.)) oExpl:EndTree() //Fecha subitem oExpl:EndTree() //Fecha item //Cria um novo item da Arvore aAdd(aPanels, oExpl:AddTree("Item02","BR_LARANJA" ,"BR_VERDE","#2000",.T.)) aAdd(aPanels, oExpl:AddItem("S2.1","BR_ROXO","#2100",.T.)) aAdd(aPanels, oExpl:AddItem("S2.2","BR_ROXO","#2200",.T.)) oExpl:EndTree() //Fecha Item //Desenha nos paineis de cada item @50,50 SAY "SELECIONOU A OPCAO: Item01" PIXEL SIZE 150,25 OF oExpl:GetPanel(aPanels[1]) @50,50 SAY "SELECIONOU A OPCAO: S1.1" PIXEL SIZE 150,25 OF oExpl:GetPanel(aPanels[2]) @50,50 SAY "SELECIONOU A OPCAO: S1.2" PIXEL SIZE 150,25 OF oExpl:GetPanel(aPanels[3]) @50,50 SAY "SELECIONOU A OPCAO: S1.3" PIXEL SIZE 150,25 OF oExpl:GetPanel(aPanels[4]) @50,50 SAY "SELECIONOU A OPCAO: S1.3.1" PIXEL SIZE 150,25 OF oExpl:GetPanel(aPanels[5]) @50,50 SAY "SELECIONOU A OPCAO: S1.3.2" PIXEL SIZE 150,25 OF oExpl:GetPanel(aPanels[6]) @50,50 SAY "SELECIONOU A OPCAO: S1.3.3" PIXEL SIZE 150,25 OF oExpl:GetPanel(aPanels[7]) @50,50 SAY "SELECIONOU A OPCAO: Item02" PIXEL SIZE 150,25 OF oExpl:GetPanel(aPanels[8]) @50,50 SAY "SELECIONOU A OPCAO: S2.1" PIXEL SIZE 150,25 OF oExpl:GetPanel(aPanels[9]) @50,50 SAY "SELECIONOU A OPCAO: S2.2" PIXEL SIZE 150,25 OF oExpl:GetPanel(aPanels[10]) //Exibe a MsExplorer oExpl:Activate(.T.) Return