La nueva apariencia de EasyReport

La nueva apariencia de EasyReport

Postby Antonio Linares » Fri Aug 15, 2014 3:39 am

Image

Image
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 35144
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: La nueva apariencia de EasyReport

Postby bpd2000 » Fri Aug 15, 2014 8:33 am

Nice
Thank you
Regards, Greetings

Try FWH. You will enjoy it's simplicity and power.!
User avatar
bpd2000
 
Posts: 121
Joined: Tue Aug 05, 2014 9:48 am
Location: India

Re: La nueva apariencia de EasyReport

Postby lucasdebeltran » 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.
User avatar
lucasdebeltran
 
Posts: 1294
Joined: Tue Jul 21, 2009 8:12 am

Re: La nueva apariencia de EasyReport

Postby cnavarro » 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

Image
Muchas gracias. Many thanks.
Saludos,Regards

Cristobal Navarro - Harbour (r1601050904) - xHarbour (Build 20150603) - VS 2013/15/17 - FWH 17.11

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
User avatar
cnavarro
 
Posts: 3791
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: La nueva apariencia de EasyReport

Postby Antonio Linares » Tue Aug 26, 2014 7:15 am

Cristobal,

Muy bien! :-)

Gracias!
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 35144
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: La nueva apariencia de EasyReport

Postby cnavarro » Tue Aug 26, 2014 3:59 pm

Entonces subo los bmps, el cambio en el código y el .rc modificado, Ok?
Muchas gracias. Many thanks.
Saludos,Regards

Cristobal Navarro - Harbour (r1601050904) - xHarbour (Build 20150603) - VS 2013/15/17 - FWH 17.11

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
User avatar
cnavarro
 
Posts: 3791
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: La nueva apariencia de EasyReport

Postby mastintin » Tue Aug 26, 2014 8: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.
User avatar
mastintin
 
Posts: 1432
Joined: Thu May 27, 2010 2:06 pm

Re: La nueva apariencia de EasyReport

Postby mastintin » Wed Aug 27, 2014 5: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 .
User avatar
mastintin
 
Posts: 1432
Joined: Thu May 27, 2010 2:06 pm

Re: La nueva apariencia de EasyReport

Postby Biel EA6DD » Wed Aug 27, 2014 7: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: Select all  Expand view

IF Empty(cBmpFile3)
   ::hBitMap3  = Bmp2Dis( ::hBitMap1 )
ENDIF
 

Code: Select all  Expand view

#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/
User avatar
Biel EA6DD
 
Posts: 680
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca

Re: La nueva apariencia de EasyReport

Postby cnavarro » Wed Aug 27, 2014 7:39 am

Gracias Biel
La idea es muy buena Manuel
Muchas gracias. Many thanks.
Saludos,Regards

Cristobal Navarro - Harbour (r1601050904) - xHarbour (Build 20150603) - VS 2013/15/17 - FWH 17.11

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
User avatar
cnavarro
 
Posts: 3791
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: La nueva apariencia de EasyReport

Postby mastintin » 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 .
User avatar
mastintin
 
Posts: 1432
Joined: Thu May 27, 2010 2:06 pm

Re: La nueva apariencia de EasyReport

Postby Biel EA6DD » 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/
User avatar
Biel EA6DD
 
Posts: 680
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca

Re: La nueva apariencia de EasyReport

Postby Biel EA6DD » Wed Aug 27, 2014 12:54 pm

Bmp a escala de grises
Code: Select all  Expand view

#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/
User avatar
Biel EA6DD
 
Posts: 680
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca

Re: La nueva apariencia de EasyReport

Postby mastintin » 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 ...
User avatar
mastintin
 
Posts: 1432
Joined: Thu May 27, 2010 2:06 pm

Re: La nueva apariencia de EasyReport

Postby mastintin » Wed Aug 27, 2014 1:26 pm

Listo tengo los cambios en la función BtnBmp .....

Code: Select all  Expand view


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 );
}
 
User avatar
mastintin
 
Posts: 1432
Joined: Thu May 27, 2010 2:06 pm

Next

Return to EasyReport, EasyDialog y EasyPreview

Who is online

Users browsing this forum: No registered users and 1 guest