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: 42080
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: 153
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: 1303
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
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
User avatar
cnavarro
 
Posts: 6541
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: 42080
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?
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
User avatar
cnavarro
 
Posts: 6541
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: 1516
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: 1516
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: 682
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
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
User avatar
cnavarro
 
Posts: 6541
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: 1516
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: 682
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: 682
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: 1516
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: 1516
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