[Lazarus-es] Graficos: ttf que no está en el Sistema
José Mejuto
joshyfun en gmail.com
Mie Feb 11 15:26:39 CET 2015
El 11/02/2015 a las 12:34, Juan M. Puertas escribió:
> Hola.
> He hecho una aplicación que dibuja en un TImage una serie de canvas con
> elipses, líneas, etc. y quisiera añadir unos símbolos de una fuente ttf
> que no está en el Sistema.
Hola,
Tienes dos opciones, la "sencilla" es usar la unit freetype o
LazFreeType http://wiki.lazarus.freepascal.org/LazFreeType
La "complicada" es que para usar una font en Windows has de registrarla
en el sistema, lo que es básicamente lo mismo que instalar la fuente,
pero puedes hacerlo de modo temporal, esto es, que el registro sólo es
válido mientras tu programa esté en ejecución y se desregistra al salir.
Además no necesita que la fuente esté en Windows\fonts si no que puede
estar donde tu quieras.
El primer modo es multiplataforma, el segundo sólo Windows.
Sólo para Windows sería algo como esto, en versión simplificada.
procedure TForm1.FormCreate(Sender: TObject) ;
begin
AddFontResource('c:\FONTS\MyFont.TTF') ;
SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0) ;
end;
// Al cerrar el form principal!
procedure TForm1.FormDestroy(Sender: TObject) ;
begin
RemoveFontResource('C:\FONTS\MyFont.TTF') ;
SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0) ;
end;
Aunque yo lo haría en el lpr, no en el form, para que la fuente esté
disponible para todos los forms, y lo protegería con un try...finally.
--
More information about the Lazarus-es
mailing list