#include "../../../include/fivewin.ch"
#include "colores.ch"
Static oFont
Static oFontB
Static oFontTitle
//----------------------------------------------------------------------------//
Function Main()
DEFINE FONT oFont NAME "Tahoma" SIZE 0,-11
DEFINE FONT oFontB NAME "Tahoma" SIZE 0,-14 BOLD
DEFINE FONT oFontTitle NAME "Calibri" SIZE 0,-16
EjemploDockPnel()
oFont:End()
oFontB:End()
oFontTitle:End()
Return nil
//----------------------------------------------------------------------------//
Static Function EjemploDockPnel()
local oWnd
local oDock1
local oDock2
local oDock3
local oDock4
DEFINE WINDOW oWnd FROM 0, 0 TO 600, 900 ;
PIXEL TITLE "Ejemplo TDockPnel" ;
COLOR CLR_WHITE, Rgb( 182, 182, 182 )
// Panel izquierdo - Barra lateral
oDock1 := TDockPnel():New( oWnd )
WITH OBJECT oDock1
:SetCoors( 10, 10, 560, 210 )
:SetHeightCaption( 40 )
:SetBorderSize( 4 )
:SetCaption( "Panel Lateral" )
:SetColors( CLR_WHITE, METRO_STEEL, METRO_TEAL, CLR_WHITE )
:SetFont( oFontTitle )
:cAlignText := "CC"
:SetCtrlsPnel( { | o, nT, nL, nH, nW | CreaBotonesLateral( o, nT, nL, nH, nW ) } )
:Activate()
END
// Panel central superior
oDock2 := TDockPnel():New( oWnd )
WITH OBJECT oDock2
:SetCoors( 10, 220, 280, 600 )
:SetHeightCaption( 40 )
:SetBorderSize( 4 )
:SetCaption( "Panel Superior" )
:SetColors( CLR_WHITE, METRO_OLIVE, , )
:SetFont( oFontTitle )
:SetCtrlsPnel( { | o, nT, nL, nH, nW | CreaBrowse( o, nT, nL, nH, nW ) } )
:Activate()
END
// Panel central inferior
oDock3 := TDockPnel():New( oWnd )
WITH OBJECT oDock3
:SetCoors( 290, 220, 560, 600 )
:SetHeightCaption( 40 )
:SetBorderSize( 4 )
:SetCaption( "Panel Inferior" )
:SetColors( CLR_WHITE, METRO_CRIMSON, , )
:SetFont( oFontTitle )
:SetCtrlsPnel( { | o, nT, nL, nH, nW | CreaInfo( o, nT, nL, nH, nW ) } )
:Activate()
END
// Panel derecho
oDock4 := TDockPnel():New( oWnd )
WITH OBJECT oDock4
:SetCoors( 10, 610, 560, 880 )
:SetHeightCaption( 40 )
:SetBorderSize( 4 )
:SetCaption( "Panel Derecho" )
:SetColors( CLR_WHITE, METRO_COBALT, , )
:SetFont( oFontTitle )
:lBottom := .T. // T鈹溌ulo abajo
:SetCtrlsPnel( { | o, nT, nL, nH, nW | CreaForm( o, nT, nL, nH, nW ) } )
:Activate()
END
ACTIVATE WINDOW oWnd MAXIMIZED
Return nil
//----------------------------------------------------------------------------//
// Crea botones en el panel lateral
//----------------------------------------------------------------------------//
Static Function CreaBotonesLateral( oP, nT, nL, nH, nW )
local oBtn1, oBtn2, oBtn3, oBtn4
DEFAULT nT := 5
DEFAULT nL := 5
DEFAULT nH := oP:nHeight - 10
DEFAULT nW := oP:nWidth - 10
@ nT, nL BUTTON oBtn1 PROMPT "Archivo" SIZE nW, 40 PIXEL OF oP ;
ACTION MsgInfo( "Opci鈹溾攤n Archivo" )
@ nT + 45, nL BUTTON oBtn2 PROMPT "Editar" SIZE nW, 40 PIXEL OF oP ;
ACTION MsgInfo( "Opci鈹溾攤n Editar" )
@ nT + 90, nL BUTTON oBtn3 PROMPT "Ver" SIZE nW, 40 PIXEL OF oP ;
ACTION MsgInfo( "Opci鈹溾攤n Ver" )
@ nT + 135, nL BUTTON oBtn4 PROMPT "Ayuda" SIZE nW, 40 PIXEL OF oP ;
ACTION MsgInfo( "Opci鈹溾攤n Ayuda" )
Return nil
//----------------------------------------------------------------------------//
// Crea un browse en el panel
//----------------------------------------------------------------------------//
Static Function CreaBrowse( oP, nT, nL, nH, nW )
local oBrw
local aData := { { "Enero", 1000, 1200 }, ;
{ "Febrero", 1100, 1300 }, ;
{ "Marzo", 1050, 1800 }, ;
{ "Abril", 1825, 1975 }, ;
{ "Mayo", 2000, 1670 }, ;
{ "Junio", 970, 1025 }, ;
{ "Julio", 1150, 1600 }, ;
{ "Agosto", 1250, 1700 } }
DEFAULT nT := 2
DEFAULT nL := 2
DEFAULT nH := oP:nHeight - 4
DEFAULT nW := oP:nWidth - 4
@ nT, nL XBROWSE oBrw SIZE nW, nH PIXEL OF oP ;
DATASOURCE aData ;
COLUMNS 1, 2, 3 ;
HEADERS "Mes", "Ventas", "Costos" ;
LINES STYLE FLAT
WITH OBJECT oBrw
:lRecordSelector := .F.
:lHScroll := .F.
:lVScroll := .F.
:l2007 := .F.
:nStretchCol := 1
:lFitGridHeight := .T.
:nHeaderHeight := 28
:nRowHeight := 24
:nMarqueeStyle := MARQSTYLE_HIGHLROW
:bClrStd := { || { Rgb( 88, 88, 88 ), CLR_WHITE } }
:lFullGrid := .T.
:SetFont( oFont )
AEVal( :aCols, { | o | o:cEditPicture := "9,999" }, 2, 3 )
:CreateFromCode()
END
Return oBrw
//----------------------------------------------------------------------------//
// Crea un gr鈹溍璮ico en el panel
//----------------------------------------------------------------------------//
Static Function CreaInfo( oP, nT, nL, nH, nW )
local oBtn1, oBtn2
DEFAULT nT := 10
DEFAULT nL := 10
DEFAULT nH := oP:nHeight - 20
DEFAULT nW := oP:nWidth - 20
@ nT, nL BUTTON oBtn1 PROMPT "Panel Inferior" PIXEL SIZE nW, 40 OF oP ;
ACTION MsgInfo( "Este es un ejemplo de TDockPnel" )
@ nT + 50, nL BUTTON oBtn2 PROMPT "Informaci鈹溾攤n" PIXEL SIZE nW, 40 OF oP ;
ACTION MsgInfo( "Los paneles se adaptan al tama鈹溾枓o" )
Return nil
//----------------------------------------------------------------------------//
// Crea un formulario simple
//----------------------------------------------------------------------------//
Static Function CreaForm( oP, nT, nL, nH, nW )
local oName, oEmail, oBtn
local cName := Space( 40 )
local cEmail := Space( 40 )
DEFAULT nT := 10
DEFAULT nL := 10
@ nT, nL GET oName VAR cName PIXEL SIZE nW - 20, 24 OF oP ;
CUEBANNER "Nombre"
@ nT + 40, nL GET oEmail VAR cEmail PIXEL SIZE nW - 20, 24 OF oP ;
CUEBANNER "Email"
@ nT + 85, nL + 40 BUTTON oBtn PROMPT "Enviar" PIXEL SIZE 100, 30 OF oP ;
ACTION MsgInfo( "Nombre: " + AllTrim( cName ) + CRLF + ;
"Email: " + AllTrim( cEmail ) )
Return nil
//----------------------------------------------------------------------------//