Si desea utilizar una fuente, la fuente debe estar instalada. Pero puede falsificar esto, usando AddFontResource
.
procedure TForm1.FormCreate(Sender: TObject) ;
begin
AddFontResource('c:\FONTS\MyFont.TTF') ;
SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0) ;
end;
//Before application terminates we must remove our font:
procedure TForm1.FormDestroy(Sender: TObject) ;
begin
RemoveFontResource('C:\FONTS\MyFont.TTF') ;
SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0) ;
end;
Como ve, el AddFontResource necesita un nombre de archivo. Lo mismo significa AddFontResourceEx.
Así que necesita un archivo de fuente. Pero también podemos falsificar eso.
Use JVCLTjvDataEmbedded
para incluir su archivo TTF en su ejecutable. Para incrustar el archivo de fuente es directo. (Haga clic con el botón derecho, 'Cargar desde archivo' ...).
En tiempo de ejecución, extraiga su archivo en el directorio temporal del usuario (consulte TjvDataEmbedded methods - No lo sé ahora, pero debería ser algo así como SaveToFile o similar). Por cierto, puede extraerlo en cualquier otro directorio que desee. Llame al AddFontResource
en él.
Además, de acuerdo con sus requisitos, puede extraer el archivo en una memoria mapeada y/o en una unidad RAM.
HTH
Justo lo que estaba buscando, ¡Gracias! –
¿me mostrarías un ejemplo? – sma6871