Raspberry Font Problem (gelöst)

Für allgemeine Fragen zur Programmierung mit PureBasic.
Armkrie
Beiträge: 17
Registriert: 30.12.2008 04:03

Raspberry Font Problem (gelöst)

Beitrag von Armkrie »

Hallo,

habe ein Problem mit Purebasic beim Raspberry.
Ich hoffe mir kann jemand helfen.

Wenn ich einen Schriftfont verwende, beendet sich das Programm mit einem Speicherzugriff-Fehler.
Werden die Zeilen 'SetGadgetFont' auskommentiert, funktioniert das Programm.

Auch auf meinem Windows-Rechner funktioniert es.
Es hat auch schon mit der Vorgängerversion von 'bookworm' funktioniert.

Kann es sein das Purebasic nicht richtig mit dem aktuellen Betriebssystem vom Raspberry funktoniert?

Vielleicht hat schon jemand erfahrung hiermit gesammelt.


Konfiguration:
Raspberry Pi 3 Model B
Raspberry Pi 7-Inch Touch Screen Display
Raspberry Pi OS with desktop (64-bit) vom 05.12.2023, Version 12 (bookworm)
PureBasic 6.04 LTS (x64)

Bild

TestCode:

Code: Alles auswählen

;-* Globale Variablen anlegen *
  Global FontID1.l
  Global FontID2.l
  Global FontID3.l
  Global FontID4.l

;-* Globale Variablen zuweisen *
  FontID1 = LoadFont(1, "FreeSans", 16, #PB_Font_Bold)
  FontID2 = LoadFont(2, "FreeSans",  6)
  FontID3 = LoadFont(3, "FreeSans", 10, #PB_Font_Bold)
  FontID4 = LoadFont(4, "FreeSans", 13, #PB_Font_Bold)

;-* Hauptfenster öffnen *
  If OpenWindow(0, 0, 0, 140, 150, "SchriftTest", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
    SetWindowColor (0, $A9A9A9)

    TextGadget     (0,   5,   5,  130,  30, "Text 1")
    SetGadgetColor (0, #PB_Gadget_BackColor , $A9A9A9)
    SetGadgetFont  (0, FontID1)

    TextGadget     (1,   5,  40,  130,  30, "Text 2")
    SetGadgetColor (1, #PB_Gadget_BackColor , $A9A9A9)
    SetGadgetFont  (1, FontID2)

    TextGadget     (2,   5,  75,  130,  30, "Text 3")
    SetGadgetColor (2, #PB_Gadget_BackColor , $A9A9A9)
    SetGadgetFont  (2, FontID3)

    TextGadget     (3,   5, 110,  130,  30, "Text 4")
    SetGadgetColor (3, #PB_Gadget_BackColor , $A9A9A9)
    SetGadgetFont  (3, FontID4)
  EndIf

;-* Eingabeschleife *
  Repeat
    Event = WaitWindowEvent()

    Select Event
      Case #PB_Event_CloseWindow
        Break
    EndSelect
  ForEver
Zuletzt geändert von Armkrie am 17.03.2024 22:07, insgesamt 1-mal geändert.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Raspberry Font Problem

Beitrag von STARGÅTE »

Der Rückgabewert von LoadFont() ist eine Integer (.i), keine Long (.l)!

Code: Alles auswählen

Global FontID1.i
  Global FontID2.i
  Global FontID3.i
  Global FontID4.i
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Armkrie
Beiträge: 17
Registriert: 30.12.2008 04:03

Re: Raspberry Font Problem

Beitrag von Armkrie »

Besten Dank für den Hinweis.
Jetzt funktioniert es.

Komisch das unter Windows noch nie ein Fehler deswegen angezeigt wurde.
Weder unter 32, noch bei 64 Bit.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Raspberry Font Problem

Beitrag von STARGÅTE »

Armkrie hat geschrieben: 17.03.2024 22:07 Komisch das unter Windows noch nie ein Fehler deswegen angezeigt wurde.
Weder unter 32, noch bei 64 Bit.
Es wurde erst vor kurzem was im Speichermanagement von PureBasic geändert, sodass solche IDs unter 64 bit größere Zahlen sein können.
Unter Windows waren die Zahlen möglicherweise gerade noch klein genug um in eine Long (32 bit) zu passen und unter x86 (32 Bit) ist eine Integer = Long, also gab es da sowieso kein Problem.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Antworten