Seite 1 von 4

mal ne Font Frage...

Verfasst: 20.04.2016 17:55
von northstarex
ich will ein Zeichensatz verwenden, der nicht im im System installiert ist, geht das?
Ich frage jetzt ganz einfach mal doof :D

Re: mal ne Font Frage...

Verfasst: 20.04.2016 18:24
von ts-soft
northstarex hat geschrieben:ich will ein Zeichensatz verwenden, der nicht im im System installiert ist, geht das?
Klar geht das. Dafür ist es aber erforderlich das genutzte Betriebssystem zu kennen, damit man Dir sagen könnte, welche API erforderlich ist.

Hier die erste Anlaufstelle für Windows: https://msdn.microsoft.com/en-us/librar ... 85%29.aspx

Re: mal ne Font Frage...

Verfasst: 20.04.2016 18:38
von RSBasic
Falls du Windows verwendest, kannst du deine eigene Schriftart registrieren und verwenden: http://www.rsbasic.de/aktualisierung/wi ... 20laden.pb

Re: mal ne Font Frage...

Verfasst: 21.04.2016 00:12
von northstarex
cool... vielen Dank.

aso... ja, ich verwende Windows ^^



Gibt es da auch eine Lösung für Linux?

Re: mal ne Font Frage...

Verfasst: 21.04.2016 09:18
von RSBasic

Re: mal ne Font Frage...

Verfasst: 21.04.2016 14:03
von northstarex
klasse... sehr schön. Danke. Ich wollte nämlich das meine Projekte auf beiden Plattformen laufen. Da ja Microsoft langsam auf Linux steht, sollte man Linux vielleicht nicht mehr ganz so Links liegen lassen - so allgemein gesehen.

Das so mal am Rande :)


bis denne...
North

Re: mal ne Font Frage...

Verfasst: 10.05.2016 14:17
von northstarex
Falls du Windows verwendest, kannst du deine eigene Schriftart registrieren und verwenden: http://www.rsbasic.de/aktualisierung/wi ... 20laden.pb
Ich habe festgestellt, dass diese Routine leider nicht auf allen Windows Rechnern läuft. Das erstellte PRG läuft garnet erst an.

Hier mal der Code:

Code: Alles auswählen

Procedure AddFont()
  AddFontResource_("cbm.ttf");Anpassen
  SendMessage_(#HWND_BROADCAST,#WM_FONTCHANGE,0,0)
EndProcedure

Procedure RemoveFont()
  RemoveFontResource_("cbm.ttf");Anpassen
  SendMessage_(#HWND_BROADCAST,#WM_FONTCHANGE,0,0)
  FreeFont(1)
EndProcedure

AddFont()
LoadFont(1,"cbm",10, #PB_Font_HighQuality)
LoadFont(2,"cbm",9, #PB_Font_HighQuality)
Was gibt es noch für Möglichkeiten um Fonts nachzuladen? Na gut... gibt ja noch die Möglichkeit Fonts in Grafik umzuwandeln, aber ich möchte eine normale Font nachladen und benutzen.

Re: mal ne Font Frage...

Verfasst: 10.05.2016 15:17
von RSBasic
Gab es eine Fehlermeldung? Welches Betriebssystem war das? Vielleicht kann ich dort auch testen, ob das Problem ebenfalls entsteht.

Re: mal ne Font Frage...

Verfasst: 10.05.2016 15:19
von ts-soft
Normal läuft die Routine unter allen Windows-Versionen! Aber die Schrift "cbm.ttf" muss sich natürlich auf dem anderem Rechner
befinden, und zwar in dem Ordner, der angegeben wurde (hier also keiner, wird als "CurrentDirectory" genutzt, was sonst was sein
könnte).
Wenn die Schrift sich im Programm-Ordner befindet, so ist der vollständige Pfad:

Code: Alles auswählen

GetPathPart(ProgramFilename()) + "cbm.ttf"
Damit das ganze dann auch beim Debuggen funktioniert, sollte die CompilerOption:
Temporäres Executable im Quellcode-Verzeichnis erstellen angehakt sein!

//edit
Klammern angepasst!

Re: mal ne Font Frage...

Verfasst: 10.05.2016 15:22
von Kiffi
AddFontResource sollte eigentlich auch auf älteren Windows-Betriebssystemen laufen. Habe jetzt allerdings auch keine belastbare Quelle zur Hand.

Was mir allerdings bei Deinen Codes auffällt ist, dass Du nicht testest, ob eine zu ladende Datei (hier der Zeichensatz) auch wirklich vorhanden ist. Das kann man z.B. mit FileSize() erledigen und bei Nichtvorhandensein (FileSize(ZuLadendeDatei)=-1) entsprechende darauf reagieren.

Grüße ... Peter