FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index EasyReport, EasyDialog y EasyPreview La nueva apariencia de EasyReport
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
La nueva apariencia de EasyReport
Posted: Fri Aug 15, 2014 03:39 AM


regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 153
Joined: Tue Aug 05, 2014 09:48 AM
Re: La nueva apariencia de EasyReport
Posted: Fri Aug 15, 2014 08:33 AM

Nice
Thank you

Regards, Greetings



Try FWH. You will enjoy it's simplicity and power.!
Posts: 1303
Joined: Tue Jul 21, 2009 08:12 AM
Re: La nueva apariencia de EasyReport
Posted: Sun Aug 17, 2014 10:39 AM

Enhorabuena, tiene una pinta incre铆ble.

Muchas gracias. Many thanks.



Un saludo, Best regards,



Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producci贸n]



Implementando MSVC 2010, FWH64 y ADO.



Abandonando uso xHarbour y SQLRDD.
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: La nueva apariencia de EasyReport
Posted: Tue Aug 26, 2014 12:25 AM
Que os parece si cuando no seleccionamos ningun ejemplo y tenemos la aplicacion en "blanco", los iconos aparecieseen en gris y no solo los prompts de los iconos?
Tambien para las opciones no disponibles en cada momento

Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noci贸n del tiempo

El secreto de la felicidad no est谩 en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: La nueva apariencia de EasyReport
Posted: Tue Aug 26, 2014 07:15 AM

Cristobal,

Muy bien! :-)

Gracias!

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: La nueva apariencia de EasyReport
Posted: Tue Aug 26, 2014 03:59 PM

Entonces subo los bmps, el cambio en el c贸digo y el .rc modificado, Ok?

Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noci贸n del tiempo

El secreto de la felicidad no est谩 en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 1516
Joined: Thu May 27, 2010 02:06 PM
Re: La nueva apariencia de EasyReport
Posted: Tue Aug 26, 2014 08:26 PM
cnavarro wrote:Entonces subo los bmps, el cambio en el c贸digo y el .rc modificado, Ok?

Muy bueno. :-)
He a帽adido los bmp al archivo vdrPellesC.rc y lo he subido al repositorio .
Saludos.
Posts: 1516
Joined: Thu May 27, 2010 02:06 PM
Re: La nueva apariencia de EasyReport
Posted: Wed Aug 27, 2014 05:56 AM

dandole vueltas al asunto de los bmps en gris .... como mejora para fivewin ... creo que existe una funci贸n ( por alg煤n sitio la he visto ) dentro del c贸digo c de fivewin que vuelve un bmp a gris , con eso se podr铆a implementar un metodo en la clase Tbmp que invoc谩ndolo cree un bmp en gris , y de eso cambiar la clase buttonbar con una dataclass ldisableenGris ,si no se especifica un bmp para disabled lo que hace es crearlo en gris y asignarlo . Nos evitar铆a tener que generar nosotros los bmps grises y tener que colocarlos dentro de los recursos , y reducir铆a el tama帽o del fichero recursos .

Posts: 682
Joined: Tue Feb 14, 2006 09:48 AM
Re: La nueva apariencia de EasyReport
Posted: Wed Aug 27, 2014 07:36 AM
As铆 es como lo tengo yo implementado, modificando la clase btnBmp, el m茅todo LoadBitmaps, si no se ha definido el tercer bimap, convierto a gris el primero.
Code (fw): Select all Collapse
IF Empty(cBmpFile3)
   ::hBitMap3  = Bmp2Dis( ::hBitMap1 )
ENDIF

Code (fw): Select all Collapse
#include <windows.h>
#include <hbapi.h>

#define ROSA RGB(255,0,255)
#define BLANCO RGB(255,255,255)
HB_FUNC( BMP2DIS )
{
   HBITMAP hBmpMem, hOldBmp, hOldBmp2;
   COLORREF nColor;
   int nX;
   int nY;

   HDC hDC     = CreateDC("DISPLAY", 0, 0, 0);
   HDC hDCMem  = CreateCompatibleDC( hDC );
   HDC hDCMem2 = CreateCompatibleDC( hDC );
   HBITMAP hBitmap = (HBITMAP) hb_parnl( 1 );

   BITMAP bm;
   GetObject( ( HGDIOBJ ) hBitmap, sizeof( BITMAP ), ( LPSTR ) &bm );

   hBmpMem = CreateCompatibleBitmap( hDC, bm.bmWidth, bm.bmHeight );
   hOldBmp = (HBITMAP) SelectObject( hDCMem, hBmpMem );

   hOldBmp2 = (HBITMAP) SelectObject( hDCMem2, hBitmap );

   BitBlt( hDCMem, 0,0,bm.bmWidth, bm.bmHeight, hDCMem2, 0, 0, SRCCOPY );

   for (nX = 0; nX < bm.bmWidth ; nX++ )
   {
       for (nY = 0; nY < bm.bmHeight ; nY++ )
      {
           nColor = GetPixel( hDCMem, nX, nY );
           if( nColor != ROSA && nColor!=BLANCO )
           {
              SetPixel( hDCMem, nX, nY, RGB( 192, 192, 192) );
           }
       }
   }

   SelectObject( hDCMem, hOldBmp );
   SelectObject( hDCMem2, hOldBmp2 );
   DeleteDC( hDCMem );
   DeleteDC( hDCMem2 );
   DeleteDC( hDC );

   hb_retnl( (LONG) hBmpMem );
}


En las 煤ltimas versiones de FWH ha habido cambios en la clase tBtnBmp, y no lo tengo adaptado a esas versiones, pero creo que se trata solo de poner alg煤n que otro IF y listo.
La funci贸n en C desconozco si la propia librer铆a ya la tiene implementada, quiz谩s no haga falta volver a incluirla, pero bueno por si la necesit谩is estos son los fuentes.
Saludos desde Mallorca
Biel Maim贸
http://bielsys.blogspot.com/
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: La nueva apariencia de EasyReport
Posted: Wed Aug 27, 2014 07:39 AM

Gracias Biel
La idea es muy buena Manuel

Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noci贸n del tiempo

El secreto de la felicidad no est谩 en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 1516
Joined: Thu May 27, 2010 02:06 PM
Re: La nueva apariencia de EasyReport
Posted: Wed Aug 27, 2014 10:58 AM

Biel , lo he intentado pero o algo hago mal o no tengo el resultado esperado :-) .
Me sale como una mancha gris en vez el icono en escala de grises , mirando el c贸digo de la funcion lo que se hace es cambiar los pixeles a gris pero siempre el mismo gris no una escala de grises ( distintos grises dependiendo del color a variar ) .
Una manera de hacerlo seria sacar el color del pixel sacar su valor de color R ( por ejemplo ) y asignarle el valor al pixel rgb( valorR , 0, 0 ) , esto en teor铆a deber铆a sacar el canal r del pixel .

Posts: 682
Joined: Tue Feb 14, 2006 09:48 AM
Re: La nueva apariencia de EasyReport
Posted: Wed Aug 27, 2014 12:19 PM

Cierto, est谩 funci贸n no convierte a escala de gris sino que pasa a gris todos los colores menos blanco y fucsia.

A mi gusta para el efecto disabled, pero si es un bmp con poco blaco y fucsia efectivamente queda una mancha. Creo que tengo otra que convierte a escala de grises, la busco.

Saludos desde Mallorca
Biel Maim贸
http://bielsys.blogspot.com/
Posts: 682
Joined: Tue Feb 14, 2006 09:48 AM
Re: La nueva apariencia de EasyReport
Posted: Wed Aug 27, 2014 12:54 PM
Bmp a escala de grises
Code (fw): Select all Collapse
#define FUCSIA RGB(255,0,255)
#define BLANCO RGB(255,255,255)
HB_FUNC( BMP2DIS )
{
   HBITMAP hBmpMem, hOldBmp, hOldBmp2;
   COLORREF nColor;
   int nX;
   int nY;
   int red,green,blue;

   HDC hDC     = CreateDC("DISPLAY", 0, 0, 0);
   HDC hDCMem  = CreateCompatibleDC( hDC );
   HDC hDCMem2 = CreateCompatibleDC( hDC );
   HBITMAP hBitmap = (HBITMAP) hb_parnl( 1 );

   BITMAP bm;
   GetObject( ( HGDIOBJ ) hBitmap, sizeof( BITMAP ), ( LPSTR ) &bm );

   hBmpMem = CreateCompatibleBitmap( hDC, bm.bmWidth, bm.bmHeight );
   hOldBmp = (HBITMAP) SelectObject( hDCMem, hBmpMem );

   hOldBmp2 = (HBITMAP) SelectObject( hDCMem2, hBitmap );

   BitBlt( hDCMem, 0,0,bm.bmWidth, bm.bmHeight, hDCMem2, 0, 0, SRCCOPY );

   for (nX = 0; nX < bm.bmWidth ; nX++ )
   {
       for (nY = 0; nY < bm.bmHeight ; nY++ )
      {
           nColor = GetPixel( hDCMem, nX, nY );
           if( nColor != FUCSIA && nColor!=BLANCO )
           {
              red = GetRValue( nColor ) ;
              green = GetGValue( nColor ) ;
              blue = GetBValue( nColor )  ;
              nColor = (0.3 * red + 0.59 * green + 0.11 * blue + 0.5 );
              SetPixel( hDCMem, nX, nY, RGB( nColor , nColor , nColor ) );
           }
       }
   }

   SelectObject( hDCMem, hOldBmp );
   SelectObject( hDCMem2, hOldBmp2 );
   DeleteDC( hDCMem );
   DeleteDC( hDCMem2 );
   DeleteDC( hDC );

   hb_retnl( (LONG) hBmpMem );
}
Saludos desde Mallorca
Biel Maim贸
http://bielsys.blogspot.com/
Posts: 1516
Joined: Thu May 27, 2010 02:06 PM
Re: La nueva apariencia de EasyReport
Posted: Wed Aug 27, 2014 12:57 PM

Muchas gracias Biel , tambi茅n existia ( sabia que en alg煤n sitio estaba ) BMPTOGRAY( hbitmap ) que pertenece a el archivo c5new.c enlazado en fivewin ....
Tu funci贸n da un resultado mas oscuro , el otro quiz谩s en demasiado claro ... a gustos colores ... me quedo con tu funci贸n ...

Posts: 1516
Joined: Thu May 27, 2010 02:06 PM
Re: La nueva apariencia de EasyReport
Posted: Wed Aug 27, 2014 01:26 PM
Listo tengo los cambios en la funci贸n BtnBmp .....

Code (fw): Select all Collapse
CLASS TBtnBmp FROM TControl

....

  DATA   lDisableToGray INIT .t.    // a帽adido
....


METHOD LoadBitmaps( )
.....

 if ! Empty( cResName2 )
      ......
   endif
   if Empty( cResName3 ) .and. Empty(  cBmpFile3 )  // a帽adido ...
      IF ! Empty( cResName1 )
         cResName3:= cResName1
      endif
      IF ! Empty( cBmpFile1 )
         cBmpFile3:= cBmpFile1
      endif
   endif

if ! Empty( cResName3 )
     IF  FindResource( GetResources(), cResName3 , 10 )  != 0
        ....
     ELSE
         ....
      endif

      IF ::lDisableToGray  // a帽adido
         ::hBitmap3:= BMP2DIS( ::hBitmap1  )
      endif

     ::HasAlpha( ::hBitmap3, BTN_DISABLE )
   endif

.....

  if ! Empty( cBmpFile3 )
      if File( cBmpFile3 )
         ::cBmpFile3 = cBmpFile3
         if Upper( Right( cBmpFile3, 3 ) ) == "PNG"
         ....
         else
            ....
        endif
          IF ::lDisableToGray  // a帽adido 
             ::hBitmap3:= BMP2DIS( ::hBitmap1  )
          endif
         ::HasAlpha( ::hBitmap3, BTN_DISABLE )
         ::cBmpFile3 = cBmpFile3
      endif
   endif
   .....


#define FUCSIA RGB(255,0,255)
#define BLANCO RGB(255,255,255)

HB_FUNC( BMP2DIS )
{
   HBITMAP hBmpMem, hOldBmp, hOldBmp2;
   COLORREF nColor;
   int nX;
   int nY;
   int red,green,blue;

   HDC hDC     = CreateDC("DISPLAY", 0, 0, 0);
   HDC hDCMem  = CreateCompatibleDC( hDC );
   HDC hDCMem2 = CreateCompatibleDC( hDC );
   HBITMAP hBitmap = (HBITMAP) hb_parnl( 1 );

   BITMAP bm;
   GetObject( ( HGDIOBJ ) hBitmap, sizeof( BITMAP ), ( LPSTR ) &bm );

   hBmpMem = CreateCompatibleBitmap( hDC, bm.bmWidth, bm.bmHeight );
   hOldBmp = (HBITMAP) SelectObject( hDCMem, hBmpMem );

   hOldBmp2 = (HBITMAP) SelectObject( hDCMem2, hBitmap );

   BitBlt( hDCMem, 0,0,bm.bmWidth, bm.bmHeight, hDCMem2, 0, 0, SRCCOPY );

   for (nX = 0; nX < bm.bmWidth ; nX++ )
   {
       for (nY = 0; nY < bm.bmHeight ; nY++ )
      {
           nColor = GetPixel( hDCMem, nX, nY );
           if( nColor != FUCSIA && nColor!=BLANCO )
           {
              red = GetRValue( nColor ) ;
              green = GetGValue( nColor ) ;
              blue = GetBValue( nColor )  ;
              nColor = (0.3 * red + 0.59 * green + 0.11 * blue + 0.5 );
              SetPixel( hDCMem, nX, nY, RGB( nColor , nColor , nColor ) );
           }
       }
   }

   SelectObject( hDCMem, hOldBmp );
   SelectObject( hDCMem2, hOldBmp2 );
   DeleteDC( hDCMem );
   DeleteDC( hDCMem2 );
   DeleteDC( hDC );

   hb_retnl( (LONG) hBmpMem );
}