Page 1 of 1

xBrowse - Color de fondo en array no permite edición - LISTO

Posted: Wed Dec 18, 2013 10:33 pm
by rolando
Buenas tardes,

Tengo un Browse en el cual defino un color de fondo en un array así:

Code: Select all

local aVerde:={ { .50,65280,16777215},{ .50,16777215,65280 } }
y luego lo utilizo como fondo para destacar una línea o líneas que cumplan determinada condición así:

Code: Select all

WITH OBJECT oBrw
  :nEditTypes       := EDIT_GET
  :bClrStd:={|| if(!lEncontrado, ;
        ;
        (if(len(alltrim(oDbf:BUSCADO))>0 ,;
        ({CLR_BLACK, aVerde} ),;
        ({nrgb(0,0,0),nClrFondo}) )) , ;
        ;
        ({nrgb(0,0,0),nClrFondo}) ) }
End
Esto queda lindo a la vista:

Image

Pero esto da un error al intentar editar un campo cuando la línea que lo contiene tiene el color de fondo dado por el array (en el resto no hay problemas).

Lo solucioné modificando la clase xBrowse en el METHOD Edit( nKey ) CLASS TXBrwColumn

Cambié las líneas:

Code: Select all

         ::oEditGet := TGet():New( 0,0,{ | u | If(PCount()==0,uValue,uValue:= u ) },;
                                  ::oBrw,0,0,cPic,,aColors[ 1 ],aColors[ 2 ];
                                  ,oFont,.F.,,.F.,,.F.,,lCenter,lRight,,.F.,.f.,.T.,,.F.,,,,) // oFont ADDED

Por:

Code: Select all

         ::oEditGet := TGet():New( 0,0,{ | u | If(PCount()==0,uValue,uValue:= u ) },;
              ::oBrw,0,0,cPic,,aColors[ 1 ],(if(valtype(aColors[2])=='N',aColors[ 2 ], 16770271 )); 
              ,oFont,.F.,,.F.,,.F.,,lCenter,lRight,,.F.,.f.,.T.,,.F.,,,,) // oFont ADDED


Y problema resuelto.

Rolando :D

Re: xBrowse - Color de fondo en array no permite edición - LISTO

Posted: Thu Dec 19, 2013 11:28 am
by Antonio Linares
Rolando,

gracias por compartir tu solución :-)