Página 1 de 1

Dos fuentes distintas en un arraybrowse

Publicado: Mié Sep 06, 2006 7:17 pm
por jose.luis
Hola,
¿Es posible tener filas con una fuente y filas con otra fuente?
¿Se tiene que crear la fuente pintar fila y después destruir fuente?
Saludos y gracias,
José Luis Capel

Dos fuentes distintas en un arraybrowse

Publicado: Mié Sep 06, 2006 7:26 pm
por ignacio
José Luis,
Puedes atrapar el evento oColum:OnDrawCell y dese ahí modificar el font a
utilizar con:
SelectObject( hDC, oFont:Handle )
Saludos
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"José Luis Capel" <jose.luis@iaicom.com> escribió en el mensaje
news:44ff028c$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Hola,
>
> ¿Es posible tener filas con una fuente y filas con otra fuente?
>
> ¿Se tiene que crear la fuente pintar fila y después destruir fuente?
>
> Saludos y gracias,
> José Luis Capel
>

Dos fuentes distintas en un arraybrowse

Publicado: Mié Sep 06, 2006 8:23 pm
por jose.luis
Ignacio,
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:44ff04c9>
> Puedes atrapar el evento oColum:OnDrawCell y dese ahí modificar el font a
> utilizar con:
>
> SelectObject( hDC, oFont:Handle )
>
Estupendo!! Ahora la siguiente pregunta:
::oFontAlternativa := ::oArrayBrowse1:oFont:Clone()
::oFontAlternativa:lStrikeout := .T.
Esto parece que no cambia la fuente alternativa a 'tachado'.
Entonces... ¿cual es la estructura de oFont:SaveToText?
Saludos y gracias,
José Luis Capel

Dos fuentes distintas en un arraybrowse

Publicado: Jue Sep 07, 2006 9:55 am
por ignacio
José Luis,
Con el poco código que me das es dificil saber porque falla. No obstante, lo
que debes hacer es crear dos fonts, uno normal y otro tachado, y cambiar al
tachado cuando quieras en las celdas que lo necesites. Es una perdida de
tiempo enorme crear el font tachado en el evento OnDrawCell.
Si quieres, mandanos un pequeño ejemplo con el problema. y le echo un
vistazo.
> Entonces... ¿cual es la estructura de oFont:SaveToText?
::cName + "," + LTrim( Str( ::nSize ) ) + "," + ;
LTrim( Str( ::nWidth ) ) + "," + LTrim( Str( ::nHeight ) ) + "," +
;
LTrim( Str( ::nStyle ) ) + "," + LTrim( Str( ::nWeight ) ) + "," +
;
LTrim( Str( ::nOrientation ) ) + "," + ToString( ::lBold ) + "," +
;
ToString( ::lItalic ) + "," + ToString( ::lUnderline ) + "," + ;
ToString( ::lStrikeOut ) + "," + LTrim( Str( ::nCharSet ) )
Un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"José Luis Capel" <jose.luis@iaicom.com> escribió en el mensaje
news:44ff1222$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Ignacio,
>
>
> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
> news:44ff04c9>
>> Puedes atrapar el evento oColum:OnDrawCell y dese ahí modificar el font a
>> utilizar con:
>>
>> SelectObject( hDC, oFont:Handle )
>>
>
> Estupendo!! Ahora la siguiente pregunta:
>
> ::oFontAlternativa := ::oArrayBrowse1:oFont:Clone()
> ::oFontAlternativa:lStrikeout := .T.
>
> Esto parece que no cambia la fuente alternativa a 'tachado'.
>
> Entonces... ¿cual es la estructura de oFont:SaveToText?
>
> Saludos y gracias,
> José Luis Capel
>

Dos fuentes distintas en un arraybrowse

Publicado: Jue Sep 07, 2006 10:10 am
por jose.luis
Ignacio,
Gracias por tu respuesta.
>
> Con el poco código que me das es dificil saber porque falla. No obstante,
> lo que debes hacer es crear dos fonts, uno normal y otro tachado, y
> cambiar al tachado cuando quieras en las celdas que lo necesites. Es una
> perdida de tiempo enorme crear el font tachado en el evento OnDrawCell.
>
La idea es crear una fuente en el initialize del formulario y destruirla en
el onclose. La nueva fuente se crea de esta manera:
::oFontAlternativa := ::oArrayBrowse1:oFont:Clone() // Fuente del
ArrayBrowse
Y le cambio una característica de la fuente :
::oFontAlternativa:lStrikeout := .T.
Entonces, en el ondrawcell de las columnas que me interesan pongo:
METHOD PintadoColumnasFrecuencia( oSender, cText, nClrText, nClrPane,
lHighLite, hDC, aRect )
IF ::oClientesVista:cFreq == "S"
SelectObject( hDC, ::oFontAlternativa:Handle )
ELSE
SelectObject( hDC, ::odbVista:oFont:Handle )
ENDIF
RETURN .T.
Siempre usa la fuente del browse (estoy seguro que entra en los dos).
> Si quieres, mandanos un pequeño ejemplo con el problema. y le echo un
> vistazo.
>
Procuraré...
>> Entonces... ¿cual es la estructura de oFont:SaveToText?
>
> ::cName + "," + LTrim( Str( ::nSize ) ) + "," + ;
> LTrim( Str( ::nWidth ) ) + "," + LTrim( Str( ::nHeight ) ) + "," +
> ;
> LTrim( Str( ::nStyle ) ) + "," + LTrim( Str( ::nWeight ) ) + "," +
> ;
> LTrim( Str( ::nOrientation ) ) + "," + ToString( ::lBold ) + "," +
> ;
> ToString( ::lItalic ) + "," + ToString( ::lUnderline ) + "," + ;
> ToString( ::lStrikeOut ) + "," + LTrim( Str( ::nCharSet ) )
>
Gracias!!
Saludos,
José Luis Capel
> Un saludo,
>
> --
> Ignacio Ortiz de Zúñiga
> http://www.xailer.com
> "José Luis Capel" <jose.luis@iaicom.com> escribió en el mensaje
> news:44ff1222$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>> Ignacio,
>>
>>
>> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
>> news:44ff04c9>
>>> Puedes atrapar el evento oColum:OnDrawCell y dese ahí modificar el font
>>> a utilizar con:
>>>
>>> SelectObject( hDC, oFont:Handle )
>>>
>>
>> Estupendo!! Ahora la siguiente pregunta:
>>
>> ::oFontAlternativa := ::oArrayBrowse1:oFont:Clone()
>> ::oFontAlternativa:lStrikeout := .T.
>>
>> Esto parece que no cambia la fuente alternativa a 'tachado'.
>>
>> Entonces... ¿cual es la estructura de oFont:SaveToText?
>>
>> Saludos y gracias,
>> José Luis Capel
>>
>
>

Dos fuentes distintas en un arraybrowse

Publicado: Jue Sep 07, 2006 10:37 am
por jfgimenez
José Luis,
> La idea es crear una fuente en el initialize del formulario y destruirla
> en el onclose. La nueva fuente se crea de esta manera:
No, en el OnClose no!
Cuando se dispara el OnClose el formulario está todavía 'vivito y coleando',
por lo que después de destruir la fuente todavía podría necesitarla el
browse para dibujarse. Es mejor que utilices el evento OnDestroy o
sobreescribas el método Free(), sin olvidarte de llamar después a
Super:Free()
--
Un saludo,
José F. Giménez
http://www.xailer.com

Dos fuentes distintas en un arraybrowse

Publicado: Jue Sep 07, 2006 7:54 pm
por jose.luis
Ignacio, José,
Ya tengo funcionado el OnDrawCell del browse. Se pueden hacer
_m_a_r_a_v_i_l_l_a_s.
Gracias a ambos.
Saludos,
José Luis Capel
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:44ffda40$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> José Luis,
>
>> La idea es crear una fuente en el initialize del formulario y destruirla
>> en el onclose. La nueva fuente se crea de esta manera:
>
> No, en el OnClose no!
>
> Cuando se dispara el OnClose el formulario está todavía 'vivito y
> coleando', por lo que después de destruir la fuente todavía podría
> necesitarla el browse para dibujarse. Es mejor que utilices el evento
> OnDestroy o sobreescribas el método Free(), sin olvidarte de llamar
> después a Super:Free()
>
> --
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
>

Dos fuentes distintas en un arraybrowse

Publicado: Sab Sep 09, 2006 11:30 pm
por Rene Flores
José Luis:
Y ahora, despues del follon que haz armado, y del tinglao que haz
montado, porque no pones una fotillo del browse a ver que tal quedo ?
Saludos
Rene Flores
http://www.ciber-tec.com
Capel escribió:
> Ignacio, José,
>
> Ya tengo funcionado el OnDrawCell del browse. Se pueden hacer
> _m_a_r_a_v_i_l_l_a_s.
>
> Gracias a ambos.
> Saludos,
> José Luis Capel
>
>
> "Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
> news:44ffda40$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>> José Luis,
>>
>>> La idea es crear una fuente en el initialize del formulario y destruirla
>>> en el onclose. La nueva fuente se crea de esta manera:
>> No, en el OnClose no!
>>
>> Cuando se dispara el OnClose el formulario está todaví­a 'vivito y
>> coleando', por lo que después de destruir la fuente todaví­a podrí­a
>> necesitarla el browse para dibujarse. Es mejor que utilices el evento
>> OnDestroy o sobreescribas el método Free(), sin olvidarte de llamar
>> después a Super:Free()
>>
>> --
>> Un saludo,
>>
>> José F. Giménez
>> http://www.xailer.com
>>
>
>