ich habe wieder ein Problem (ist eigentlich gelogen, denn es sind zwei) bei dem ich nicht weiter komme. Der Code ist inzwischen ein wenig angewachsen, aus dem Grund würde ich denken, dass ein Upload sinnvoller wäre, aber da ich hier diese Funktionalität nicht gefunden habe, muss wohl der Code 'rein. Ich erkläre wohl am besten zuerst wo ich mein Problem habe bevor ich den Code einfüge.
Wenn ich im Main Window über das Button die Grafik aufrufe, kann ich, nach dem Schließen der Grafik, über das Menü eine Datei weder laden noch kann ich sie speichern. Die Fehlermeldung lautet in beiden Fällen: "Das angegebene #Gadget wurde nicht initialisiert". Einmal ist der Fehler in der Prozedur Data_save und einmal in Data_load, je nach gewähltem Menüpunkt. Schaue ich mir die Grafik nicht vorher an, kann ich ohne Fehler so oft laden und speichern wie ich möchte.
Das zweite Problem ist, dass ich die Grafik nur einmal anschauen kann. Beim zweiten öffnen schließt das Fenster mit der Grafik sofort wieder.
Ich bedanke mich bereits im voraus für Eure Unterstützung

Liebe Grüße
Mike
Jetzt zu dem angedrohten Code

Code: Alles auswählen
EnableExplicit
;- Window Constants
;
Enumeration
#Window_Main_1
#Window_Picture_Workflow
EndEnumeration
;- MenuBar Constants
;
Enumeration
#MenuBar_File
EndEnumeration
Enumeration
#MENU_File_Load_file
#MENU_File_Save_file
EndEnumeration
;- Gadget Constants
;
Enumeration
#Text_Project_Name
#String_Project_Name
#Text_Customer_name
#String_Customer_name
#Text_Project_No_
#String_Project_No
#Text_Project_ID
#StringProject_ID
#Date_Start_date
#Date_End_date
#Text_Start_date
#Text_End_date
#Frame_project_details
#Frame_Project_Typ
#Text_Project_type_Project
#Radio_Project_type_Project
#Text_Project_type_Small_project
#Radio_Project_type_Small_project
#Text_Project_type_Smal_work
#Radio_Project_type_Small_work
#Text_Project_type_Consultancy
#Radio_Project_type_Consultancy
#Text_Project_type_Component_project
#Radio_Project_type_Componentproject
#Text_Project_lead
#String_Project_lead
#Text_Project_manager_t_systems
#String_Project_manager_t_systems
#Text_Project_manager_att
#String_Project_manager_hp
#Text_Project_manager_hp
#String_Project_manager_att
#Text_Project_sponsor_shell
#String_Project_sponsor_shell
#Button_Save_data
#Button_Load_data
#Button_Quit
#Button_open_workflow_picture
#Image_workflow
EndEnumeration
;- Fonts
Global FontID1
FontID1 = LoadFont(1, "Arial", 18, #PB_Font_Bold)
Global FontID2
FontID2 = LoadFont(2, "Arial", 18)
Global FontID3
FontID3 = LoadFont(3, "Arial", 12, #PB_Font_Bold)
Global FontID4
FontID4 = LoadFont(4, "Arial", 12)
Global FontID5
FontID5 = LoadFont(5, "Arial", 10, #PB_Font_Bold)
OpenWindow(#Window_Main_1, 355, 50, 1326, 927, "Project", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
If CreateMenu(#MenuBar_File, WindowID(#Window_Main_1))
MenuTitle("File")
MenuItem(#MENU_File_Load_file, "Load Project")
MenuItem(#MENU_File_Save_file, "Save Project")
EndIf
TextGadget(#Text_Project_Name, 10, 165, 105, 30, "Project", #PB_Text_Center) ; Beginning of project frame data mask
SetGadgetFont(#Text_Project_Name, FontID1)
StringGadget(#String_Project_Name, 120, 160, 505, 30, "")
GadgetToolTip(#String_Project_Name, "Please insert the name of the project here!")
SetGadgetFont(#String_Project_Name, FontID2)
TextGadget(#Text_Customer_name, 650, 165, 120, 30, "Customer", #PB_Text_Center)
SetGadgetFont(#Text_Customer_name, FontID1)
StringGadget(#String_Customer_name, 785, 165, 505, 30, "")
GadgetToolTip(#String_Customer_name, "Please insert the name of the project here!")
SetGadgetFont(#String_Customer_name, FontID2)
TextGadget(#Text_Project_No_, 20, 200, 90, 20, "Project No.")
SetGadgetFont(#Text_Project_No_, FontID3)
StringGadget(#String_Project_No, 120, 200, 185, 20, "")
GadgetToolTip(#String_Project_No, "Insert the prject Number here")
SetGadgetFont(#String_Project_No, FontID4)
TextGadget(#Text_Project_ID, 345, 200, 80, 20, "Project ID")
SetGadgetFont(#Text_Project_ID, FontID3)
StringGadget(#StringProject_ID, 440, 200, 185, 20, "")
GadgetToolTip(#StringProject_ID, "Insert the project ID here (if available)")
SetGadgetFont(#StringProject_ID, FontID4)
DateGadget(#Date_Start_date, 785, 205, 185, 20, "%dd.%mm.%yyyy")
GadgetToolTip(#Date_Start_date, "Insert the project start date here")
TextGadget(#Text_End_date, 1015, 205, 75, 20, "End Date")
SetGadgetFont(#Text_End_date, FontID3)
DateGadget(#Date_End_date, 1105, 205, 185, 20, "%dd.%mm.%yyyy")
GadgetToolTip(#Date_End_date, "Insert the planned project end date here")
TextGadget(#Text_Start_date, 660, 205, 80, 20, "Start Date")
SetGadgetFont(#Text_Start_date, FontID3)
TextGadget(#Text_End_date, 1015, 205, 75, 20, "End Date")
SetGadgetFont(#Text_End_date, FontID3) ; End of project frame data mask
Frame3DGadget(#Frame_project_details, 10, 415, 1280, 230, "Project Details") ; Beginning of Frame "Project Details"
SetGadgetFont(#Frame_project_details, FontID1)
Frame3DGadget(#Frame_Project_Typ, 30, 450, 210, 185, "Project type") ; Beginning of Frame "Project Details / Project Tape
SetGadgetFont(#Frame_Project_Typ, FontID3)
OptionGadget(#Radio_Project_type_Project, 40, 475, 180, 20, "") ; Beginning of radio buttons for project type
SetGadgetFont(#Radio_Project_type_Project, FontID5)
SetGadgetText(#Radio_Project_type_Project, "Project")
OptionGadget(#Radio_Project_type_Small_project, 40, 505, 180, 20, "")
SetGadgetFont(#Radio_Project_type_Small_project, FontID5)
SetGadgetText(#Radio_Project_type_Small_project, "Small Project")
OptionGadget(#Radio_Project_type_Small_work, 40, 535, 180, 20, "Small Work")
SetGadgetFont(#Radio_Project_type_Small_work, FontID5)
SetGadgetText(#Radio_Project_type_Small_work, "Small Work")
OptionGadget(#Radio_Project_type_Consultancy, 40, 565, 180, 20, "Consultancy")
SetGadgetFont(#Radio_Project_type_Consultancy, FontID5)
SetGadgetText(#Radio_Project_type_Consultancy, "Consultancy")
OptionGadget(#Radio_Project_type_Componentproject, 40, 595, 180, 20, "Component Project")
SetGadgetFont(#Radio_Project_type_Componentproject, FontID5)
SetGadgetText(#Radio_Project_type_Componentproject, "Component Project") ; End of radio buttons for project type
TextGadget(#Text_Project_lead, 260, 440, 175, 20, "Project Lead") ; Beginning of project management mask
SetGadgetFont(#Text_Project_lead, FontID4)
StringGadget(#String_Project_lead, 455, 440, 190, 20, "")
TextGadget(#Text_Project_manager_t_systems, 260, 470, 175, 20, "Project Man. T-Systems")
SetGadgetFont(#Text_Project_manager_t_systems, FontID4)
StringGadget(#String_Project_manager_t_systems, 455, 470, 190, 20, "")
TextGadget(#Text_Project_manager_att, 260, 530, 175, 20, "Project Manager ATT")
SetGadgetFont(#Text_Project_manager_att, FontID4)
StringGadget(#String_Project_manager_hp, 455, 500, 190, 20, "")
TextGadget(#Text_Project_manager_hp, 260, 500, 175, 20, "Project Manager HP")
SetGadgetFont(#Text_Project_manager_hp, FontID4)
StringGadget(#String_Project_manager_att, 455, 530, 190, 20, "")
TextGadget(#Text_Project_sponsor_shell, 260, 560, 175, 20, "Project Sponsor Shell")
SetGadgetFont(#Text_Project_sponsor_shell, FontID4)
StringGadget(#String_Project_sponsor_shell, 455, 560, 190, 20, "") ; End of project management mask
ButtonGadget(#Button_Quit, 1150, 720, 125, 40, "Quit") ; End of operational buttons
ButtonGadget(#Button_open_workflow_picture, 350, 595, 190, 25, "open workflow picture")
Procedure Data_save() ; Procedure for saving made entries
Define FileName.s
Define File.i
FileName = GetGadgetText(#String_Project_Name) + ".txt"
File = CreateFile ( #PB_Any , FileName )
If File
WriteStringN (File , GetGadgetText(#String_Project_Name))
WriteStringN (File , GetGadgetText(#String_Customer_name))
WriteStringN (File , GetGadgetText(#String_Project_No))
WriteStringN (File , GetGadgetText(#StringProject_ID))
WriteStringN (File , GetGadgetText(#Date_Start_date))
WriteStringN (File , GetGadgetText(#Date_End_date))
WriteStringN (File , GetGadgetText(#String_Project_lead))
WriteStringN (File , GetGadgetText(#String_Project_manager_t_systems))
WriteStringN (File , GetGadgetText(#String_Project_manager_hp))
WriteStringN (File , GetGadgetText(#String_Project_manager_att))
WriteStringN (File , GetGadgetText(#String_Project_sponsor_shell))
WriteInteger (File , GetGadgetState(#Radio_Project_type_Project))
WriteInteger (File , GetGadgetState(#Radio_Project_type_Small_project))
WriteInteger (File , GetGadgetState(#Radio_Project_type_Small_work))
WriteInteger (File , GetGadgetState(#Radio_Project_type_Consultancy))
WriteInteger (File , GetGadgetState(#Radio_Project_type_Componentproject))
CloseFile ( File )
Else
Debug " Could not create the file : " + FileName
EndIf
EndProcedure
Procedure Data_load() ; Procedure for loading previously saved entries
Define ProgramDirectory.s
Define Load_file$
Define File.i
ProgramDirectory.s = Space(#MAX_PATH)
GetCurrentDirectory_(#MAX_PATH, ProgramDirectory) ;alternativ
;ProgramDirectory = GetPathPart(ProgramFilename())
Load_file$ = OpenFileRequester("Bitte Datei zum Laden auswählen",ProgramDirectory + "\","Text-Dateien | *.txt",0)
File = ReadFile ( #PB_Any , Load_file$ )
If File
SetGadgetText (#String_Project_name, ReadString (File))
SetGadgetText (#String_Customer_name, ReadString (File))
SetGadgetText (#String_Project_No, ReadString (File))
SetGadgetText (#StringProject_ID, ReadString (File))
SetGadgetState(#Date_Start_date, ParseDate("%dd.%mm.%yyyy", ReadString (File)))
SetGadgetState(#Date_End_date, ParseDate("%dd.%mm.%yyyy", ReadString (File)))
SetGadgetText (#String_Project_lead, ReadString (File))
SetGadgetText (#String_Project_manager_t_systems, ReadString (File))
SetGadgetText (#String_Project_manager_hp, ReadString (File))
SetGadgetText (#String_Project_manager_att, ReadString (File))
SetGadgetText (#String_Project_sponsor_shell, ReadString (File))
SetGadgetState (#Radio_Project_type_Project,ReadInteger (File))
SetGadgetState (#Radio_Project_type_Small_project,ReadInteger (File))
SetGadgetState (#Radio_Project_type_Small_work,ReadInteger (File))
SetGadgetState (#Radio_Project_type_Consultancy,ReadInteger (File))
SetGadgetState (#Radio_Project_type_Componentproject,ReadInteger (File))
CloseFile ( File )
Else
Debug " Could not load the file : " + Load_file$
EndIf
EndProcedure
Procedure Load_workflow_picture() ; Procedure for loading previously saved entries
UseJPEGImageDecoder()
Enumeration
#Project_type_show
#Button_Workflow_Quit
EndEnumeration
Define event
Define ProgramDirectory.s
Define Picture_File.s
Define Radio_Button_No.i
ProgramDirectory.s = Space(#MAX_PATH)
GetCurrentDirectory_(#MAX_PATH, ProgramDirectory)
If GetGadgetState(#Radio_Project_type_Project) = 1
Radio_Button_No = 1
ElseIf GetGadgetState(#Radio_Project_type_Small_project) = 1
Radio_Button_No = 2
ElseIf GetGadgetState(#Radio_Project_type_Small_work) = 1
Radio_Button_No = 3
ElseIf GetGadgetState(#Radio_Project_type_Consultancy) = 1
Radio_Button_No = 4
Else
Radio_Button_No = 5
EndIf
OpenWindow(#Window_Picture_Workflow, 355, 50, 1326, 927, "Workflow Picture", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar, #Window_Main_1 )
ButtonGadget(#Button_Workflow_Quit, 1150, 720, 125, 40, "Quit")
UseJPEGImageDecoder()
Select Radio_Button_No
Case 1
LoadImage(0, ProgramDirectory + "\Projects.jpg")
ImageGadget(0, 150, 150, 1000, 700, ImageID(0))
Case 2
LoadImage(0, ProgramDirectory + "\Small Projects.jpg")
ImageGadget(0, 150, 150, 1000, 700, ImageID(0))
Case 3
LoadImage(0, ProgramDirectory + "\Small Works.jpg")
ImageGadget(0, 150, 150, 1000, 700, ImageID(0))
Case 4
LoadImage(0, ProgramDirectory + "\Consultancy.jpg")
ImageGadget(0, 150, 150, 1000, 700, ImageID(0))
EndSelect
SetGadgetState(#Button_Workflow_Quit, 0)
Event = 0
Debug event
Repeat
Event = WaitWindowEvent() ; This line waits until an event is received from Windows
If EventGadget() = #Button_Workflow_Quit
Event = #PB_Event_CloseWindow
EndIf
Until Event = #PB_Event_CloseWindow
Debug event
CloseWindow (#Window_Picture_Workflow)
EndProcedure
Define Event
Define WindowID
Define GadgetID
Define EventType
Repeat ; Start of the event loop
Event = WaitWindowEvent() ; This line waits until an event is received from Windows
WindowID = EventWindow() ; The Window where the event is generated, can be used in the gadget procedures
GadgetID = EventGadget() ; Is it a gadget event?
EventType = EventType() ; The event type
Select event
Case #PB_Event_Menu
Select EventMenu()
Case 0
Data_Load()
Case 1
Data_save()
EndSelect
EndSelect
If EventGadget()= #Button_Quit
Event = #PB_Event_CloseWindow
EndIf
If EventGadget()= #Button_open_workflow_picture
Load_workflow_picture()
EndIf
Until Event = #PB_Event_CloseWindow ; End of the event loop