![]() |
Font aus Datei laden
Hallo, nach viel googlen und Foren SuFu konnte ich nichts finden.
Ich suche nach einer Möglichkeit, einen Font aus einer Datei zu laden. Ich fand eine Lösung, den Font temporär zu installieren, doch damit dauert das starten und beenden zu lange. Um Lizenzen bitte keine Sorgen machen, ich habe einen schönen, Lizenzfreien, Mittelalterlichen Font gefunden( ManuskriptGothisch) der super zu meinem Programm(Mittelalter-Echtzeit-Strategiespiel) passen würde. Vielen Dank schonmal für antworten. mfG :dp: PS: Ich hoffe ihr versteht was ich meine. Edit: PPS: Es ist eine .ttf Datei. |
Re: Font aus Datei laden
|
Re: Font aus Datei laden
also ich mache das so (registriert eine Font die in einer DLL als Ressource liegt) temporär für die akteulle EXE ....
ist einfach rauskopiert, bitte den rest ergänzen ....
Delphi-Quellcode:
function AddFontFromRes(handle : THandle; const ResName: PChar) : THandle;
var Res : TResourceStream; ResFontCount : DWord; Buffer : PChar; Size : integer; begin Res := TResourceStream.Create(handle, ResName, 'RT_FONT'); try Size := Res.Size + 1; Buffer := AllocMem(Size); Res.Read(Buffer^, Size); finally Res.Free; end; ResFontCount := 1; Result := AddFontMemResourceEx(Buffer, Size, nil, @ResFontCount); FreeMem(Buffer, Size); end; var fontHandle : array of THandle; fontNames : array of string; function RegisterFont(handle : THandle; Typ, Name : PChar; Parameter : integer) : Boolean; stdcall; begin setlength(fontHandle, length(fontHandle)+1); setlength(fontNames, length(fontNames)+1); fontHandle[length(fontHandle)-1] := AddFontFromRes(handle, Name); fontNames[length(fontNames)-1] := Name; Result := TRUE; end; procedure RegisterResourceFonts(ressourceDLL : THandle); begin EnumResourceNames(ressourceDLL, 'RT_FONT', @RegisterFont, 0); end; |
Re: Font aus Datei laden
Das erste dauert mir zu lang, aber danke für die Antwort.
Das zweite würd ich gern probieren, weiß aber nicht, wie ich eine .ttf Datei in eine .dll reinbekomme... |
Re: Font aus Datei laden
Als Ressource, hat er doch geschrieben.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz