Página 1 de 1

Problema inicializacion oFont en TDbRichEdit

Publicado: Mié May 13, 2020 9:28 am
por bingen
Tenemos este código que funciona perfectamente en los objetos tRichEdit pero que al cambiar algunos de ellos por TdbRichEdit ya no funcionan
En un Objecto TRichEdit ( oDescripcion ) y en su método create leemos con una función ( GetConfiguracion ) una fuente inicial grabada por nombre ( fontnombreart ), creamos una fuente ( oFontNombreArt ) y se la asignamos al control RichEdit.
Esto no funciona en un objeto tDBRichEdit.


METHOD DescripcionCreate( oSender ) CLASS TFrmreferencias
local cFontNomArt:="",oFontNombreArt

//--- Fuente Nombre Articulo ------------------------------------------------
cFontNomArt := GetConfiguracion("fontnombreart") //Leer la funte grabada
if !empty(cFontNomArt)
WITH OBJECT oFontNombreArt := tFont():New() //Crear fuente
:RestoreFromText(cFontNomArt)
END WITH
::oDescripcion:oFont := oFontNombreArt //Asignacion fuente (no funciona)
oFontNombreArt:Destroy()
Endif
Return NIl

Re: Problema inicializacion oFont en TDbRichEdit

Publicado: Mié May 13, 2020 9:53 am
por ignacio
Buenos días,

Sería bueno tener un sencillo ejemplo. No obstante, y s simple vista, no parece que vaya a funcionar pues destruyes el Font que acabas de asignar. Simplemente elimina la línea en la que destruyes el font.

Saludos

Re: Problema inicializacion oFont en TDbRichEdit

Publicado: Lun May 18, 2020 9:49 am
por bingen
Ok . Gracias
La solución está en hacer un clone() del fuente
//--- Fuente Nombre Articulo ------------------------------------------------
cFontNomArt := GetConfiguracion("fontnombreart") //Leer la funte grabada
if !empty(cFontNomArt)
WITH OBJECT oFontNombreArt := tFont():New() //Crear fuente
:RestoreFromText(cFontNomArt)
END WITH
::oDescripcion:oFont := oFontNombreArt:Clone() //Asignacion fuente (así si funciona)
oFontNombreArt:Destroy()
Endif
Return NIl

Re: Problema inicializacion oFont en TDbRichEdit

Publicado: Lun May 18, 2020 10:18 am
por ignacio
Es código innecesario. En vez de clonar y luego destruir. Simplemente no destruye.

Saludos