Dieser Thread ist zwar uralt, aber da ich eine sehr ähnliche Frage habe, möchte ich keinen neuen eröffnen.
Bei mir werden unter GNU/LInux, genauer: Xubuntu 23.10, Schriften nicht aus einem Ordner im Programmverzeichnis geladen, auch nicht aus dem Programmverzeichnis direkt (die Registrierung der Schrift funktioniert hingegen anscheinend). Es wird eine Ersatzschrift gewählt, vermutlich eine Standardschrift. Wenn eine der angebotenen Schriften jedoch auf dem System installiert ist, klappt das Laden (?!). Das erscheint mir völlig unlogisch, und ich kann den Fehler nicht finden.
Code: Alles auswählen
Procedure SchrArtifika()
If RegisterFontFile(GetCurrentDirectory() + "fonts/Artifika-Regular.ttf")
If SchrGr < 9
SchrGr = 12
EndIf
If Artifika = LoadFont(#PB_Any, "Artifika Medium", SchrGr)
SetGadgetFont(#edtAusgabe, FontID(Artifika))
Else
MessageRequester("Schriftart", "Die Schrift „Artifika Medium“ konnte nicht geladen werden!", #PB_MessageRequester_Ok | #PB_MessageRequester_Error)
EndIf
Else
MessageRequester("Schriftart", "Die Schrift „Artifika Medium“ konnte nicht registriert werden!", #PB_MessageRequester_Ok | #PB_MessageRequester_Error)
EndIf
EndProcedure
Bei folgendem Code wird dann noch nicht mal meine Fehlermeldung ausgegeben:
Code: Alles auswählen
Procedure SchrArtifika()
If RegisterFontFile(GetCurrentDirectory() + "fonts/Artifika-Regular.ttf")
If SchrGr < 9
SchrGr = 12
EndIf
If LoadFont(0, "Artifika Medium", SchrGr)
SetGadgetFont(#edtAusgabe, FontID(0))
Else
MessageRequester("Schriftart", "Die Schrift „Artifika Medium“ konnte nicht geladen werden!", #PB_MessageRequester_Ok | #PB_MessageRequester_Error)
EndIf
Else
MessageRequester("Schriftart", "Die Schrift „Artifika Medium“ konnte nicht registriert werden!", #PB_MessageRequester_Ok | #PB_MessageRequester_Error)
EndIf
EndProcedure
Und auch das misslingt:
Code: Alles auswählen
Procedure SchrArtifika()
If RegisterFontFile(GetCurrentDirectory() + "fonts/Artifika-Regular.ttf")
If SchrGr < 9
SchrGr = 12
EndIf
LoadFont(0, "Artifika Medium", SchrGr)
SetGadgetFont(#edtAusgabe, FontID(0))
Else
MessageRequester("Schriftart", "Die Schrift „Artifika Medium“ konnte nicht registriert werden!", #PB_MessageRequester_Ok | #PB_MessageRequester_Error)
EndIf
EndProcedure
Die Prozedur wird aufgerufen, wenn im Menü des Anwendungsprogrammes die entsprechende Schrift ausgewählt wird, aber auch wenn sie beim Programmstart aus der zugehörigen Einstellungsdatei (.ini) gelesen wird. Alles andere klappt, also Schriftgröße oder Hintergrundfarbe, nur eben das Laden der Schriften aus dem Programmordner nicht.
Vielleicht hat jemand eine Idee, woran es liegen könnte.