Xbrowse con efecto pijama ( zebra)

Xbrowse con efecto pijama ( zebra)

Postby mastintin » Mon May 04, 2015 5:14 pm

Despues de darle muchas vueltas al tema del efecto pijama que relentizaba los xbrowse con ads , he llegado a una implementacion facil con pocos cambios en el xbrowse ...

Nuevas datas
Code: Select all  Expand view


DATA nRowZebra  AS NUMERIC INIT 0
DATA aClrZebra
DATA lZebra   AS LOGICAL INIT .f.

 


Asignamos asi al crear el xbrowse:

Code: Select all  Expand view


  ::lZebra := .t.
  ::aClrZebra  := { { 0,  RGB(255,255,255) }, { 0, rgb(237,243,254) } }
  ::bClrStd := { || ::aClrZebra[ ::nRowZebra %2 + 1 ] }
 
 


o se puede crear un metodo SetZebra si se quiere ...


Code: Select all  Expand view


METHOD SetZebra( lZebra, aClrZebra ) CLASS TXBrowse
DEFAULT lZebra := .t.
DEFAULT aClrZebra :=  { { 0,  RGB(255,255,255) }, { 0, rgb(237,243,254) } }
::lZebra := lZebra
if ::lZebra
    ::aClrZebra  := aClrZebra  
    ::bClrStd := { || ::aClrZebra[ ::nRowZebra %2 + 1 ] }
else
   ::bClrStd :=  {|| { CLR_BLACK, GetSysColor( COLOR_WINDOW )} }
endif
Return nil

 


solo dos cambios en el codigo xbrowse ....

Code: Select all  Expand view

METHOD Paint() CLASS TXBrowse
......

   do while nRowPos <= nMaxRows

      // We must also paint some times after the last visible column

      IF ::lZebra     // nuevo
         ::nRowZebra := nRowPos   // nuevo
      endif  // nuevo
      if hSelBrush != nil
      .....

  METHOD FullPaint() INLINE ( ::lTransparent .or. ::lMergeVert .or. ;
                               ::nMarqueeStyle == MARQSTYLE_HIGHLWIN7 .OR. ::lZebra )


 


y listo ....
User avatar
mastintin
 
Posts: 1516
Joined: Thu May 27, 2010 2:06 pm

Re: Xbrowse con efecto pijama ( zebra)

Postby Silvio.Falconi » Tue May 05, 2015 10:28 am

thanks
until now I made with a simply function ...

IF lPigiama
set_Pijama( .T.,oBrw,cColor1,cColor2)
Endif


now it is too good !!!
Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)
I use : FiveWin for Harbour November 2023 - January 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
User avatar
Silvio.Falconi
 
Posts: 7048
Joined: Thu Oct 18, 2012 7:17 pm

Re: Xbrowse con efecto pijama ( zebra)

Postby russimicro » Thu May 07, 2015 12:18 am

Perfecto...

Probado con dbfcdx, ads y sqlrdd

Gracias
Johnson Russi
russimicro
 
Posts: 254
Joined: Sun Jan 31, 2010 3:30 pm
Location: Bucaramanga - Colombia

Re: Xbrowse con efecto pijama ( zebra)

Postby lucasdebeltran » Thu May 07, 2015 7:02 pm

Manuel,

¿Has probado así?:

Code: Select all  Expand view
:bClrStd          := { || { CLR_BLACK, If( oBrowse:KeyNo % 2 == 1, CLR_WHITE, RGB( 249, 249, 249 ) ) } }
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: Xbrowse con efecto pijama ( zebra)

Postby mastintin » Thu May 07, 2015 7:28 pm

lucasdebeltran wrote:Manuel,

¿Has probado así?:

Code: Select all  Expand view
:bClrStd          := { || { CLR_BLACK, If( oBrowse:KeyNo % 2 == 1, CLR_WHITE, RGB( 249, 249, 249 ) ) } }


Precisamente eso es lo que quiero evitar con esta implementación . No tener que llamar a una función de database que según cual puede relentizar el browser hasta limites de dejarlo inusable .
por ejemplo en ads con muchos registros , la función a usar no devuelve un numero de registro sino un porcentaje , con lo que el efecto no funciona al tener varios registros el mismo porcentaje )
Intenta ese código con un sistema ads en servidor de no muchos registros poniéndole para que respete los filtros ( usando por tanto adskeyno(,,1) ). ...cada movimiento del xbrowse se trasforma en 15 segundos de refresco :D ( y a veces mas )
Añadiendo la data ::nRowZebra y asignándola dependemos solo del propio xbrowse :D
User avatar
mastintin
 
Posts: 1516
Joined: Thu May 27, 2010 2:06 pm

Re: Xbrowse con efecto pijama ( zebra)

Postby lucasdebeltran » Thu May 07, 2015 7:34 pm

Entendido, a ver si entonces si lo incluyen en FWH.

Se suponía que la obtención de dicho valor la había optimizado Mr. Nages.
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: Xbrowse con efecto pijama ( zebra)

Postby mastintin » Thu May 07, 2015 7:39 pm

lucasdebeltran wrote:Entendido, a ver si entonces si lo incluyen en FWH.

Se suponía que la obtención de dicho valor la había optimizado Mr. Nages.

Nages ha realizado una implementación magnifica y ha puesto un código que vuela , y prima como es lógico la velocidad sobre un efecto estético a ademas las funciones de cada motor de database no las pone el , son las que nos dan en este caso Advantage-sap y no podemos hacer mucho :D
User avatar
mastintin
 
Posts: 1516
Joined: Thu May 27, 2010 2:06 pm

Re: Xbrowse con efecto pijama ( zebra)

Postby Marcelo Via Giglio » Fri Aug 28, 2015 12:19 am

Holas,

ya esta implementado esto en FWH

saludos

Marcelo
Marcelo Via Giglio
 
Posts: 1064
Joined: Fri Oct 07, 2005 3:33 pm
Location: Cochabamba - Bolivia

Re: Xbrowse con efecto pijama ( zebra)

Postby nageswaragunupudi » Fri Mar 04, 2016 11:15 pm

Code: Select all  Expand view
METHOD FullPaint() INLINE ( ::lTransparent .or. ::lMergeVert .or. ;
                               ::nMarqueeStyle == MARQSTYLE_HIGHLWIN7 .OR. ::lZebra )
 

FullPaint deteriorates performance very much in case of slow databases.
Regards

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

Re: Xbrowse con efecto pijama ( zebra)

Postby Sistem » Sat Mar 05, 2016 11:15 am

zebra effect
works with SQLRDD?

[]s
FWH2008 | xHarbour | BCC74 | SQLRDD
User avatar
Sistem
 
Posts: 226
Joined: Sun May 13, 2012 7:52 am


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot], Horizon and 94 guests