Color de Fondo con Gradient en xBrowse

Color de Fondo con Gradient en xBrowse

Postby acuellar » Fri Apr 15, 2011 2:35 pm

Antonio / Daniel

He actualizado mi FWH y usaba lo siguiente:
Code: Select all  Expand view

 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:bKeyDown:= {| nKey | iif( nKey=VK_F3,oDlg:End(), ),iif(nKey=VK_RETURN,(oDlg:oBar:aControls[2]:Click(),oBrw:SetFocus() ), ), ;
                    iif( nKey=VK_DELETE,(oDlg:oBar: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:oBrw: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:oBrw:hWnd ) - 22, aRect[ 3 ] + 1, 2, 2,;
                RGB( 235, 244, 253 ), 1 )
      RoundBox( hDC, 1, aRect[ 1 ] - 2, WndWidth( oCol:oBrw: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
Image
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.
User avatar
acuellar
 
Posts: 1594
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Color de Fondo con Gradient en xBrowse

Postby armando.lagunas » Fri Apr 15, 2011 3:25 pm

hola:

yo lo que hago es lo siguiente:

Code: Select all  Expand view

...
...
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
Image

un registro
Image

espero que te sirva.

saludos
SkyPe: armando.lagunas@hotmail.com
Mail: armando.lagunas@gmail.com
User avatar
armando.lagunas
 
Posts: 346
Joined: Mon Oct 05, 2009 3:35 pm
Location: Curico-Chile

Re: Color de Fondo con Gradient en xBrowse

Postby acuellar » Fri Apr 15, 2011 4: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.
User avatar
acuellar
 
Posts: 1594
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Color de Fondo con Gradient en xBrowse

Postby nageswaragunupudi » Sat Apr 16, 2011 6:09 am

In the present version it is enough to write:
Code: Select all  Expand view
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: Select all  Expand view
#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:
Image
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10308
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Color de Fondo con Gradient en xBrowse

Postby acuellar » Sat Apr 16, 2011 1:53 pm

Thanks G. N. Rao.

Run perfect.

Regards,

Adhemar
Saludos,

Adhemar C.
User avatar
acuellar
 
Posts: 1594
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Color de Fondo con Gradient en xBrowse

Postby acuellar » Sat Apr 16, 2011 3: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:

Image

Gracias por la ayuda

Saludos,

Adhemar
Saludos,

Adhemar C.
User avatar
acuellar
 
Posts: 1594
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: groiss and 42 guests