FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour nClrPane
Posts: 610
Joined: Wed Oct 19, 2005 08:20 PM
nClrPane
Posted: Sat Mar 24, 2007 10:27 PM

Después de varias horas con este asunto no doy con la tecla.
En un listbox cambio el color de fondo alternando entre un registro y otro de la forma siguiente:
oLbx:nClrPane:={|| IIF(CLIENTES->(OrdKeyNo())%2==0,CLR_WHITE,CLR_LGRAY)}

Pero lo que quiero hacer es que en un listbox ordenado por un campo clave, me cambie el color alternativamente cuando cambie el valor de ese campo.
A alguien se le ocurre por donde tirar?

Un saludo,
Manuel Aranda

Un saludo,

Manuel



xH 1.2.3, FWH 23.07 32 bits, BC++ 7.4, xVerce CW 1.0, PellesC
Posts: 592
Joined: Tue Mar 14, 2006 11:34 PM
nClrPane
Posted: Mon Mar 26, 2007 12:47 AM

Manuel

Basta con que agregues un campo adicional ( normalmente uso un numerico de 1 digito ) y al momento de estar "llenando" la base a mostrar vas alternando el valor de ese campo ( normalmente uso 0-1 ) y solo cambias el codigo por esto :

oLbx:nClrPane:={|| IIF(CLIENTES->TuCampo ==1,CLR_WHITE,CLR_LGRAY)}

Asi lo he usado y hace exactamente lo que quieres hacer.

Saludos

FWH 10.6 + xHarbour + Borland 582
Posts: 711
Joined: Thu Oct 06, 2005 09:57 PM
nClrPane
Posted: Mon Mar 26, 2007 04:47 AM
Raymundo Islas M. wrote:
Asi lo he usado y hace exactamente lo que quieres hacer.


Ray,

Yo entiendo que lo que Manuel quiere es otra cosa. Tiene un campo clave (por ejemplo, ciudad) y tiene ordenado por este campo la base de datos:

ALICANTE
ALICANTE
ALICANTE
BARCELONA
BARCELONA

MALAGA
MALAGA
MALAGA

Lo que yo entiendo que quiere ( y es muy interesante), es que cada vez que el listbox cambie de ciudad (el bloque de registros) cambie el color.
Creo que con el método del "llenado" la cosa sería complicada, sobretodo, si desde el listbox modificaramos los datos.
Un saludo



Manuel
Posts: 632
Joined: Tue Dec 12, 2006 07:34 PM
Esta es la instrucción
Posted: Mon Mar 26, 2007 04:44 PM
Manuel Valdenebro wrote:
Raymundo Islas M. wrote:
Asi lo he usado y hace exactamente lo que quieres hacer.


Ray,

Yo entiendo que lo que Manuel quiere es otra cosa. Tiene un campo clave (por ejemplo, ciudad) y tiene ordenado por este campo la base de datos:

ALICANTE
ALICANTE
ALICANTE
BARCELONA
BARCELONA

MALAGA
MALAGA
MALAGA

Lo que yo entiendo que quiere ( y es muy interesante), es que cada vez que el listbox cambie de ciudad (el bloque de registros) cambie el color.
Creo que con el método del "llenado" la cosa sería complicada, sobretodo, si desde el listbox modificaramos los datos.


oLbx:bTextColor := {|nRow,nCol,nStyle| IF(nCol=4 .AND.;
nStyle=0 .AND. ;
S96->REFERE=ALLTRIM(cBuscPal),CLR_GREEN,)}
Posts: 592
Joined: Tue Mar 14, 2006 11:34 PM
nClrPane
Posted: Mon Mar 26, 2007 05:10 PM
Hola, como se dice : una imagen vale mas que mil palabras :-)

A esto me refiero, no se si es lo que Manuel desea.




A diferencia del color alternado por registro, este browse cambia el color por X numero de registros que contenga una poliza.


Saludos a todos
FWH 10.6 + xHarbour + Borland 582
Posts: 610
Joined: Wed Oct 19, 2005 08:20 PM
nClrPane
Posted: Mon Mar 26, 2007 09:49 PM

Muchas gracias, Raymundo. Es lo que buscaba. Me pongo a ello ahora mismo.

Un saludo,
Manuel

Un saludo,

Manuel



xH 1.2.3, FWH 23.07 32 bits, BC++ 7.4, xVerce CW 1.0, PellesC
Posts: 248
Joined: Wed Jan 11, 2006 11:30 AM
nClrPane
Posted: Tue Mar 27, 2007 01:47 AM
Raymundo Islas M. wrote:Manuel

Basta con que agregues un campo adicional ( normalmente uso un numerico de 1 digito ) y al momento de estar "llenando" la base a mostrar vas alternando el valor de ese campo ( normalmente uso 0-1 ) y solo cambias el codigo por esto :

oLbx:={|| IIF(CLIENTES->TuCampo ==1,CLR_WHITE,CLR_LGRAY)}

Asi lo he usado y hace exactamente lo que quieres hacer.

Saludos

Buenas Raymundo,

Nao estou entende bem, eu teria q usar alguma funçao ?
Vc poderia me passar algum exemplo ?

Fico grato pela atençao.

@braços Ale
aleseribeli@hotmail.com

FwH, Hb Svn, ADS 8.1, ADS 10, Pelles C, FwPPC, MsVc 2008, MsVc 2010
"Conhecimento, você não subtrai quando divide; mas soma e multiplica."
**---Mário Persona---**
Posts: 592
Joined: Tue Mar 14, 2006 11:34 PM
nClrPane
Posted: Fri Mar 30, 2007 05:54 AM
Hola, un pequeñito ejemplo, de hecho no tiene gran ciencia hacer esto :-)


REDEFINE LISTBOX lbKrdOpr ;
FIELDS DETKDX->KDAT,DETKDX->KPOL, ..... ;
HEAD "FECHA","POLIZA", ...... ;
bla ;
bla ;
bla ;
OF oFold:aDialogs[7]

bla ;
bla ;
bla ;
lbKrdOpr:nClrPane := { || IIF( DETKDX->KCLR == 0, CLR_A, CLR_B ) } <--- Aqui

Static Function XXXXXXX() // para "llenar" la base o arreglo
LOCAL nQ, nClrFlg := 0
FOR nQ := aKrdDts[4] TO aKrdDts[5]
IF MOVSYS->( DbSeek( DtoS( nQ ) ) )
WHILE MOVSYS->MFECHA == nQ .AND. MOVSYS->( !Eof() )
nKrdxPol := MOVSYS->MPOL
WHILE MOVSYS->MPOL == nKrdxPol .AND. MOVSYS->( !Eof() )
DETKDX->KDAT := XXXXXX
DETKDX->KPOL := YYYYYY
MOVSYS->( DbSkip() )
ENDDO
nClrFlg ++ <--- Aqui
nClrFlg := IIF( nClrFlg == 2, 0, nClrFlg ) <--- Aqui

ENDDO
ENDIF
NEXT
lbKrdOpr:REFRESH()



Saludos
FWH 10.6 + xHarbour + Borland 582
Posts: 592
Joined: Tue Mar 14, 2006 11:34 PM
nClrPane
Posted: Fri Mar 30, 2007 05:58 AM
Sorry :-)

Se me paso la linea donde se graba el valor que indica el color a usar :




Static Function XXXXXXX() // para "llenar" la base o arreglo
LOCAL nQ, nClrFlg := 0
FOR nQ := aKrdDts[4] TO aKrdDts[5]
IF MOVSYS->( DbSeek( DtoS( nQ ) ) )
WHILE MOVSYS->MFECHA == nQ .AND. MOVSYS->( !Eof() )
nKrdxPol := MOVSYS->MPOL
WHILE MOVSYS->MPOL == nKrdxPol .AND. MOVSYS->( !Eof() )
DETKDX->KDAT := XXXXXX
DETKDX->KPOL := YYYYYY
DETKDX->KCLR := nClrFlg <--- Aqui
MOVSYS->( DbSkip() )
ENDDO
nClrFlg ++ <--- Aqui
nClrFlg := IIF( nClrFlg == 2, 0, nClrFlg ) <--- Aqui
ENDDO
ENDIF
NEXT
lbKrdOpr:REFRESH()
FWH 10.6 + xHarbour + Borland 582
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
nClrPane
Posted: Fri Mar 30, 2007 10:50 PM

Raymundo,

Que soberbio ejemplo, mezcla de simplicidad, practicidad y buen gusto.
Gracias por compartirlo con nosotros. :D

Saludos/Regards,

José Murugosa

"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Posts: 592
Joined: Tue Mar 14, 2006 11:34 PM
nClrPane
Posted: Fri Mar 30, 2007 11:23 PM

Hola Jose

Agradezco mucho tu comentario ! :P

Saludos

FWH 10.6 + xHarbour + Borland 582

Continue the discussion