LoadFont

Anfängerfragen zum Programmieren mit PureBasic.
delikanli_19_82
Beiträge: 173
Registriert: 30.11.2010 02:34

LoadFont

Beitrag von delikanli_19_82 »

habe noch eine frage über LoadFont.

der LoadFont scheint die Schrift und Grad nicht beim Laden des Programms immer korrekt zu laden. Es gibt zwar keine Fehlermeldung. die Anwendung wird gestartet und der Font wird geladen aber wenn ich mittels DrawText nun zeichne, erscheint nicht die gewünschte Schriftart in der korrekten Größe. Statt dessen kommt ganz normal diese standardmäßige Fontdarstellung in der eben standardmäßigen größe.

Das kann ruhig jeder selbst ausprobieren. ein beispielcode ist nicht wirklich von nöten. einfach mittels LoadFont die schrift laden und vor DrawText unter "If CreateImage..." mittels isfont() die Fontverfügbarkeit checken und wenn verfügbar einfach mittels DrawingFont() anwenden. Mal klappts wie es soll. Mal scheint alles ok, aber die Font und Grad passen sich nicht an.

woran kann es liegen? gibt es eine möglichkeit, dies zu erzwingen?

mfg

kurt
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: LoadFont

Beitrag von RSBasic »

Ich hab mal nen Beispielcode geschrieben und habe mehrfach hintereinander ausgeführt.
Bei mir entstehen keine Fehler beim Laden oder Zeichnen:

Code: Alles auswählen

EnableExplicit

Define EventID

LoadFont(1,"Courier",20,#PB_Font_Underline)
CreateImage(1,480,50)

If StartDrawing(ImageOutput(1))
  DrawingFont(FontID(1))
  
  DrawText(10,10,"PureBasic ForEver",RGB(0,0,255))
  
  StopDrawing()
EndIf

If OpenWindow(0,0,0,500,400,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  ImageGadget(1,10,10,0,0,ImageID(1),0)
  
  Repeat
    EventID=WaitWindowEvent()
    If EventID = #PB_Event_CloseWindow
      End
    EndIf
  ForEver
EndIf
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
delikanli_19_82
Beiträge: 173
Registriert: 30.11.2010 02:34

Re: LoadFont

Beitrag von delikanli_19_82 »

in meinem beispiel wird der image beim mousedown und mouseup sowie bei einem mouseover und mouseout ereignis jeweils neugezeichnet und in den imagegadget mittels setgadgetstate geladen.

beim neuzeichnen wird jedesmal die DrawingFont() neu aufgerufen. kann dieses immer wiederkehrende aufrufen dieser prozedur den effekt auslösen?

ich verzweifle...

mfg.

kurt
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Re: LoadFont

Beitrag von Bisonte »

delikanli_19_82 hat geschrieben:ich verzweifle...
dann wäre es vielleicht jetzt an der Zeit, den Code zu posten, der Dich verzweifeln lässt,
damit wir nicht im Dunkeln tappen.
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
delikanli_19_82
Beiträge: 173
Registriert: 30.11.2010 02:34

Re: LoadFont

Beitrag von delikanli_19_82 »

der code ist zu umfangreich.

muss erstmal selbst nach einer lösung suchen wie es aussieht. wenns gar nicht geht, naja mal schauen....

trotzdem danke an alle
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: LoadFont

Beitrag von RSBasic »

Dann versuch, dein umfangreicher Code zu einem kleinen Beispielcode umzuschreiben. Das hilft ganz bestimmt. Wenn du Glück hast, findest du selber den Fehler. Ansonsten kannst du dein Beispielcode hier posten, so dass wir das Problem nachvollziehen können. :wink:
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Gimbly
Beiträge: 169
Registriert: 28.12.2005 14:26
Wohnort: NRW

Re: LoadFont

Beitrag von Gimbly »

Bin heute auf diesen alten Thread gestoßen, weil ich genau das hier geschilderte Phänomen habe.

Wenn ich LoadFont() ganz zu Anfang im Code stehen habe, wird der Font nicht immer geladen und man erhält mit DrawText() dann die Standard-Schrift. Weiter hinten im Code platziert, arbeitet LoadFont() dann korrekt.

Verwende allerdings noch PB 4.51 (x64).
Gruß
Markus
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: LoadFont

Beitrag von Kiffi »

@Gimbly: LoadFont liefert einen Rückgabewert ("Returns nonzero if the
font was loaded successfully and zero if not.")

Hast Du den schon mal ausgewertet?

Ansonsten kannst Du ja mal testen, ob sich diesbezüglich in der
aktuellen PB-Version (kannst Du parallel zur Deiner jetzigen Version
installieren) was geändert hat.

Grüße ... Kiffi
a²+b²=mc²
Gimbly
Beiträge: 169
Registriert: 28.12.2005 14:26
Wohnort: NRW

Re: LoadFont

Beitrag von Gimbly »

Hallo Kiffi,

naja, das Problem kann man ja einfach umgehen, indem man LoadFont() etwas später im Code plaziert.

Ist nur gut zu wissen.
Gruß
Markus
Antworten