Fehlermeldung durch Includefile(".....
Fehlermeldung durch Includefile(".....
Hallo Leute,
ich habe ein kleines Problem.
Ich habe in meinem Programm viele Berechnungen. Nach jeder Berechnung rufe ich zur Auswertung
über Includefile("... .pb") eine Datei auf.
Wird das Programm als .exe kompiliert gibt es kein Problem, es läuft!
Starte ich das Programm über den Debugger bekomme ich Fehler die nicht nachvollziehbar sind!
Entferne ich den Include-Aufruf der Dateien gibt es keine Fehler.
Rufe ich die Include-Dateien ohne Inhalt auf, bekomme ich die gleichen Fehler wie mit Inhalt.
Fehler heist:
in Zeile 25?
[ERROR]LoadFont[]kann nicht innerhalb eines StartDrawing[]/StopDrawing[]Blocks aufgerufen werden.
Ja, ich rufe meine Fonts ab Zeile 25 auf. Aber, ich habe weit und breit kein StartDrawing[]/StopDrawing[] aufruf.
Habt ihr eine Idee.
Gruß Elecsonny
ich habe ein kleines Problem.
Ich habe in meinem Programm viele Berechnungen. Nach jeder Berechnung rufe ich zur Auswertung
über Includefile("... .pb") eine Datei auf.
Wird das Programm als .exe kompiliert gibt es kein Problem, es läuft!
Starte ich das Programm über den Debugger bekomme ich Fehler die nicht nachvollziehbar sind!
Entferne ich den Include-Aufruf der Dateien gibt es keine Fehler.
Rufe ich die Include-Dateien ohne Inhalt auf, bekomme ich die gleichen Fehler wie mit Inhalt.
Fehler heist:
in Zeile 25?
[ERROR]LoadFont[]kann nicht innerhalb eines StartDrawing[]/StopDrawing[]Blocks aufgerufen werden.
Ja, ich rufe meine Fonts ab Zeile 25 auf. Aber, ich habe weit und breit kein StartDrawing[]/StopDrawing[] aufruf.
Habt ihr eine Idee.
Gruß Elecsonny
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Fehlermeldung durch Includefile(".....
Code?
Da alle benötigten Hinweise fehlen, denke ich im Anfängerforum wäre Deine Frage mit
Sicherheit besser aufgehoben.
Da alle benötigten Hinweise fehlen, denke ich im Anfängerforum wäre Deine Frage mit
Sicherheit besser aufgehoben.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Fehlermeldung durch Includefile(".....
Welche Hinweise werden benötigt?
Der Code ist sehr Groß zum Posten!
Das Programm besteht aus 31 .pb Dateien ohne BMPs und 115.588 kompilierte Zeilen.
" ...denke ich im Anfängerforum wäre Deine Frage mit
Sicherheit besser aufgehoben ..."
Wenn, Du meinst! Dann sollte aber auch hier einer dabei sein der ein änliches Problem schon hatte! Oder?
Gruß
Der Code ist sehr Groß zum Posten!
Das Programm besteht aus 31 .pb Dateien ohne BMPs und 115.588 kompilierte Zeilen.
" ...denke ich im Anfängerforum wäre Deine Frage mit
Sicherheit besser aufgehoben ..."
Wenn, Du meinst! Dann sollte aber auch hier einer dabei sein der ein änliches Problem schon hatte! Oder?
Gruß
- NicTheQuick
- Ein Admin
- Beiträge: 8838
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: Fehlermeldung durch Includefile(".....
Es ist etwas ungewöhnlich eine 'Includefile'-Anweisung mitten im Code zu nutzen. Normalerweise inkludiert man alle benötigten Dateien am Anfang eines Quelltextes, damit man danach die darin enthaltenen Procedures oder ähnliches nutzen kann.
Re: Fehlermeldung durch Includefile(".....
Dann hast Du irgendwo in deinem vielzugrossem Code zum posten ein StopDrawing() vergessen...elecsonny hat geschrieben:...
Fehler heist:
in Zeile 25?
[ERROR]LoadFont[]kann nicht innerhalb eines StartDrawing[]/StopDrawing[]Blocks aufgerufen werden.
Ja, ich rufe meine Fonts ab Zeile 25 auf. Aber, ich habe weit und breit kein StartDrawing[]/StopDrawing[] aufruf....
für alles weitere entweder Source posten oder den Glaskugelreinigungsservice auf Trab bringen....
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
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Fehlermeldung durch Includefile(".....
Dann solltest Du den Code auf ein minimum reduzieren, mit dem man das Problem nachvollziehen kann.elecsonny hat geschrieben:Welche Hinweise werden benötigt?
Der Code ist sehr Groß zum Posten!
Wir haben keine Glaskugeln.
Aus Deinen bisherigen Aussagen kann ich nur zu folgendem Schluß kommen:
Zeile 25 ist böse meist
Du verwendet IncludeFile falsch, besser ist es XIncludeFile am anfang des Codes zu
nutzen, ist schließlich eine Compileranweisung und keine Runtimeanweisung.
Das mit Startdrawing deutet ein Threaded-Programm an, bei dem aber keine Threadsafe aktiviert wurde.
Genug der Hellseherei, weil das kostet nur Zeit und wird auch nichts bringen, wir warten also auf Deinen
gekürzten, lauffähigen Code, der das Problem aufzeigt.
Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Fehlermeldung durch Includefile(".....
Ich habe den Ausschnitt aus meiner Main.pb gepostet.
FontID1 ist die besagte Zeile 25.
Ich kann aber auch FontID1 mit FontID4 tauschen dann erscheint der Fehler bei FontID4!
Der IncludeFile Befehl ist dafür da PrgCode an verschiedene Stellen zu nutzen!
Für mich ist der IncludeFile Befehl eine Erleicherung damit ich nicht alles doppelt und dreifach programmieren muss.
Siehe PB Ref!
FontID1 ist die besagte Zeile 25.
Ich kann aber auch FontID1 mit FontID4 tauschen dann erscheint der Fehler bei FontID4!
Der IncludeFile Befehl ist dafür da PrgCode an verschiedene Stellen zu nutzen!
Für mich ist der IncludeFile Befehl eine Erleicherung damit ich nicht alles doppelt und dreifach programmieren muss.
Siehe PB Ref!
Code: Alles auswählen
;*** Einladen der Enummerung ***
IncludeFile("EnumVariable.pb")
;*** Schriftarten ***
Global FontID1
FontID1 = LoadFont(#schrift1, "Times New Roman", 14, #PB_Font_Bold)
Global FontID2
FontID2 = LoadFont(#schrift2, "Times New Roman", 12, #PB_Font_Bold)
Global FontID3
FontID3 = LoadFont(#schrift3, "Times New Roman", 10, #PB_Font_Bold)
Global FontID4
FontID4 = LoadFont(#schrift4, "Times New Roman", 40, #PB_Font_Bold)
;*** Globale Variablen ***
Global BImage_0, BImage_1, BImage_2, BImage_3, BImage_4, BImage_5, BImage_6, BImage_7, BImage_8, BImage_9, BImage_10
Global BImage_11, BImage_12, Image_11 ,Image_12, Image_13, Image_14, Image_15, Image_16, Image_17, Image_18
;*** Einfangen der Bilder ***
BImage_0 = CatchImage(#BImage0, ?BImage_0)
BImage_1 = CatchImage(#BImage1, ?BImage_1)
BImage_2 = CatchImage(#BImage2, ?BImage_2)
BImage_3 = CatchImage(#BImage3, ?BImage_3)
BImage_4 = CatchImage(#BImage4, ?BImage_4)
BImage_5 = CatchImage(#BImage5, ?BImage_5)
BImage_6 = CatchImage(#BImage6, ?BImage_6)
BImage_7 = CatchImage(#BImage7, ?BImage_7)
BImage_8 = CatchImage(#BImage8, ?BImage_8)
BImage_9 = CatchImage(#BImage9, ?BImage_9)
BImage_10 = CatchImage(#BImage10, ?BImage_10)
BImage_11 = CatchImage(#BImage11, ?BImage_11)
BImage_12 = CatchImage(#BImage12, ?BImage_12)
Image_11 = CatchImage(#Image11, ?Image_11)
Image_12 = CatchImage(#Image12, ?Image_12)
Image_13 = CatchImage(#Image13, ?Image_13)
Image_14 = CatchImage(#Image14, ?Image_14)
Image_15 = CatchImage(#Image15, ?Image_15)
Image_16 = CatchImage(#Image16, ?Image_16)
Image_17 = CatchImage(#Image17, ?Image_17)
Image_18 = CatchImage(#Image18, ?Image_18)
;*** Laden der Bilder ***
DataSection
BImage_0:
IncludeBinary "verdichter.bmp"
BImage_1:
IncludeBinary "verdampfer.bmp"
BImage_2:
IncludeBinary "verfluessiger.bmp"
BImage_3:
IncludeBinary "kuehlmoebel.bmp"
BImage_4:
IncludeBinary "allgemein.bmp"
BImage_5:
IncludeBinary "einstellungen.bmp"
BImage_6:
IncludeBinary "laden.bmp"
BImage_7:
IncludeBinary "speichern.bmp"
BImage_8:
IncludeBinary "berechnen.bmp"
BImage_9:
IncludeBinary "drucken.bmp"
BImage_10:
IncludeBinary "info.bmp"
BImage_11:
IncludeBinary "help.bmp"
BImage_12:
IncludeBinary "speichern.bmp"
Image_11:
IncludeBinary "logo.bmp"
Image_12:
IncludeBinary "verdichter.bmp"
Image_13:
IncludeBinary "verfluessiger.bmp"
Image_14:
IncludeBinary "allgemein.bmp"
Image_15:
IncludeBinary "verdampfer.bmp"
Image_16:
IncludeBinary "kuehlmoebel.bmp"
Image_17:
IncludeBinary "einstellungen.bmp"
Image_18:
IncludeBinary "logo_g.bmp"
EndDataSection
;*** Aufau der Fenster ***
IncludeFile("WinSeiten.pb")
IncludeFile("DefVariable.pb")
; *** Start Windows Hauptfenster ***
Open_Window_hauptseite()
;*** Software Version ***
sw_version.s = "V2.0"
;************************
; Hauptprogramm
;************************
Repeat
Event = WaitWindowEvent() ; *** Einlesen der Events aus dem Windowsfenster ***
; *** selektierte Auswahl der im Windowsfenster
Select Event
Case #PB_Event_Gadget
; *** Auslesen der Daten ***
EventGadget = EventGadget() ; *** Abfrage der Events in beiden Windowsfenster ***
EventType = EventType() ; *** Feststellung des letzten Typs des Ereignisses ***
IncludeFile "DataVariablen.pb"
; ****************************
; *** Erfassen der Buttons ***
; ****************************
;*****************************************
; Datei Laden
;*****************************************
If EventGadget = #ButtonImage_laden
IncludeFile "FuncLoad.pb"
;*****************************************
; Datei Speichern
;*****************************************
ElseIf EventGadget = #ButtonImage_speichern
IncludeFile "FuncSave.pb"
;*****************************************
; Verdichter
;*****************************************
ElseIf EventGadget = #ButtonImage_Verdichter
Open_Window_verdichter()
IncludeFile "DataVerdichter.pb"
CloseWindow(#Window_verdichter)
UseGadgetList(WindowID(#Window_hauptseite))
;*****************************************
; Verflüssiger
;*****************************************
ElseIf EventGadget = #ButtonImage_Verfluessiger
Open_Window_verfluessiger()
IncludeFile "DataVerfluessiger.pb"
CloseWindow(#Window_verfluessiger)
UseGadgetList(WindowID(#Window_hauptseite))
;*****************************************
; Allgemein
;*****************************************
ElseIf EventGadget = #ButtonImage_Allgemein
Open_Window_allgemein()
IncludeFile "DataAllgemein.pb"
CloseWindow(#Window_allgemein)
UseGadgetList(WindowID(#Window_hauptseite))
;*****************************************
; Verdampfer
;*****************************************
ElseIf EventGadget = #ButtonImage_Verdampfer
Open_Window_verdampfer()
IncludeFile "DataVerdampfer.pb"
CloseWindow(#Window_verdampfer)
UseGadgetList(WindowID(#Window_hauptseite))
;*****************************************
; Kühlmöbel
;*****************************************
ElseIf EventGadget = #ButtonImage_Kuehlmoebel
Open_Window_moebel()
IncludeFile "DataKuehlmoebel.pb"
CloseWindow(#Window_moebel)
UseGadgetList(WindowID(#Window_hauptseite))
;*****************************************
; Einstellungen
;*****************************************
ElseIf EventGadget = #ButtonImage_Einstellung
Open_Window_einstellungen()
IncludeFile "DataEinstellungen.pb"
CloseWindow(#Window_einstellungen)
UseGadgetList(WindowID(#Window_hauptseite))
;*****************************************
; Berechnung
;*****************************************
ElseIf EventGadget = #ButtonImage_berechnen
Open_Window_berechnung()
IncludeFile "DataBerechnung.pb"
CloseWindow(#Window_berechnung)
UseGadgetList(WindowID(#Window_hauptseite))
;*****************************************
; Hilfe
;*****************************************
ElseIf EventGadget = #ButtonImage_hilfe
Open_Window_hilfe()
IncludeFile "DataHilfe.pb"
CloseWindow(#Window_hilfe)
UseGadgetList(WindowID(#Window_hauptseite))
;*****************************************
; Programm Info
;*****************************************
ElseIf EventGadget = #ButtonImage_info
Open_Window_info()
IncludeFile "DataInfo.pb"
CloseWindow(#Window_info)
UseGadgetList(WindowID(#Window_hauptseite))
EndIf
;************************
; Beendung des Programms
;************************
Case #PB_Event_CloseWindow
EventWindow = EventWindow()
If EventWindow = #Window_hauptseite
Break
EndIf
EndSelect
ForEver
Re: Fehlermeldung durch Includefile(".....
Da es hier um Start/Stop Drawing geht, könntest du dir folgende Macros am Anfang definieren:
Hier bekommst du im Debugger einen Bericht, wo Start und wo Stop aufgerufen wird, und ob es erfolgreich war.
Code: Alles auswählen
Procedure MyStartDrawing(Output.i, FileName.s, Line.i)
Protected Result.i = StartDrawing(Output)
If Result
Debug "StartDrawing, OK, "+FileName+", "+Str(Line)
ProcedureReturn Result
Else
Debug "StartDrawing, FAIL, "+FileName+", "+Str(Line)
EndIf
EndProcedure
Macro StartDrawing(Output)
MyStartDrawing(Output, #PB_Compiler_Filename, #PB_Compiler_Line)
EndMacro
Procedure MyStopDrawing(FileName.s, Line.i)
Protected Result.i = StopDrawing()
If Result
Debug "StopDrawing, OK, "+FileName+", "+Str(Line)
ProcedureReturn Result
Else
Debug "StopDrawing, FAIL, "+FileName+", "+Str(Line)
EndIf
EndProcedure
Macro StopDrawing()
MyStopDrawing(#PB_Compiler_Filename, #PB_Compiler_Line)
EndMacro
; Beispiel:
StartDrawing(ImageOutput(CreateImage(#PB_Any, 32, 32)))
StopDrawing()
StopDrawing()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
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: Fehlermeldung durch Includefile(".....
IncludeFile hat im Eventloop nichts zu suchen, das ist eine Compileranweisung!
Man kann eine Datei nur einmal fehlerfrei einfügen. XIncludeFile am anfang des
Codes.
Aber das wurde bereits gesagt, wäre nett, wenn Du das auch befolgen würdest.
Man kann eine Datei nur einmal fehlerfrei einfügen. XIncludeFile am anfang des
Codes.
Aber das wurde bereits gesagt, wäre nett, wenn Du das auch befolgen würdest.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
