FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour xbrowse gradiente con bitmap
Posts: 694
Joined: Fri Oct 07, 2005 06:58 AM
xbrowse gradiente con bitmap
Posted: Tue Apr 13, 2010 12:24 PM
Al incluir que la fila selecciona del browse se muestre con el fondo en gradiente los bitmap del mismo se muestran con un fondo negro:



Si en el mismo browse quito el gradiente y lo dejo con un color solido de fondo para la fila selecciona, funciona correctamente.

Con el gradiente y obrw:lTransparent := .T. tambien funciona bien pero no muestra el color indicado en bclrstd.
Code (fw): Select all Collapse
oBrw:bClrStd          := { || if( ::oRs<>NIL .and. ::oRs:AbsolutePosition % 2 == 0, { CLR_BLACK, CLR_BRWFONDO1 }, { CLR_BLACK, CLR_BRWFONDO2} ) }
Un saludo

Fernando González Diez

ALSIS Sistemas Informáticos
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: xbrowse gradiente con bitmap
Posted: Tue Apr 13, 2010 02:12 PM
Alpha bitmaps are painted correctly over gradient rows, but not normal bitmaps.

You may try this fix to xbrowse.prg:
Locate the following code in xbrowse.prg in method PaintData.
Code (fw): Select all Collapse
      else
         if SetAlpha() .and. aBitmap[ BITMAP_ALPHA ]
            ABPaint( hDC, nBmpCol, nBmpRow,aBitmap[ BITMAP_HANDLE ], ::nAlphaLevel() )
         else
            if ::oBrw:lTransparent // transparent bitmaps with brush

Please change the last line as:
Code (fw): Select all Collapse
            if ::oBrw:lTransparent .or. ValType( aColors[ 2 ] ) == 'A'

With this change non-alpha bitmaps are also painted correctly on gradient rows.
Regards



G. N. Rao.

Hyderabad, India
Posts: 694
Joined: Fri Oct 07, 2005 06:58 AM
Re: xbrowse gradiente con bitmap
Posted: Tue Apr 13, 2010 02:52 PM
Muchas gracias por la respuesta.

Ya no muestra el borde negro pero lo muestra con el color de fondo del browse



De todas formas trataré de trabajar con imagenes alpha.
Un saludo

Fernando González Diez

ALSIS Sistemas Informáticos
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: xbrowse gradiente con bitmap
Posted: Tue Apr 13, 2010 04:15 PM
If you want to solve this issue also, please do one more correction to xbrowse.prg method PaintData
Locate this line:
Code (fw): Select all Collapse
      // Paint bitmaps
      DEFAULT aBitmap[ BITMAP_ZEROCLR ] := GetZeroZeroClr( hDC, aBitmap[ BITMAP_HANDLE ] )

Please remove "DEFAULT".
Revised code is:
Code (fw): Select all Collapse
      // Paint bitmaps
      aBitmap[ BITMAP_ZEROCLR ] := GetZeroZeroClr( hDC, aBitmap[ BITMAP_HANDLE ] )

Now for testing, I am posting here a modified xbrowgrd.prg from samples folder:
Code (fw): Select all Collapse
#include 'fivewin.ch'
#include 'xbrowse.ch'

function Main()

   local oDlg, oBrw, oFont
   local aRowGrad, aSelGrad, aStdGrad

   local n := RGB( 157, 248, 255 )

   XbrNumFormat( 'E', .t. )

   aRowGrad := { { .5, RGB(  0,251,220), RGB(221,255,251) }, ;
                 { .5, RGB(221,255,251), RGB(  0,251,220) } }

   aSelGrad := { { .5, RGB(255,224,126), RGB(255,255,193) }, ;
                 { .5, RGB(255,255,193), RGB(255,224,126) } }

   USE CUSTOMER ALIAS CUST

   DEFINE FONT oFont NAME 'Tahoma' SIZE 0,-14
   DEFINE DIALOG oDlg SIZE 640,440 PIXEL ;
      FONT oFont TITLE 'XBrowse Gradient Rows FWH 9.12'

   @ 10,10 XBROWSE oBrw OF oDlg ;
      SIZE -10,-10 PIXEL ;
      COLUMNS 'FIRST', 'HIREDATE', 'MARRIED', 'SALARY' ;
      ALIAS 'CUST' LINES NOBORDER

   oBrw:Married:SetCheck()  // Default FWH Bitmap is Alpha

   WITH OBJECT oBrw:First
      :AddBitmap( '\fwh\bitmaps\open2.bmp' ) // non-alpha bitmap
      :bBmpData   := { || 1 }
   END

   WITH OBJECT oBrw:HireDate
      :AddBitmap( '\fwh\bitmaps\Alphabmp\task.bmp' )  // alpha
      :bBmpData   := { || 1 }
   END

   WITH OBJECT oBrw
      :nStretchCol   := 1
      :nMarqueeStyle := 4
      :bClrSelFocus  := { || { CLR_BLACK, aSelGrad } }
      :bClrRowFocus  := { || { CLR_BLACK, aRowGrad } }
   END

   oBrw:CreateFromCode()

   ACTIVATE DIALOG oDlg CENTERED
   CLOSE CUST
   RELEASE FONT oFont

return nil

Before corrections:


Column 1 is normal bitmap and columns 2 and 3 are Alpha bitmaps.

After making the two corrections to xbrowse.prg


The TWO corrections should solve the issue. Please check with your bitmaps and I hope you will get acceptable result.

In any case we get a better appearance with Alpha Bitmaps.
Regards



G. N. Rao.

Hyderabad, India
Posts: 694
Joined: Fri Oct 07, 2005 06:58 AM
Re: xbrowse gradiente con bitmap
Posted: Tue Apr 13, 2010 06:58 PM
Muchas gracias por toda la ayuda

He cambiado las imagenes a Alpha y mejora mucho la visión de las mismas.

Lo que he notado es que la imagen parece que muestra un pequeño borde


La columna la defino:
Code (fw): Select all Collapse
oCol:SetCheck( { IMG1_CHECKON, IMG1_CHECKOFF } )
Un saludo

Fernando González Diez

ALSIS Sistemas Informáticos
Posts: 694
Joined: Fri Oct 07, 2005 06:58 AM
Re: xbrowse gradiente con bitmap
Posted: Tue Apr 27, 2010 02:56 PM

Perdón por la tardanza en contestar.

Aplicando los cambios que mencionas, las imagenes de 24 bits se muestran perfectamente

Muchas gracias por tu ayuda.

Un saludo

Fernando González Diez

ALSIS Sistemas Informáticos

Continue the discussion