Tengo un Browse en el cual defino un color de fondo en un array así:
Code: Select all | Expand
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 | Expand
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:
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 | Expand
::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 | Expand
::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