ich habe als absoluter Anfänger als ersten Versuch eine GUI erstellt auf Basis einer You-Tube Anleitung. Syntaxcontrolle läuft ohne Fehler durch. Wenn ich den Quellcode ohne Debugger compilieren und ausführen lasse erscheint die GUI, aber die Buttons erzeugen kein Debug-Ausgabefeld, wie als Dummy erwünscht.
Wenn ich den Code jedoch mit eingeschalteten Debugger compilieren lasse, stürzt das komplette PureBasic mit der Meldung "Das Executable wurde unerwartet beendet" ab . Nach Neustart erscheint eine Meldung "Eine vorherige Sitzung scheint nicht ordnungsgemäss beendet worden zu sein" - Richtig.
Systemdaten. Opensuse LEAP 42.1 aktueller Stand. free version of PureBasic 5.50 (Linux - x64).
Formulardatei, erstellt mit Designer:
Code: Alles auswählen
;
; This code is automatically generated by the FormDesigner.
; Manual modification is possible to adjust existing commands, but anything else will be dropped when the code is compiled.
; Event procedures needs to be put in another source file.
;
Enumeration FormWindow
#Hauptfenster
EndEnumeration
Enumeration FormGadget
#Bild_laden
#Bild_scannen
#Bild_teilen
#OCR_starten
EndEnumeration
Enumeration FormImage
#Img_Hauptfenster_0
#Img_Hauptfenster_1
#Img_Hauptfenster_2
#Img_Hauptfenster_3
EndEnumeration
UsePNGImageDecoder()
LoadImage(#Img_Hauptfenster_0,"/home/horst/PB Project/image.png")
LoadImage(#Img_Hauptfenster_1,"/home/horst/PB Project/scanner.png")
LoadImage(#Img_Hauptfenster_2,"/home/horst/PB Project/teilen.png")
LoadImage(#Img_Hauptfenster_3,"/home/horst/PB Project/run.png")
Enumeration FormFont
#Font_Hauptfenster_0
EndEnumeration
LoadFont(#Font_Hauptfenster_0,"Sans", 12, #PB_Font_Bold)
Declare Bild_teilen(EventType)
Declare Bild_laden(EventType)
Declare Bild_scannen(EventType)
Declare OCR_starten(EventType)
Procedure OpenHauptfenster(x = 0, y = 0, width = 1290, height = 825)
OpenWindow(#Hauptfenster, x, y, width, height, " kOCR - Hilfe", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered | #PB_Window_WindowCentered)
ButtonImageGadget(#Bild_laden, 40, 40, 80, 80, ImageID(#Img_Hauptfenster_0), #PB_Button_Toggle)
GadgetToolTip(#Bild_laden, "Bild von FP laden")
SetGadgetFont(#Bild_laden, FontID(#Font_Hauptfenster_0))
ButtonImageGadget(#Bild_scannen, 130, 40, 80, 80, ImageID(#Img_Hauptfenster_1), #PB_Button_Toggle)
GadgetToolTip(#Bild_scannen, "Scannt Bild und speichert es temporär ab")
ButtonImageGadget(#Bild_teilen, 220, 40, 80, 80, ImageID(#Img_Hauptfenster_2), #PB_Button_Toggle)
GadgetToolTip(#Bild_teilen, "Ermöglicht das Aufteilen in Textrahmen")
ButtonImageGadget(#OCR_starten, 310, 40, 80, 80, ImageID(#Img_Hauptfenster_3), #PB_Button_Toggle)
GadgetToolTip(#OCR_starten, "Startet den OCR Vorgang und speichert ODT")
EndProcedure
Procedure Hauptfenster_Events(event)
Select event
Case #PB_Event_CloseWindow
ProcedureReturn #False
Case #PB_Event_Menu
Select EventMenu()
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
Case #Bild_laden
Bild_laden(EventType())
Case #Bild_scannen
Bild_scannen(EventType())
Case #Bild_teilen
Bild_teilen(EventType())
Case #OCR_starten
OCR_starten(EventType())
EndSelect
EndSelect
ProcedureReturn #True
EndProcedure
Code: Alles auswählen
OpenHauptfenster() ;Öffnen des Hauptfensters
Repeat ;starten der Auswertungsschleife
ProgrammAblauf = Hauptfenster_Events(WaitWindowEvent())
Until ProgrammAblauf=#False
; Until ProgrammAblauf=#True
End
Code: Alles auswählen
XIncludeFile "Hauptformular.pbf" ; Einbinden des Formulars
XIncludeFile "Hauptformular.pbi" ; Einbinden der Auswertungen
Procedure Bild_laden(EventType)
Debug "1"
EndProcedure
Procedure Bild_scannen(EventType)
Debug "2"
EndProcedure
Procedure Bild_teilen(EventType)
Debug "3"
EndProcedure
Procedure OCR_starten(EventType)
Debug "4"
EndProcedure
Link zum Anleitungsvideo: https://www.youtube.com/watch?v=d3v6pZa9WCM
3 Fragen. 1.) Warum öffnet das Debug-Ausgabefenster nicht?
2.) Wieso der Absturz mit Debugger
3.) Warum habe ich in der IDE keinen Zugriff auf den unteren Teil des Debugger Ausklappmenues (Variablenliste, Programmanalyse etc.)
Ich hoffe jemand kann mir einige Tipps geben.
sfbeetle