Page 1 of 2

No encuentro las mejoras hechas a xbrowse por franciscoA ??

Posted: Mon Oct 13, 2008 2:36 am
by gabo
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

Posted: Mon Oct 13, 2008 4:15 am
by Daniel Garcia-Gil
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

Posted: Mon Oct 13, 2008 5:05 am
by joseluisysturiz

Posted: Mon Oct 13, 2008 5:07 am
by joseluisysturiz
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
MCFOX,
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.

Posted: Mon Oct 13, 2008 12:56 pm
by Daniel Garcia-Gil
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

Posted: Mon Oct 13, 2008 1:23 pm
by joseluisysturiz
mcfox 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
Gracias colega, reviso y aviso, estamos a la orden por Guatire - Caracas - Venezuela

Re: No encuentro las mejoras hechas a xbrowse por franciscoA

Posted: Mon Oct 13, 2008 2:21 pm
by FranciscoA
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
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

Posted: Mon Oct 13, 2008 3:13 pm
by gabo
efectivamente eso es precisamente lo que buscaba.. gracias!!! a todos por la ayuda
GABO

Posted: Mon Oct 13, 2008 3:15 pm
by gabo
FranciscoA

gornelas@prodigy.net.mx

Gracias!!

Posted: Mon Oct 13, 2008 9:52 pm
by FranciscoA
gabo wrote:FranciscoA

gornelas@prodigy.net.mx

Gracias!!
Gabo, revisa tu correo.
Saludos.
FranciscoA

Posted: Tue Oct 14, 2008 1:39 am
by reinaldocrespo
Por favor enviamela tambien. Gracias.

reinaldo.crespo@gmail.com

Posted: Tue Oct 14, 2008 7:27 am
by joseluisysturiz
Me sumo a la peticion, estoy empeznado con xBrowse y necesito todo lo posible...
joseluisysturiz@yahoo.com

Posted: Tue Oct 14, 2008 9:03 am
by Antonio Linares
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,

Posted: Wed Oct 15, 2008 12:09 am
by FranciscoA
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]ImageImage


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]

Posted: Sun Oct 19, 2008 3:13 pm
by FranciscoA
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]ImageImage




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]