FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Color de Fondo con Gradient en xBrowse
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Color de Fondo con Gradient en xBrowse
Posted: Fri Apr 15, 2011 02:35 PM
Antonio / Daniel

He actualizado mi FWH y usaba lo siguiente:
Code (fw): Select all Collapse
 DEFINE DIALOG oDlg FROM 2, 2 TO 18,55 TITLE "Listados Generados";oDlg:lHelpIcon:=.F.
       oBrw:=TXBrowse():New( oDlg )
       oBrw:nMarqueeStyle := MARQSTYLE_HIGHLROW
       oBrw:SetArray( aFiles, .T. )   
       oBrw:lRecordSelector:=.F.
       oBrw:lTransparent:=.T.
           
       oBrw:aCols[1]:cHeader := "ARCHIVO"
     oBrw:aCols[2]:cHeader := "D E S C R I P C I O N"
       oBrw:aCols[3]:cHeader := "FECHA   "
       oBrw:aCols[4]:cHeader := "HORA" 
       
       oBrw:lHScroll := .F.
     oBrw:bLDblClick:= { || VistaPre( "C:\SISTEMAS\RRHH\"+ aFiles[ oBrw:nArrayAt ][1],1,.F.) }
       
       AEval( oBrw:aCols, { | oCol | oCol:bPaintText := { | oCol, hDC, cData, aRect | PaintCol( oCol, hDC, cData, aRect ) } } )
       
       oBrw:CreateFromCode()
       oBrw:= {| nKey | iif( nKey=VK_F3,oDlg:End(), ),iif(nKey=VK_RETURN,(oDlg:aControls[2]:Click(),oBrw:SetFocus() ), ), ;
                    iif( nKey=VK_DELETE,(oDlg:aControls[4]:CLick(),oBrw:SetFocus() ), )  }

       ACTIVATE DIALOG oDlg CENTERED ON INIT (BotDlg1(oDlg,oBrw),oDlg:Update(),oBrw:Move( 34, 0, oDlg:nWidth()-7, oDlg:nHeight()-70),oBrw:Refresh() )
Return Nil
Function PaintCol( oCol, hDC, cData, aRect )
 
    If oCol:VGetPos() == oBrw:nArrayAt 
      GradientFill( hDC, aRect[ 1 ] - 2, aRect[ 2 ] - 3, aRect[ 3 ] + 1, aRect[ 4 ] + 5,;
           { { 1, RGB( 255, 255, 255 ), RGB( 220, 235, 252 ) } }, .T. )                      
 
      SetBkMode( hDC, 1 )
      RoundBox( hDC, 2, aRect[ 1 ] - 1, WndWidth( oCol:hWnd ) - 22, aRect[ 3 ] + 1, 2, 2,;
                RGB( 235, 244, 253 ), 1 ) 
      RoundBox( hDC, 1, aRect[ 1 ] - 2, WndWidth( oCol:hWnd ) - 21, aRect[ 3 ] + 2, 2, 2,;
                RGB( 125, 162, 206 ), 1 )                 
   Endif

   SetTextColor( hDC, 0 )
   DrawTextEx( hDC, cData, aRect, oCol:nDataStyle )

Return nil
#pragma BEGINDUMP

#include <windows.h>
#include <hbapi.h>

HB_FUNC( ROUNDBOX )
{
   HDC hDC = ( HDC ) hb_parni( 1 );
   HBRUSH hBrush = ( HBRUSH ) GetStockObject( 5 );
   HBRUSH hOldBrush = ( HBRUSH ) SelectObject( hDC, hBrush );
   HPEN hPen, hOldPen ; 

   if( hb_pcount() > 8 )
      hPen = CreatePen( PS_SOLID, hb_parnl( 9 ), ( COLORREF ) hb_parnl( 8 ) );
   else
      hPen = CreatePen( PS_SOLID, 1, ( COLORREF ) hb_parnl( 8 ) );
   
   hOldPen = ( HPEN ) SelectObject( hDC, hPen );
   hb_retl( RoundRect( hDC ,hb_parni( 2 ), hb_parni( 3 ),hb_parni( 4 ),hb_parni( 5 ),hb_parni( 6 ),hb_parni( 7 ) ) );

   SelectObject( hDC, hOldBrush );
   DeleteObject( hBrush );
   SelectObject( hDC, hOldPen );
   DeleteObject( hPen );
}

#pragma ENDDUMP

ME salia con fondo blanco, ahora sale color plomo

Al pulsar PgUP me sale un mensaje que no pude cargar freeimage.dll, antes no salia ó hay que poner esta libreria en el lugar del donde esta el EXE.


Hay otra forma de hacerlo con la nueva version?
Gracias por la ayuda

Saludos,

Adhemar
Saludos,



Adhemar C.
Posts: 346
Joined: Mon Oct 05, 2009 03:35 PM
Re: Color de Fondo con Gradient en xBrowse
Posted: Fri Apr 15, 2011 03:25 PM
hola:

yo lo que hago es lo siguiente:

Code (fw): Select all Collapse
...
...
aColor := {{ 0.50, CLR_YELLOW, CLR_WHITE }, { 0.50, CLR_WHITE, CLR_YELLOW }}
...
...
  REDEFINE XBROWSE oBrw ID 101 OF oDlg COLUMNS "CODE","NOMB" ALIAS "PA06" ;
                     AUTOSORT FOOTERS BACKGROUND aColor VERTICAL
...
...


y se ve asi...

artos registros


un registro


espero que te sirva.

saludos
SkyPe: armando.lagunas@hotmail.com

Mail: armando.lagunas@gmail.com
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Color de Fondo con Gradient en xBrowse
Posted: Fri Apr 15, 2011 04:13 PM

Gracias Armando.

No se como aplicarlo a la forma como tengo el xBrowse
Tendria que ser algo asi xBrw:nClrBackground:={ } pero no funciona

Parece que el problema que tengo es cuando habilito el lTransparent
Si lo quito sale blanco, pero el resultado no es el esperado ya que el selector se repite.

Saludos,

Adhemar

Saludos,



Adhemar C.
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Color de Fondo con Gradient en xBrowse
Posted: Sat Apr 16, 2011 06:09 AM
In the present version it is enough to write:
Code (fw): Select all Collapse
oBrw:nMarqueeStyle := MARQSTYLE_HIGHLWIN7  // 7

There is no need to write any other code ( like obrw:ltransparent or oCol:bPanitText, etc ).
This one line of code gives the window 7 line effect.

XBrowse requires freeimg.dll. We may get runtime errors without the DLL.

Sample code:
Code (fw): Select all Collapse
#include "FiveWin.Ch"
#include "ord.ch"
#include "xbrowse.ch"

REQUEST DBFCDX

//----------------------------------------------------------------------------//

function Main()

   local oWnd, oBrw

   USE CUSTOMER NEW VIA "DBFCDX"

   DEFINE WINDOW oWnd
   @ 0,0 XBROWSE oBrw OF oWnd ALIAS "CUSTOMER" AUTOCOLS AUTOSORT CELL LINES
   oBrw:nMarqueeStyle   := MARQSTYLE_HIGHLWIN7
   oBrw:createFromCode()
   oWnd:oClient         := oBrw
   ACTIVATE WINDOW oWnd

return nil

//----------------------------------------------------------------------------//



Screen Shot:
Regards



G. N. Rao.

Hyderabad, India
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Color de Fondo con Gradient en xBrowse
Posted: Sat Apr 16, 2011 01:53 PM

Thanks G. N. Rao.

Run perfect.

Regards,

Adhemar

Saludos,



Adhemar C.
Posts: 1710
Joined: Tue Oct 28, 2008 06:26 PM
Re: Color de Fondo con Gradient en xBrowse
Posted: Sat Apr 16, 2011 03:39 PM
Amigos, como hago para colocar dos colores en el fondo del browse, quiero que numeración de las lineas salga de color plomo asi:



Gracias por la ayuda

Saludos,

Adhemar
Saludos,



Adhemar C.

Continue the discussion