Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Font aus Datei laden (https://www.delphipraxis.net/139917-font-aus-datei-laden.html)

Vasco da Gama 8. Sep 2009 11:32


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.

Klaus01 8. Sep 2009 12:04

Re: Font aus Datei laden
 
.. vielleicht hilft Die use ttf font without installing etwas.

Grüße
Klaus

Gruber_Hans_12345 8. Sep 2009 12:32

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;

Vasco da Gama 8. Sep 2009 13:14

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...

Luckie 8. Sep 2009 13:43

Re: Font aus Datei laden
 
Als Ressource, hat er doch geschrieben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz