Ich habe alle Möglichkeiten der Namensgebung ausprobiert, irgendwie will der Compiler das nicht. Vielleicht weil meine Main schon 1000000 bit Grösse hat.
Aber egal, habe die Fontdatei jetzt in ein Verzeichnis abgelegt und lade sie nach, wenn sie nicht auf dem Rechner ist.
Nochmals vielen Dank für eure Hilfe.
Gruß
Font Datei.ttf
-
- Beiträge: 945
- Registriert: Mi 3. Jun 2020, 07:18
- OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
- CPU-Target: Aarch64 bis Z80 ;)
- Wohnort: München
Re: Font Datei.ttf
Zeig doch mal genauer, was du hast. Das folgende Beispiel funktioniert bei mir:
tfontres.pp
font.rc
Das ganze funktioniert auch, wenn ich eine normale Anwendung in Lazarus erstelle und den Code dort rein pflanze.
tfontres.pp
Code: Alles auswählen
program tfontres;
{$mode objfpc}{$H+}
uses
resource, Classes;
{$R font.rc}
var
res: TResourceStream;
begin
res := TResourceStream.Create(hInstance, 'Font', 'RF'); // oder auch PChar('RF') - das ist egal!
try
Writeln(res.Size);
finally
res.Free;
end;
end.
Code: Alles auswählen
Font RF "testfont.ttf"
FPC Compiler Entwickler
-
- Beiträge: 321
- Registriert: Mi 20. Feb 2013, 10:30
- OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
- CPU-Target: 32/64,ARM(RPi)
Re: Font Datei.ttf
OK, noch einmal nachgeschaut.
Ist schon seltsam!
Nachdem ich die Unit "resources" eingefügt habe funktionierte es.
Habe sie dann wieder entfernt,
weil ich schon LResources drin hatte, trotzdem hat es dann weiterhin funktioniert.
So habe ich es dann gemacht.
Nochmals Danke!
Gruß
Ist schon seltsam!
Nachdem ich die Unit "resources" eingefügt habe funktionierte es.
Habe sie dann wieder entfernt,
weil ich schon LResources drin hatte, trotzdem hat es dann weiterhin funktioniert.
So habe ich es dann gemacht.
Code: Alles auswählen
if Screen.Fonts.IndexOf('Schriftname') <> -1 Then
Begin
res := TResourceStream.Create(hInstance, 'Font', 'RF');
res.Free;
AddFontResource(PChar('testschrift.ttf'));
SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
IstFont := true;
end;
Gruß
-
- Beiträge: 321
- Registriert: Mi 20. Feb 2013, 10:30
- OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
- CPU-Target: 32/64,ARM(RPi)
Re: Font Datei.ttf
Genau wie ich es gedacht habe.
Die Datei wird bei:
AddFontResource(PChar('testfont.ttf'));
aus dem Programmverzeichnis gelesen.
Wie deklariere ich es, damit die Datei aus 'res' gelesen wird?
Ich möchte ja die Rsource verwenden und nicht über eine Save Funktion erst irgendwo sie Fontdatei ablegen.
Dann kann ich sie auch Direkt auf den Datenträger ablegen, ohne den Umweg.
Das bringt dann überhaupt nichts.
Die Datei wird bei:
AddFontResource(PChar('testfont.ttf'));
aus dem Programmverzeichnis gelesen.
Wie deklariere ich es, damit die Datei aus 'res' gelesen wird?
Ich möchte ja die Rsource verwenden und nicht über eine Save Funktion erst irgendwo sie Fontdatei ablegen.
Dann kann ich sie auch Direkt auf den Datenträger ablegen, ohne den Umweg.
Das bringt dann überhaupt nichts.
-
- Beiträge: 582
- Registriert: Sa 22. Okt 2016, 23:12
- OS, Lazarus, FPC: W10, L 3.8
- CPU-Target: 32+64bit
- Wohnort: Dresden
Re: Font Datei.ttf
Hmm, ich weis jetzt zwar nicht ob meine Test jetzt das ist was du brauchst, aber mal sehen.
Den font der im Test genutzt werden soll muss man im Projekt eintragen:
- Projekt -> Projekteinstellungen... -> Resourcen
- Dann auf hinzufügen -> rechts unten (All files (*.*)) -> Font wählen (Öffnen) -> OK
Im FormCreate:
- LoadResourceFontByName = Resourcenname
- Font.Name = Der Font Name wie er richtig heisst.
Unter Windows einfach doppelklick auf die ttf und links oben steht dann der Schriftname.
Compilieren und freuen.
Den font der im Test genutzt werden soll muss man im Projekt eintragen:
- Projekt -> Projekteinstellungen... -> Resourcen
- Dann auf hinzufügen -> rechts unten (All files (*.*)) -> Font wählen (Öffnen) -> OK
Im FormCreate:
- LoadResourceFontByName = Resourcenname
- Font.Name = Der Font Name wie er richtig heisst.
Unter Windows einfach doppelklick auf die ttf und links oben steht dann der Schriftname.
Compilieren und freuen.
- Dateianhänge
-
project1.zip
- (165.49 KiB) 169-mal heruntergeladen
LG Maik
Windows 10,
- Lazarus 3.8 (stable) + fpc 3.2.2 (stable)
- Lazarus 4.99 (trunk) + fpc 3.3.1 (main/trunk)
Windows 10,
- Lazarus 3.8 (stable) + fpc 3.2.2 (stable)
- Lazarus 4.99 (trunk) + fpc 3.3.1 (main/trunk)
-
- Beiträge: 321
- Registriert: Mi 20. Feb 2013, 10:30
- OS, Lazarus, FPC: Win (L 2.2.4 FPC 3.2.2)
- CPU-Target: 32/64,ARM(RPi)
Re: Font Datei.ttf
Vielen Dank für die Mühe.