Aktuelle Zeit: 21.02.2019 21:49

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: [gelöst] Einsatz von Fonts in Formular klappt nicht richtig
BeitragVerfasst: 22.12.2018 23:10 
Offline
Benutzeravatar

Registriert: 19.07.2018 20:41
Hey,
ich versuche seit einiger Zeit, Fonts gezielt in Formularen einzusetzen. Dabei komme ich an einem Punkt nicht mehr weiter und auch die entsprechenden Hilfe-Einträge haben mir keine Lösung gebracht.

Im Prinzip geht es einerseits darum, in einem Formular verschiedene Schriftgrößen einzusetzen (z.B. für Überschriften). Das kriege ich hin. Aber ich wollte auch unabhängig davon sein, welche Fonts auf dem Rechner installiert sind (im Prinzip geht es dabei auch darum, dass man ein Stück weit unabhängig vom Betriebssystem wird). Habe ich mir also einen OpenSource-Font (DejaVu) runtergeladen und ins Verzeichnis meines kleines Testprogramms gepackt. Er wird auch mit RegisterFont registriert und dann mit LoadFont ohne Fehler verwendet... aber er bewirkt nix. In der Anzeige sehe ich meiner Meinung nach immer, dass letztlich die Systemschrift verwendet wird.
Ich vermute, das liegt am Font-Mapper von Windows (ich arbeite auf Win10/64bit). Aber ich habe keine Peilung, was ich falsch mache. Bitte schaut euch das mal an.
Hier mein Code:
Code:
OpenWindow(#PB_Any, 0, 0, 300, 200, "Font ändern", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
ButtonGadget(0, 10,150, 100, 20, "Font ändern")
#AKTUELLER_FONT = 0
FontGroesse.i = 10
Groesser.i = #True
If RegisterFontFile("DejaVuSerif.ttf")
  Debug "Font wurde registriert."
EndIf
LoadFont(#AKTUELLER_FONT, "Arial", 10)
TextGadget(1, 10,10, 280, 180, "Beispieltext")
SetGadgetFont(1, FontID(#AKTUELLER_FONT))
Repeat
  Event = WaitWindowEvent()
  If Event = #PB_Event_Gadget
    If Groesser = #True
      If FontGroesse > 50
        Groesser = #False
      EndIf
      FontGroesse = FontGroesse + 10
    Else    ; Groesser ist nicht True
      If FontGroesse < 20
        Groesser = #True
      EndIf
      FontGroesse = FontGroesse - 10
    EndIf   
    LoadFont(#AKTUELLER_FONT, "Arial", FontGroesse)
    SetGadgetFont(1,FontID(#AKTUELLER_FONT))
    Debug GetGadgetFont(0)
  EndIf
 
Until Event = #PB_Event_CloseWindow


… habe dazu auch zwei Screenshots erstellt (einmal mit Arial, einmal mit DejaVu) wo man sieht, dass die Schrift immer gleich ist. Aber ich finde hier keinen Button, mit dem man Dateien hochladen kann. Bin ich selbst dafür zu blöd oder ist das hier nicht vorgesehen?


Zuletzt geändert von Qnode am 24.12.2018 14:36, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Einsatz von Fonts in Formular klappt nicht richtig
BeitragVerfasst: 23.12.2018 13:03 
Offline
Benutzeravatar

Registriert: 01.04.2007 20:18
Ein Link zu dem Font wäre hilfreich gewesen.

Aber nichtsdestotrotz :

1. Der Fontname bei LoadFont() MUSS EXAKT mit dem Namen übereinstimmen, der mit dem Fontanzeigeprogramm für Windows angezeigt wird... (Wenn man auf das Fontfile doppelklickt!)

2. PB ist da auf Windows etwas eingeschränkt. Loadfont sowie Registerfont geben immer #True zurück, egal ob ein Font geladen/registriert wurde oder nicht. Das liegt an Windows, weil der Fontmapper versucht einen "ähnlichen" Font zu nehmen, wenn der gewünschte nicht da ist.

_________________
PureBasic 5.46 LTS / 5.62 (Windows x86/x64) | Windows10 Pro x64 | Z370 Extreme4 | i7 8770k | 32GB RAM | iChill GeForce GTX 980 X4 Ultra | HAF XF Evo​​


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Einsatz von Fonts in Formular klappt nicht richtig
BeitragVerfasst: 24.12.2018 14:36 
Offline
Benutzeravatar

Registriert: 19.07.2018 20:41
Jetzt funktioniert es :D . Der entscheidende Tip war der Doppelklick auf den Fontfile! In meinem Programm hatte ich "DejaVuSerif" geschrieben, aber es muss "DejaVu Serif" heißen. Es fehlte nur ein lächerliches Leerzeichen.
Vielen Dank, ich habe Tage lang versucht, es selbst hinzubekommen!

Der Link zum Font (falls das noch jemand interessiert) ist hier: https://dejavu-fonts.github.io/


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 6 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye