Font aus *.res Datei benutzen Cross-Platform

Rund um die LCL und andere Komponenten
Antworten
HobbyProgrammer
Beiträge: 166
Registriert: Di 29. Okt 2019, 12:51
Wohnort: Deutschland , Baden-Württemberg

Font aus *.res Datei benutzen Cross-Platform

Beitrag von HobbyProgrammer »

Hallo an alle,
ich habe nun schon viel Zeit für die Suche nach der Möglichkeit verbracht einen TTF-Font welcher in eine *.res Datei kompiliert wurde in meiner Anwendung zu benutzen. Wohl gemerkt ohne den Font auf dem jeweiligen System installieren zu müssen. Alles was ich bis jetzt gefunden habe, waren Lösungen für Windows, welche unter Linux leider nicht funktionieren. Waren alles meist auch alte Themen.
Daher nun meine Frage ob es mittlerweile eine Cross-Platform Lösung dafür gibt.

Grüße
HobbyProgrammer
Host: Core i7-12700H, NVIDIA RTX3050 6GB, 32GB Ram, 1TB NVME SSD mit KUbuntu 22.04LTS 64bit , VM KUbuntu 22.04 LTS 64bit mit Lazarus 2.2.6 und Cross-Platform Compiler für Linux 32/64bit und Windows 32/64bit. Wine für erste Tests der Windows Binarys.

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Font aus *.res Datei benutzen Cross-Platform

Beitrag von Winni »

Hi!

Leider NEIN!

Unter Windows gibt es den Delphi-Hack, unter Linux hab ich mich vor ca 2 Jahren dumm und dusslig gesucht und nix gefunden.

Linux benutzt nur die installierten System-Fonts und ich habe auch keine Stelle gefunden, wo man Lazarus einen Font "unterschieben" könnte.

Winni

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Font aus *.res Datei benutzen Cross-Platform

Beitrag von wp_xyz »

Wenn alle Stricke reißen, musst du z.B. mit LazFreeType den Font selbst zeichnen, siehe Beispiel im Ordner examples/lazfreetype deiner Lazarus-Installation.

HobbyProgrammer
Beiträge: 166
Registriert: Di 29. Okt 2019, 12:51
Wohnort: Deutschland , Baden-Württemberg

Re: Font aus *.res Datei benutzen Cross-Platform

Beitrag von HobbyProgrammer »

Winni hat geschrieben:
Mi 26. Mai 2021, 18:05
Hi!

Leider NEIN!

Unter Windows gibt es den Delphi-Hack, unter Linux hab ich mich vor ca 2 Jahren dumm und dusslig gesucht und nix gefunden.

Linux benutzt nur die installierten System-Fonts und ich habe auch keine Stelle gefunden, wo man Lazarus einen Font "unterschieben" könnte.

Winni
Ich habe es fast befürchtet. Ich habe mich auch durch unzählige Beiträge und Foren gewühlt und nichts gefunden. Es sollte eben Cross-Platform sein, da mein Z180SoftSystem auf Linux, Windows und, wenn sich das jemand selbst kompiliert, auch unter Apple MAC OS laufen soll.
wp_xyz hat geschrieben:
Mi 26. Mai 2021, 18:54
Wenn alle Stricke reißen, musst du z.B. mit LazFreeType den Font selbst zeichnen, siehe Beispiel im Ordner examples/lazfreetype deiner Lazarus-Installation.
LazFreeType habe ich schonmal kurz angetestet, bin aber bis jetzt nicht weitergekommen diese in meine Terminalemulation zu integrieren.
Evtl. mache ich diesbezüglich ein neues Thema auf für die Umsetzung in meinem Programm.
Host: Core i7-12700H, NVIDIA RTX3050 6GB, 32GB Ram, 1TB NVME SSD mit KUbuntu 22.04LTS 64bit , VM KUbuntu 22.04 LTS 64bit mit Lazarus 2.2.6 und Cross-Platform Compiler für Linux 32/64bit und Windows 32/64bit. Wine für erste Tests der Windows Binarys.

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Font aus *.res Datei benutzen Cross-Platform

Beitrag von Winni »

Hi!


Mit FreeType hab ich auch schon getestet.

Das bedeutet aber, dass Du alle Kompenenten selbst zeichnen musst.
Also nur: den Text.
Auch die, die keinen Canvas besitzen.
Erstens ist das viel Arbeit.
Und zweitens ein wildes Gehacke.

Winni

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Font aus *.res Datei benutzen Cross-Platform

Beitrag von wp_xyz »

HobbyProgrammer hat geschrieben:
Mi 26. Mai 2021, 15:35
ich habe nun schon viel Zeit für die Suche nach der Möglichkeit verbracht einen TTF-Font welcher in eine *.res Datei kompiliert wurde in meiner Anwendung zu benutzen.
Was ist denn an dem Font so besonders? Heutzutage findet man, dank Unicode, die wildesten Zeichen in den Standard-Fonts.

HobbyProgrammer
Beiträge: 166
Registriert: Di 29. Okt 2019, 12:51
Wohnort: Deutschland , Baden-Württemberg

Re: Font aus *.res Datei benutzen Cross-Platform

Beitrag von HobbyProgrammer »

Winni hat geschrieben:
Mi 26. Mai 2021, 23:43
Hi!


Mit FreeType hab ich auch schon getestet.

Das bedeutet aber, dass Du alle Kompenenten selbst zeichnen musst.
Also nur: den Text.
Auch die, die keinen Canvas besitzen.
Erstens ist das viel Arbeit.
Und zweitens ein wildes Gehacke.

Winni
Ich hatte gehofft den FreeTypeFont irgendwie dem Panel des Terminals als Font zuweisen zu können, was leider nicht ging. Und das ganze umzuschreiben das es dann mit FreeTypeFont funktioniert ist mir (derzeit) zuviel Aufwand.
Evtl. (viel) später mal als Fleissaufgabe. :lol:
wp_xyz hat geschrieben:
Do 27. Mai 2021, 00:11
Was ist denn an dem Font so besonders? Heutzutage findet man, dank Unicode, die wildesten Zeichen in den Standard-Fonts.
Ich wollte unter Linux und Windows die gleiche Darstellung und Größen Einstellungen haben. Der Monotype Font in Linux schaut richtig gut aus. Unter Windows irgendwie zu dünn. Auch mit den Einstellungsschritten der Größe gefällt mir das unter Windows nicht so richtig.
Host: Core i7-12700H, NVIDIA RTX3050 6GB, 32GB Ram, 1TB NVME SSD mit KUbuntu 22.04LTS 64bit , VM KUbuntu 22.04 LTS 64bit mit Lazarus 2.2.6 und Cross-Platform Compiler für Linux 32/64bit und Windows 32/64bit. Wine für erste Tests der Windows Binarys.

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Font aus *.res Datei benutzen Cross-Platform

Beitrag von Winni »

Hi!

Der Linux Monotype font, der Dir so gefällt, ist wahrscheinlich Liberation Mono. Der liegt (fast) jeder Linux Distro anbei. Ist außerdem Open Source. Kann man von vielen Seiten herunterladen.

Der weitere Vorteil ist, dass Liberation als Ersatz für Standard-Windows-Schriftarten von Red Hat entwickelt wurde:

Liberation Sans = Arial
Liberation Serif = Times New Roman

Es besteht als gute Chance, dass die Font-Gruppe unter Linux installiert ist. Und wie man das unter Windows behandelt, weisst Du ja.

Winni

HobbyProgrammer
Beiträge: 166
Registriert: Di 29. Okt 2019, 12:51
Wohnort: Deutschland , Baden-Württemberg

Re: Font aus *.res Datei benutzen Cross-Platform

Beitrag von HobbyProgrammer »

Ich habe für das Terminal unter Linux Dejavu Sans Mono verwendet.

Und klar, hab den Wald vor lauter Bäumen nicht gesehen, kann ich unter Linux diesen Font angeben und unter Windows dann mit der bekannten Vorgehensweise diesen Font aus den Resourcen laden und beim Beenden wieder löschen.
Bedingte Kompilieren war glaube ich das Stichwort ... :roll:

Danke für den Schubs in die richtige Richtung.
Host: Core i7-12700H, NVIDIA RTX3050 6GB, 32GB Ram, 1TB NVME SSD mit KUbuntu 22.04LTS 64bit , VM KUbuntu 22.04 LTS 64bit mit Lazarus 2.2.6 und Cross-Platform Compiler für Linux 32/64bit und Windows 32/64bit. Wine für erste Tests der Windows Binarys.

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Font aus *.res Datei benutzen Cross-Platform

Beitrag von Winni »

HobbyProgrammer hat geschrieben:
Do 27. Mai 2021, 12:38


Und klar, hab den Wald vor lauter Bäumen nicht gesehen

Danke für den Schubs in die richtige Richtung.
Da nicht für.

Aber dann ist das Waldsterben ja genau richtige für Dich ......

Winni

Antworten