FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Xbrowse con efecto pijama ( zebra)
Posts: 1516
Joined: Thu May 27, 2010 02:06 PM
Xbrowse con efecto pijama ( zebra)
Posted: Mon May 04, 2015 05: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 (fw): Select all Collapse
DATA nRowZebra 聽AS NUMERIC INIT 0
DATA aClrZebra 
DATA lZebra 聽 AS LOGICAL INIT .f.


Asignamos asi al crear el xbrowse:

Code (fw): Select all Collapse
聽 ::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 (fw): Select all Collapse
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 (fw): Select all Collapse
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 ....
Posts: 7317
Joined: Thu Oct 18, 2012 07:17 PM
Re: Xbrowse con efecto pijama ( zebra)
Posted: 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 March-April 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
Posts: 410
Joined: Sun Jan 31, 2010 03:30 PM
Re: Xbrowse con efecto pijama ( zebra)
Posted: Thu May 07, 2015 12:18 AM

Perfecto...

Probado con dbfcdx, ads y sqlrdd

Gracias
Johnson Russi

Posts: 1303
Joined: Tue Jul 21, 2009 08:12 AM
Re: Xbrowse con efecto pijama ( zebra)
Posted: Thu May 07, 2015 07:02 PM
Manuel,

驴Has probado as铆?:

Code (fw): Select all Collapse
: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.
Posts: 1516
Joined: Thu May 27, 2010 02:06 PM
Re: Xbrowse con efecto pijama ( zebra)
Posted: Thu May 07, 2015 07:28 PM
lucasdebeltran wrote:Manuel,

驴Has probado as铆?:

Code (fw): Select all Collapse
: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 :-) ( y a veces mas )
A帽adiendo la data ::nRowZebra y asign谩ndola dependemos solo del propio xbrowse :-)
Posts: 1303
Joined: Tue Jul 21, 2009 08:12 AM
Re: Xbrowse con efecto pijama ( zebra)
Posted: Thu May 07, 2015 07: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.
Posts: 1516
Joined: Thu May 27, 2010 02:06 PM
Re: Xbrowse con efecto pijama ( zebra)
Posted: Thu May 07, 2015 07: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 :-)
Posts: 1088
Joined: Fri Oct 07, 2005 03:33 PM
Re: Xbrowse con efecto pijama ( zebra)
Posted: Fri Aug 28, 2015 12:19 AM

Holas,

ya esta implementado esto en FWH

saludos

Marcelo

Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Xbrowse con efecto pijama ( zebra)
Posted: Fri Mar 04, 2016 11:15 PM
Code (fw): Select all Collapse
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
Posts: 226
Joined: Sun May 13, 2012 07:52 AM
Re: Xbrowse con efecto pijama ( zebra)
Posted: Sat Mar 05, 2016 11:15 AM

zebra effect
works with SQLRDD?

[]s

FWH2008 | xHarbour | BCC74 | SQLRDD

Continue the discussion