No encuentro las mejoras hechas a xbrowse por franciscoA ??
No encuentro las mejoras hechas a xbrowse por franciscoA ??
Hola pues he estado buscando las mejores hechas a xBrowse por FranciscoA si no mal recuerdo.. en la cual se pueden poner diferentes BtnGet en cada columna de xbrowse.. y no he podidos encontrarlas alguien me puede ayudar con el Link.. gracias!!
Saludos
GABO
Saludos
GABO
- Daniel Garcia-Gil
- Posts: 2365
- Joined: Wed Nov 02, 2005 11:46 pm
- Location: Isla de Margarita
- Contact:
yo recientemente hice _ con respecto a las imagenes del btnget del xbrowse, no se si te refieres a esto, revisa el link...
http://forums.fivetechsoft.com/viewtopic.php?p=65732
http://forums.fivetechsoft.com/viewtopic.php?p=65732
- joseluisysturiz
- Posts: 2024
- Joined: Fri Jan 06, 2006 9:28 pm
- Location: Guatire - Caracas - Venezuela
- Contact:
Espero sea esto lo que buscas...
http://forums.fivetechsoft.com/viewtopi ... ght=#64910
http://forums.fivetechsoft.com/viewtopi ... ght=#64910
Dios no está muerto...
Gracias a mi Dios ante todo!
Gracias a mi Dios ante todo!
- joseluisysturiz
- Posts: 2024
- Joined: Fri Jan 06, 2006 9:28 pm
- Location: Guatire - Caracas - Venezuela
- Contact:
MCFOX,mcfox wrote:yo recientemente hice _ con respecto a las imagenes del btnget del xbrowse, no se si te refieres a esto, revisa el link...
http://forums.fivetechsoft.com/viewtopic.php?p=65732
por casualidad no tendras un ejemplito con xbrowse al estilo FACTURACION,? es decir que vaya de columna en columna y al llegar a la ultima salta a la siguiente linea, obviamente que debo hacer los valid de cada columnas, en casi todas usare GET con BOTON para llamar a otro browse como listado o alguna funcion para crear sino hubiese un producto, alguna ayudita no estaria mal...aun no le doy con esta parte...Gracias.
Dios no está muerto...
Gracias a mi Dios ante todo!
Gracias a mi Dios ante todo!
- Daniel Garcia-Gil
- Posts: 2365
- Joined: Wed Nov 02, 2005 11:46 pm
- Location: Isla de Margarita
- Contact:
Jose:
Realmene no lo tengo pero con la opcion FASTEDIT de la xbrowse, va directo a la siguiente celda disponible para editar, sea en la columna siguiente o si es la ultima columna va directo a la 1ra columna de la siguiente fila.
hay un ejemplo que publico antonio que te agrega registros en una dbf vacia.
http://forums.fivetechsoft.com/viewtopic.php?t=12833
puedes agregar registros de forma diferente usando:
xBrw:bPastEof bPastEof // block to evaluate if trying to go down after the last row
espero te sirva de ayuda
Realmene no lo tengo pero con la opcion FASTEDIT de la xbrowse, va directo a la siguiente celda disponible para editar, sea en la columna siguiente o si es la ultima columna va directo a la 1ra columna de la siguiente fila.
hay un ejemplo que publico antonio que te agrega registros en una dbf vacia.
http://forums.fivetechsoft.com/viewtopic.php?t=12833
puedes agregar registros de forma diferente usando:
xBrw:bPastEof bPastEof // block to evaluate if trying to go down after the last row
espero te sirva de ayuda
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
- joseluisysturiz
- Posts: 2024
- Joined: Fri Jan 06, 2006 9:28 pm
- Location: Guatire - Caracas - Venezuela
- Contact:
Gracias colega, reviso y aviso, estamos a la orden por Guatire - Caracas - Venezuelamcfox wrote:Jose:
Realmene no lo tengo pero con la opcion FASTEDIT de la xbrowse, va directo a la siguiente celda disponible para editar, sea en la columna siguiente o si es la ultima columna va directo a la 1ra columna de la siguiente fila.
hay un ejemplo que publico antonio que te agrega registros en una dbf vacia.
http://forums.fivetechsoft.com/viewtopic.php?t=12833
puedes agregar registros de forma diferente usando:
xBrw:bPastEof bPastEof // block to evaluate if trying to go down after the last row
espero te sirva de ayuda
Dios no está muerto...
Gracias a mi Dios ante todo!
Gracias a mi Dios ante todo!
- FranciscoA
- Posts: 1964
- Joined: Fri Jul 18, 2008 1:24 am
- Location: Chinandega, Nicaragua, C.A.
Re: No encuentro las mejoras hechas a xbrowse por franciscoA
Gabo:gabo wrote:Hola pues he estado buscando las mejores hechas a xBrowse por FranciscoA si no mal recuerdo.. en la cual se pueden poner diferentes BtnGet en cada columna de xbrowse.. y no he podidos encontrarlas alguien me puede ayudar con el Link.. gracias!!
Saludos
GABO
Las modificaciones efectuadas por mi fueron sobre como cambiar el color del estilo 2007 al color que desees en las clasees ButtonBar, MsgBar, ButnBmp, buttonb y txbrowse, usando degradados. Si te interesan, dame tu email y te las envío.
Fueron efectuadas en la version FWH 7.12
Saludos
FranciscoA
- FranciscoA
- Posts: 1964
- Joined: Fri Jul 18, 2008 1:24 am
- Location: Chinandega, Nicaragua, C.A.
- reinaldocrespo
- Posts: 918
- Joined: Thu Nov 17, 2005 5:49 pm
- Location: Fort Lauderdale, FL
- joseluisysturiz
- Posts: 2024
- Joined: Fri Jan 06, 2006 9:28 pm
- Location: Guatire - Caracas - Venezuela
- Contact:
Me sumo a la peticion, estoy empeznado con xBrowse y necesito todo lo posible...
joseluisysturiz@yahoo.com
joseluisysturiz@yahoo.com
Dios no está muerto...
Gracias a mi Dios ante todo!
Gracias a mi Dios ante todo!
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
- FranciscoA
- Posts: 1964
- Joined: Fri Jul 18, 2008 1:24 am
- Location: Chinandega, Nicaragua, C.A.
Antonio Linares wrote:Francisco,
Por favor publica _ que has hecho aqui para que los pueda usar quien quiera. Pero por favor no publiques todo el código fuente de esas clases, sólo _. Gracias,
[/img]
Para personalizar colores en Barra de Botones: (FWH 7.12)
CLASS TBar FROM TControl
DATA nGroups, nMode
DATA nBtnWidth, nBtnHeight
DATA l3D, l2007
DATA nRGB1, nRGB2 //FranciscoA: Agosto 31/2008
CLASSDATA lRegistered AS LOGICAL
/*
METHOD New( oWnd, nBtnWidth, nBtnHeight, l3D, cMode, oCursor, l2007 ) CONSTRUCTOR
METHOD NewAt( nRow, nCol, nWidth, nHeight, nBtnWidth, nBtnHeight, oWnd,;
l3D, cMode, oCursor ) CONSTRUCTOR
*/
//FranciscoA: Agosto 31/2008
METHOD New( oWnd, nBtnWidth, nBtnHeight, l3D, cMode, oCursor, l2007, nRGB1, nRGB2) CONSTRUCTOR
METHOD NewAt( nRow, nCol, nWidth, nHeight, nBtnWidth, nBtnHeight, oWnd,;
l3D, cMode, oCursor, nRGB1, nRGB2 ) CONSTRUCTOR
//-------------------------------------------------------------------------
//METHOD New( oWnd, nBtnWidth, nBtnHeight, l3D, cMode, oCursor, l2007 ) CLASS TBar
//FranciscoA: Agosto 31/2008
METHOD New( oWnd, nBtnWidth, nBtnHeight, l3D, cMode, oCursor, l2007, nRGB1, nRGB2) CLASS TBar
local oRect := oWnd:GetCliRect()
/*
DEFAULT nBtnWidth := BAR_HEIGHT, nBtnHeight := BAR_HEIGHT,;
l3D := .f., cMode := "TOP", l2007 := .F.
*/
//FranciscoA: Agosto 31/2008
DEFAULT nBtnWidth := BAR_HEIGHT, nBtnHeight := BAR_HEIGHT,;
l3D := .f., cMode := "TOP", l2007 := .F., nRGB1:=NIL, nRGB2:=NIL
::nStyle = nOR( WS_BORDER, WS_CHILD, WS_VISIBLE, WS_CLIPCHILDREN )
::aControls = {}
::nGroups = 0
::oWnd = oWnd
::nTop = If( cMode == "BOTTOM", oRect:nBottom - nBtnHeight, -1 )
::nLeft = If( cMode == "RIGHT", oRect:nRight - nBtnWidth - ;
If( l3D, 3, 0 ), -1 )
::nBottom = If( cMode == "TOP", nBtnHeight, oRect:nBottom + 1 )
::nRight = If( cMode == "TOP" .or. cMode == "BOTTOM",;
oRect:nRight,;
If( cMode == "LEFT", nBtnWidth + If( l3D, 3, 0 ), oRect:nRight + 1 ) )
::nBtnWidth = nBtnWidth
::nBtnHeight = nBtnHeight
::nId = ::GetNewId()
::lDrag = .f.
::lCaptured = .f.
::nClrPane = If( l3D, GetSysColor( COLOR_BTNFACE ), CLR_GRAY )
::lVisible = .t.
::l3D = l3D
::nMode = AScan( { "TOP", "LEFT", "RIGHT", "BOTTOM", "FLOAT" }, cMode )
::oCursor = oCursor
::lValidating = .f.
::l2007 = l2007
//FranciscoA: Agosto 31/2008
::nRGB1 = nRGB1
::nRGB2 = nRGB2
//----------------------------------------------------------------------------//
//METHOD NewAt( nRow, nCol, nWidth, nHeight, nBtnWidth, nBtnHeight, oWnd, l3D,;
// cMode, oCursor ) CLASS TBar
//FranciscoA: Agosto 31/2008
METHOD NewAt( nRow, nCol, nWidth, nHeight, nBtnWidth, nBtnHeight, oWnd,;
l3D, cMode, oCursor, nRGB1, nRGB2 ) CLASS TBar
local oRect := oWnd:GetCliRect()
/*
DEFAULT nBtnWidth := BAR_HEIGHT, nBtnHeight := BAR_HEIGHT,;
nHeight := BAR_HEIGHT,;
l3D := .f., cMode := "TOP"
*/
//FranciscoA: Agosto 31/2008
DEFAULT nBtnWidth := BAR_HEIGHT, nBtnHeight := BAR_HEIGHT,;
nHeight := BAR_HEIGHT,;
l3D := .f., cMode := "TOP", nRGB1:=NIL, nRGB2:=NIL
::nStyle = nOR( WS_BORDER, WS_CHILD, WS_VISIBLE, WS_CLIPCHILDREN )
::aControls = {}
::nGroups = 0
::oWnd = oWnd
::nTop = nRow
::nLeft = nCol
::nBottom = nRow + nHeight - 1
::nRight = nCol + nWidth - 1
::nBtnWidth = nBtnWidth
::nBtnHeight = nBtnHeight
::nId = ::GetNewId()
::lDrag = .f.
::lCaptured = .f.
::nClrPane = If( l3D, GetSysColor( COLOR_BTNFACE ), CLR_GRAY )
::lVisible = .t.
::l3D = l3D
::nMode = AScan( { "TOP", "LEFT", "RIGHT", "BOTTOM", "FLOAT" }, cMode )
::oCursor = oCursor
::lValidating = .f.
::l2007 = .t. //.f. //FranciscoA
//FranciscoA: Agosto 31/2008
::nRGB1 = nRGB1
::nRGB2 = nRGB2
//----------------------------------------------------------------------------//
METHOD Paint() CLASS TBar
local hOldPen, n := 1
local hDarkPen, hLightPen
local oCtrl
local aInfo := ::DispBegin()
/*
if ::l2007
Gradient( ::hDC, { 0, 0, ::nHeight / 4, ::nWidth },;
nRGB( 219, 230, 244 ), nRGB( 207, 221, 239 ), .T. )
Gradient( ::hDC, { ( ::nHeight / 4 ) + 1, 0, ::nHeight, ::nWidth },;
nRGB( 201, 217, 237 ), nRGB( 231, 242, 255 ), .T. )
*/
//FranciscoA: Agosto 31/2008
//l2007 indica degradar. Si no se indican colores personalizados, por defecto toma el celeste de estilo office 2007
if ::l2007
if ::nRGB1 == NIL .or. ::nRGB2 == NIL //si no escogimos los colores ...
Gradient( ::hDC, { 0, 0, ::nHeight / 4, ::nWidth },;
nRGB( 219, 230, 244 ), nRGB( 207, 221, 239 ), .T. )
Gradient( ::hDC, { ( ::nHeight / 4 ) + 1, 0, ::nHeight, ::nWidth },;
nRGB( 201, 217, 237 ), nRGB( 231, 242, 255 ), .T. )
else //colores personalizados
Gradient( ::hDC, { 0, 0, ::nHeight, ::nWidth },;
::nRGB1, ::nRGB2, .T. )
endif
//00000000000000000000000000000000000000000000000000000000000
Para los colores de la Barra de Mensages:
//-------------------COLOR BARRA DE MENSAJES (Esta funcion es llamada desde la classe TMsgBar() )
Function ClrMsgBar()
Return {nRGB(255,228,150),nRGB(167,128,0)}
//------------------------------------------------------------------------//
METHOD Paint() CLASS TMsgBar
local aInfo := ::DispBegin()
local aColors :=ClrMsgBar()
/*
local hDCMem, hOldBmp
static hBmp
if hBmp == nil .and. ::l2007
hBmp = MsgBar2007( ::hDC )
endif
*/
if ::l2007
* Gradient( ::hDC, { 0, 0, ::nHeight / 4, ::nWidth },;
* nRGB( 219, 230, 244 ), nRGB( 207, 221, 239 ), .T. )
* Gradient( ::hDC, { ( ::nHeight / 4 ) + 1, 0, ::nHeight, ::nWidth },;
* nRGB( 201, 217, 237 ), nRGB( 231, 242, 255 ), .T. )
Gradient( ::hDC, { 0, 0, ::nHeight, ::nWidth },;
aColors[1],aColors[2], .T. ) // nRGB(255,228,100),nRGB(167,128,0), .T. )
/*
hDCMem = CreateCompatibleDC( ::hDC )
hOldBmp = SelectObject( hDCMem, hBmp )
StretchBlt( ::hDC, 0, 0, ::nWidth, ::nHeight, hDCMem, 0, 0, nBmpWidth( hBmp ), nBmpHeight( hBmp ), SRCCOPY )
SelectObject( hDCMem, hOldBmp )
DeleteDC( hDCMem )
*/
::Say( ::nHeight / 4 - 2,;
If( ::lCentered, ( ::nWidth / 2 ) - ( GetTextWidth( ::hDC,;
If( Empty( ::cMsg ), ::cMsgDef, ::cMsg ),;
::oWnd:oFont:hFont ) / 2 ), 4 ), If( Empty( ::cMsg ), ::cMsgDef, ::cMsg ),;
::nClrText,,, .T., .T. )
#ifdef __CLIPPER__
ASend( ::aItem, "Paint" )
#else
ASend( ::aItem, "Paint()" )
#endif
if ::bPainted != nil
Eval( ::bPainted, ::hDC )
endif
::DispEnd( aInfo )
return nil
endif
FillRect( ::hDC, GetClientRect( ::hWnd ), ::oBrush:hBrush )
MsgPaint( ::hWnd, ::cMsg, ::cMsgDef, .t.,;
::lCentered, If( Len( ::aItem ) > 0, ::aItem[ 1 ]:nLeft(), 0 ),;
::nClrText, ::nClrPane, ::oFont:hFont,;
::lInset, ::hDC )
#ifdef __CLIPPER__
ASend( ::aItem, "Paint" )
#else
ASend( ::aItem, "Paint()" )
#endif
MsgPaint3L( ::hWnd, ::nClrPane, ::hDC )
::DispEnd( aInfo )
return nil
//---------
Espero les sea de alguna utilidad.
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.[/img]
Last edited by FranciscoA on Sun Oct 19, 2008 3:14 pm, edited 1 time in total.
- FranciscoA
- Posts: 1964
- Joined: Fri Jul 18, 2008 1:24 am
- Location: Chinandega, Nicaragua, C.A.
FranciscoA wrote:Antonio Linares wrote:Francisco,
Por favor publica _ que has hecho aqui para que los pueda usar quien quiera. Pero por favor no publiques todo el código fuente de esas clases, sólo _. Gracias,
[/img]
PERSONALIZAR COLORES DEL HEADER Y FOOTER DE TXBROWSE
//----------------------------------------------------------------------------//
METHOD PaintHeader( nRow, nCol, nHeight, lInvert, hDC ) CLASS TXBrwColumn
local hBrush
...
...
local aClrHeader //FranciscoA, Sept/14/2008
...
...
** nBottom = nRow + ( nHeight / 3 )
nBottom = nRow + nHeight //FranciscoA Sept/14/2008
if ::oBrw:l2007
aClrHeader := ClrHeader() //FranciscoA, Sept/14/2008
IF aClrHeader[1] == NIL .or. aClrHeader[2] == NIL //si no escogimos los colores ...
if ! lInvert
Gradient( hDC, { nRow - 1, nCol, nBottom, nCol + nWidth + 2 },;
nRGB( 219, 230, 244 ), nRGB( 207, 221, 239 ), .T. )
Gradient( hDC, { nBottom + 1, nCol, nRow + nHeight - 1, nCol + nWidth },;
nRGB( 201, 217, 237 ), nRGB( 231, 242, 255 ), .T. )
else
Gradient( hDC, { nRow - 1, nCol, nBottom, nCol + nWidth },;
nRGB( 255, 253, 222 ), nRGB( 255, 231, 151 ), .T. )
Gradient( hDC, { nBottom + 1, nCol, nRow + nHeight - 1, nCol + nWidth },;
nRGB( 255, 215, 84 ), nRGB( 255, 233, 162 ), .T. )
endif
ELSE //colores personalizados //FranciscoA, Sept/14/2008
if ! lInvert
Gradient( hDC, { nRow - 1, nCol, nBottom, nCol + nWidth + 2 },;
aClrHeader[1], aClrHeader[2], .T. )
else
Gradient( hDC, { nRow - 1, nCol, nBottom, nCol + nWidth + 2 },;
aClrHeader[2], aClrHeader[1], .T. )
endif
ENDIF
else
hBrush := CreateSolidBrush( aColors[ 2 ] )
FillRect( hDC, { nRow, nCol, nRow + nHeight, nCol + nWidth }, hBrush )
DeleteObject( hBrush )
endif
//----------------------------------------------------------------------------//
METHOD PaintFooter( nRow, nCol, nHeight, lInvert ) CLASS TXBrwColumn
local hDC, hBrush
local oFont
local aColors, aBitmap
local cFooter
local nWidth, nBmpRow, nBmpCol, nBmpNo, nBottom
local aClrFooter //FranciscoA
...
...
...
...
**nBottom = nRow + ( nHeight / 3 )
nBottom = nRow + nHeight //FranciscoA Sept/14/2008
if ::oBrw:l2007
aClrFooter := ClrFooter() //FranciscoA, Sept/14/2008
IF aClrFooter[1] == NIL .or. aClrFooter[2] == NIL //si no escogimos los colores ...
if ! lInvert
Gradient( hDC, { nRow - 1, nCol, nBottom, nCol + nWidth + 2 },;
nRGB( 219, 230, 244 ), nRGB( 207, 221, 239 ), .T. )
Gradient( hDC, { nBottom + 1, nCol, nRow + nHeight - 1, nCol + nWidth },;
nRGB( 201, 217, 237 ), nRGB( 231, 242, 255 ), .T. )
else
Gradient( hDC, { nRow - 1, nCol, nBottom, nCol + nWidth },;
nRGB( 255, 253, 222 ), nRGB( 255, 231, 151 ), .T. )
Gradient( hDC, { nBottom + 1, nCol, nRow + nHeight - 1, nCol + nWidth },;
nRGB( 255, 215, 84 ), nRGB( 255, 233, 162 ), .T. )
endif
ELSE //colores personalizados //FranciscoA, Sept/14/2008
Gradient( hDC, { nRow - 1, nCol, nBottom, nCol + nWidth + 2 },;
aClrFooter[1], aClrFooter[2], .T. )
ENDIF
else
hBrush := CreateSolidBrush( aColors[ 2 ] )
FillRect( hDC, {nRow, nCol, nRow + nHeight, nCol + nWidth}, hBrush )
DeleteObject( hBrush )
endif
Usar estas funciones o agregar una DATA
//---------------------------------------------------
Function ClrHeader()
Return { nRGB(255,248,220), nRGB(157, 138,0) } //VERDECITO
//-------------------COLOR FOOTER DEL TXBROWSE
Function ClrFooter()
Return { nRGB(255,248,220), nRGB(157, 138,0) } //VERDECITO
//---------
Espero les sea de alguna utilidad.
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.[/img]