Marcelo Roggeri wrote:Hola Rolando te paso una imagen de lo que me hice yo, es algo muy básico pero funcional.
Espero que te sirva de base el ejemplo.
Saludos
// FWH Class TOutLook2003
#include "FiveWin.ch"
#include "Splitter.ch"
#include "OutLook.ch"
//----------------------------------------------------------------------------//
function Main()
local oWnd, oOutLook2003, oStatusBar, oSplit, cCombo, oRad, nValue := 1
local oFont, oExBar, oPanel1, oPanel2, bClick := { | o | MsgInfo( o:GetText() ) }
local oBar
DEFINE WINDOW oWnd TITLE "FWH new Class TOutLook2003" MDI
DEFINE BUTTONBAR oBar OF oWnd SIZE 60, 60 2007
DEFINE BUTTON OF oBar ACTION oDlg1(oWnd,oBar) ;
RESOURCE "attach" PROMPT "Attach" TOOLTIP "Attach"
DEFINE BUTTON OF oBar ACTION MsgInfo( "calendar" ) ;
RESOURCE "calendar" PROMPT "Calendar" WHEN .F. TOOLTIP "Calendar"
DEFINE OUTLOOK2003 oOutLook2003 OF oWnd ;
PROMPTS "Mail", "Calendar", "Contacts", "" ;
BITMAPS "..\bitmaps\mail.bmp", "..\bitmaps\calendar.bmp", "..\bitmaps\notes.bmp"
oWnd:oLeft = nil // Because the splitter is going to control the resize
SetParent( oOutLook2003:hWnd, oWnd:hWnd )
oWnd:oClient = nil
@ 0, 191 SPLITTER oSplit ;
VERTICAL _3DLOOK ;
PREVIOUS CONTROLS oOutLook2003 ;
HINDS CONTROLS oWnd:oWndClient ;
SIZE 4, oWnd:nHeight - 70 PIXEL ;
OF oWnd
SetParent( oSplit:hWnd, oWnd:hWnd )
ACTIVATE WINDOW oWnd ;
ON RESIZE ( oSplit:Adjust(),;
WndLeft( oWnd:oWndClient:hWnd, oSplit:nRight + 1 ),;
WndWidth( oWnd:oWndClient:hWnd, oWnd:nWidth - oOutLook2003:nWidth - 23 ) )
return nil
//----------------------------------------------------------------------------//
function oDlg1(oWnd,oBar)
Local oDlg1,obar1
Local aClient := GetClientRect (oWnd:hWnd )
DEFINE DIALOG oDlg1 of oWnd:oWndClient
oDlg1:nStyle := WS_CHILD
oDlg1:nTop = oBar:nHeight
oDlg1:nLeft = 0
oDlg1:nBottom = aClient[3] - 1
oDlg1:nRight = aClient[4]
oDlg1:SetColor( CLR_WHITE, CLR_WHITE )
DEFINE BUTTONBAR oBar1 OF oDlg1 SIZE 60, 60 2007
ACTIVATE DIALOG oDlg1
return nil
oRS:oWnd:oBottom := TTabs():New( 0, 0, {"TODOS","A","B","C","D","E","F","G","H","I","J","K","L","M","N","Ñ","O","P","Q","R","S","T","U","V","W","X","Y","Z"}, , oRS:oWnd, 1,,, .T.,,, 25,,)
oRS:oWnd:oBottom:bAction:={|nOption, nOldOption, oTabs|oTabs:CARGO:cLetra:=if(nOption=1,"",oTabs:aPrompts[nOption]), EVAL(oTabs:CARGO:oBrw:bGotFocus,oTabs:CARGO:oBrw) }
oRS:oWnd:oBottom:nOrientation := 2
oRS:oWnd:oBottom:oFont:=TFont():New("Ms Sans Serif", 0, -9 )
oRS:oWnd:oBottom:oBold:=TFont():New("Ms Sans Serif", 1, -10, , .T. )
oRS:oWnd:oBottom:Default()
oRS:oWnd:oBottom:CARGO := oRS
RSalazarU wrote:Jose luis:
Las pestañas las hago con el control TTabs()
- Code: Select all Expand view
oRS:oWnd:oBottom := TTabs():New( 0, 0, {"TODOS","A","B","C","D","E","F","G","H","I","J","K","L","M","N","Ñ","O","P","Q","R","S","T","U","V","W","X","Y","Z"}, , oRS:oWnd, 1,,, .T.,,, 25,,)
oRS:oWnd:oBottom:bAction:={|nOption, nOldOption, oTabs|oTabs:CARGO:cLetra:=if(nOption=1,"",oTabs:aPrompts[nOption]), EVAL(oTabs:CARGO:oBrw:bGotFocus,oTabs:CARGO:oBrw) }
oRS:oWnd:oBottom:nOrientation := 2
oRS:oWnd:oBottom:oFont:=TFont():New("Ms Sans Serif", 0, -9 )
oRS:oWnd:oBottom:oBold:=TFont():New("Ms Sans Serif", 1, -10, , .T. )
oRS:oWnd:oBottom:Default()
oRS:oWnd:oBottom:CARGO := oRS
Por favor me podrias explicar a que se refieren los siguientes puntos:
-Control de miembros: esto creo que es el objetivo de la agenda
-Ofrendas: como haces la capturas de los datos de ofrendas
-Clasificaciones: ??
-Agrupaciones: ??
-Crecimiento eclesiastico: ??
Silvio:
Revisare tu codigo, tratare de poner un ejemplo
oRS:oSplit:=TSplitter():New(1,oRS:oWnd:oLeft:nWidth+1,.T., {oRS:oWnd:oLeft},.F.,{oRS:oWnd:oRight}, .T., {|| 100}, {|| 1},oRS:oWnd,, W_SPLITER, 0, .T., .T.,, .F., .T. )
oRS:oSplit:oBrush := TBrush():New( ,,,"Gancho",,"RESIZE")
oRS:oSplit:oBrush:Resize( oRS:oSplit,, W_SPLITER-2 )
RSalazarU wrote:Jose Luis:
Agradesco tu respuesta.
Por favor me puedes dar tu correo (no lo pude obtener mirando tu profile).
Estoy en el tema de la base de datos de miembros de una iglesia, por lo que toda informacion que se refiera a esto me interesa. Sin embargo recien estoy empezando; algunos datos los manejan, en forma confidsencial, la administracion y los pastores.
Respecto a la espiral, te cuento que es algo sencillo de hacer, Al TSplitter() le coloque un TBrush() que tiene un BITMAP(yo lo hice desde recurso) con un solo "Gancho" (espira); el resto es automatico.
- Code: Select all Expand view
oRS:oSplit:=TSplitter():New(1,oRS:oWnd:oLeft:nWidth+1,.T., {oRS:oWnd:oLeft},.F.,{oRS:oWnd:oRight}, .T., {|| 100}, {|| 1},oRS:oWnd,, W_SPLITER, 0, .T., .T.,, .F., .T. )
oRS:oSplit:oBrush := TBrush():New( ,,,"Gancho",,"RESIZE")
oRS:oSplit:oBrush:Resize( oRS:oSplit,, W_SPLITER-2 )
Rolando.
RSalazarU wrote:
Respecto a la espiral, te cuento que es algo sencillo de hacer, Al TSplitter() le coloque un TBrush() que tiene un BITMAP(yo lo hice desde recurso) con un solo "Gancho" (espira); el resto es automatico.
- Code: Select all Expand view
oRS:oSplit:=TSplitter():New(1,oRS:oWnd:oLeft:nWidth+1,.T., {oRS:oWnd:oLeft},.F.,{oRS:oWnd:oRight}, .T., {|| 100}, {|| 1},oRS:oWnd,, W_SPLITER, 0, .T., .T.,, .F., .T. )
oRS:oSplit:oBrush := TBrush():New( ,,,"Gancho",,"RESIZE")
oRS:oSplit:oBrush:Resize( oRS:oSplit,, W_SPLITER-2 )
Rolando.
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: No registered users and 92 guests