[Lazarus] Embedded font
Luca Olivetti
luca at wetron.es
Tue Feb 7 00:00:42 CET 2017
El 06/02/17 a les 22:06, Darius Blaszyk via Lazarus ha escrit:
> Hi,
>
> Is it possible to embed a font for a GUI application in Lazarus in a
> platform independent way? I've been looking on the internet and I only
> found windows specific solutions so far.
You already know the windows way, so I'll omit it.
With qt you can use QFontDatabase_addApplicationFont, e.g.
uses qt4;
...
procedure TForm1.FormCreate(Sender: TObject);
var ws:WideString;
begin
ws:='/file/with/the/font.ttf';
QFontDatabase_addApplicationFont(@ws)
end;
There's also a addApplicationFontFromData if you want to load the font
from a resource.
With GTK you can use fontconfig, e.g.
uses fontconfig;
....
function FcConfigAppFontAddFile(config:pointer;
fname:Pchar):FcBool;stdcall;external 'libfontconfig.so';
....
procedure TForm1.FormCreate(Sender: TObject);
var
res: FcBool;
begin
res:=FcConfigAppFontAddFile(nil,'/file/with/the/font.ttf');
end;
There isn't a function to load the font from data, so if you want to use
resources I guess you should save it to a temporary file and load the
font from it.
What I couldn't find is a way to know if the application is using qt or
gtk (or win): LCLWidgetType is an ide macro, not a define.
Bye
--
Luca Olivetti
Wetron Automation Technology http://www.wetron.es/
Tel. +34 93 5883004 (Ext.3010) Fax +34 93 5883007
More information about the Lazarus
mailing list