Página 1 de 1

Cambiar fuente de una celda

Publicado: Lun Jun 04, 2007 11:19 am
por pacoelche
¿Es posible cambiar la fuente de una celda de un TDbfBrowse?
Por ejemplo:
- Tengo un TDbfBrowse llamado oBrowse.
- En una de las columnas utilizo un evento OnDrawCell con las siguientes
líneas de código:
METHOD BrowseColumn5aDrawCell( oSender, cText, nClrText, nClrPane,
lHighLite, hDC, aRect ) CLASS Allegro
SELECT CONTADOR
ctext:=H_DESDE+" a "+H_HASTA+" h."
RETURN Nil
- Me gustaría, por ejemplo, que si ctext fuese igual a un texto "x", esa
celda cambiase de color, o tamaño.
Gracias por vuestra ayuda
pacoelche@hotmail.com

Cambiar fuente de una celda

Publicado: Lun Jun 04, 2007 3:57 pm
por ignacio
Francisco,
Si utilizando el hDC que le suministra el evento OnDrawCell() y la función
de bajo nivel SelectObject()
SelectObject( hDC, oFont:Handle )
El tamaño de la celda no se puede cambiar como es lógico.
Un saludo
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Francisco Martínez García" <pacoelche@hotmail.com> escribió en el mensaje
news:[email=4663d90e@ozsrv2.ozlan.local...]4663d90e@ozsrv2.ozlan.local...[/email]
> ¿Es posible cambiar la fuente de una celda de un TDbfBrowse?
>
> Por ejemplo:
>
> - Tengo un TDbfBrowse llamado oBrowse.
> - En una de las columnas utilizo un evento OnDrawCell con las siguientes
> líneas de código:
>
> METHOD BrowseColumn5aDrawCell( oSender, cText, nClrText, nClrPane,
> lHighLite, hDC, aRect ) CLASS Allegro
> SELECT CONTADOR
> ctext:=H_DESDE+" a "+H_HASTA+" h."
> RETURN Nil
>
> - Me gustaría, por ejemplo, que si ctext fuese igual a un texto "x", esa
> celda cambiase de color, o tamaño.
>
> Gracias por vuestra ayuda
> pacoelche@hotmail.com
>

Cambiar fuente de una celda

Publicado: Lun Jun 04, 2007 7:49 pm
por pacoelche
Gracias Ignacio:
Ya lo había conseguido con el evento OnGetData y el siguiente código. De
todas formas y siguiendo mi ejemplo, ¿cómo se puede hacer para cambiar el
color de toda una línea, sin tener que hacerlo columna a columna?, supongo
que será cambiando aCols[x] por otro código, pero ¿cual?
FOR J=1 TO 5
IF J=4 .AND. VACANTES=0
WITH OBJECT ::oBrowse:aCols[4]
:nClrText:=clWhite
:nClrPane:=clBlack
END
ELSE
WITH OBJECT ::oBrowse:aCols[J]
:nClrPane:=clWhite
DO CASE
CASE AT("ALEM",NOMBRE)>0
:nClrText:=clRed
CASE AT("FRAN",NOMBRE)>0
:nClrText:=clBlue
CASE AT("INGL",NOMBRE)>0
:nClrText:=clGreen
CASE AT("ITAL",NOMBRE)>0
:nClrText:=clMaroon
ENDCASE
END
ENDIF
NEXT
De nuevo muchas gracias.
pacoelche@hotmail.com
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:46641a36$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Francisco,
>
> Si utilizando el hDC que le suministra el evento OnDrawCell() y la función
> de bajo nivel SelectObject()
>
> SelectObject( hDC, oFont:Handle )
>
> El tamaño de la celda no se puede cambiar como es lógico.
>
> Un saludo
>
> --
> Ignacio Ortiz de Zúñiga
> http://www.xailer.com
>
>
> "Francisco Martínez García" <pacoelche@hotmail.com> escribió en el mensaje
> news:[email=4663d90e@ozsrv2.ozlan.local...]4663d90e@ozsrv2.ozlan.local...[/email]
>> ¿Es posible cambiar la fuente de una celda de un TDbfBrowse?
>>
>> Por ejemplo:
>>
>> - Tengo un TDbfBrowse llamado oBrowse.
>> - En una de las columnas utilizo un evento OnDrawCell con las siguientes
>> líneas de código:
>>
>> METHOD BrowseColumn5aDrawCell( oSender, cText, nClrText, nClrPane,
>> lHighLite, hDC, aRect ) CLASS Allegro
>> SELECT CONTADOR
>> ctext:=H_DESDE+" a "+H_HASTA+" h."
>> RETURN Nil
>>
>> - Me gustaría, por ejemplo, que si ctext fuese igual a un texto "x", esa
>> celda cambiase de color, o tamaño.
>>
>> Gracias por vuestra ayuda
>> pacoelche@hotmail.com
>>
>
>

Cambiar fuente de una celda

Publicado: Lun Jun 04, 2007 8:50 pm
por ignacio
Francisco,
No se puede. Lo más sencillo es hacer que el evento OnDrawCell de todas las
columnas apunten al mismo código.
Un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Francisco Martínez García" <pacoelche@hotmail.com> escribió en el mensaje
news:466450ba$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Gracias Ignacio:
>
> Ya lo había conseguido con el evento OnGetData y el siguiente código. De
> todas formas y siguiendo mi ejemplo, ¿cómo se puede hacer para cambiar el
> color de toda una línea, sin tener que hacerlo columna a columna?, supongo
> que será cambiando aCols[x] por otro código, pero ¿cual?
>
> FOR J=1 TO 5
> IF J=4 .AND. VACANTES=0
> WITH OBJECT ::oBrowse:aCols[4]
> :nClrText:=clWhite
> :nClrPane:=clBlack
> END
> ELSE
> WITH OBJECT ::oBrowse:aCols[J]
> :nClrPane:=clWhite
> DO CASE
> CASE AT("ALEM",NOMBRE)>0
> :nClrText:=clRed
> CASE AT("FRAN",NOMBRE)>0
> :nClrText:=clBlue
> CASE AT("INGL",NOMBRE)>0
> :nClrText:=clGreen
> CASE AT("ITAL",NOMBRE)>0
> :nClrText:=clMaroon
> ENDCASE
> END
> ENDIF
> NEXT
>
> De nuevo muchas gracias.
> pacoelche@hotmail.com
>
>
> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
> news:46641a36$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>> Francisco,
>>
>> Si utilizando el hDC que le suministra el evento OnDrawCell() y la
>> función de bajo nivel SelectObject()
>>
>> SelectObject( hDC, oFont:Handle )
>>
>> El tamaño de la celda no se puede cambiar como es lógico.
>>
>> Un saludo
>>
>> --
>> Ignacio Ortiz de Zúñiga
>> http://www.xailer.com
>>
>>
>> "Francisco Martínez García" <pacoelche@hotmail.com> escribió en el
>> mensaje news:[email=4663d90e@ozsrv2.ozlan.local...]4663d90e@ozsrv2.ozlan.local...[/email]
>>> ¿Es posible cambiar la fuente de una celda de un TDbfBrowse?
>>>
>>> Por ejemplo:
>>>
>>> - Tengo un TDbfBrowse llamado oBrowse.
>>> - En una de las columnas utilizo un evento OnDrawCell con las siguientes
>>> líneas de código:
>>>
>>> METHOD BrowseColumn5aDrawCell( oSender, cText, nClrText, nClrPane,
>>> lHighLite, hDC, aRect ) CLASS Allegro
>>> SELECT CONTADOR
>>> ctext:=H_DESDE+" a "+H_HASTA+" h."
>>> RETURN Nil
>>>
>>> - Me gustaría, por ejemplo, que si ctext fuese igual a un texto "x", esa
>>> celda cambiase de color, o tamaño.
>>>
>>> Gracias por vuestra ayuda
>>> pacoelche@hotmail.com
>>>
>>
>>
>
>