Die Lösung hat man nicht auf den 1. Blick gesehen
Ich habe folgende 2 Proceduren zum Auslesen der XML-Datei bekommen und auch dort das Problem bereits behoben...
Kam halt daher, dass diese 2 Proceduren nicht selbst geschrieben habe, sonst hätte ich den Fehler schon viel früher gemerkt...
Code: Alles auswählen
Procedure __ReadContentFromXML_ForData(iXML.l, *Node, bNewContent.b = #False)
Protected i.l
If XMLStatus(iXML) <> #PB_XML_Success
Debug "ERROR"
Debug Str(XMLErrorLine(iXML))+":"+Str(XMLErrorPosition(iXML))
Debug XMLError(iXML)
CallDebugger
EndIf
If XMLNodeType(*Node) = #PB_XML_Normal And LCase(GetXMLNodeName(*Node)) = "phpkit_content"
bNewContent = #True
AddElement(Content())
EndIf
If bNewContent
Select LCase(GetXMLNodeName(*Node))
Case "content_id" : Content()\id = Val(GetXMLNodeText(*Node))
Case "content_cat" : Content()\cat = Val(GetXMLNodeText(*Node))
Case "content_time" : Content()\time = Val(GetXMLNodeText(*Node))
Case "content_title" : Content()\title = GetXMLNodeText(*Node)
Case "content_autor" : Content()\autor = GetXMLNodeText(*Node)
Case "content_text" : Content()\text = GetXMLNodeText(*Node)
Case "content_altdat" : Content()\altdat = GetXMLNodeText(*Node)
Case "content_altdat2" : Content()\altdat2 = GetXMLNodeText(*Node)
Case "content_option" : Content()\option = Val(GetXMLNodeText(*Node))
Case "content_status" : Content()\status = Val(GetXMLNodeText(*Node))
Case "content_subid" : Content()\subid = Val(GetXMLNodeText(*Node))
Case "content_expire" : Content()\expire = Val(GetXMLNodeText(*Node))
Case "content_header" : Content()\header = GetXMLNodeText(*Node)
Case "content_autorid" : Content()\autorid = Val(GetXMLNodeText(*Node))
Case "content_themeid" : Content()\themeid = Val(GetXMLNodeText(*Node))
Case "content_views" : Content()\views = Val(GetXMLNodeText(*Node))
Case "content_rating" : Content()\rating = Val(GetXMLNodeText(*Node))
Case "content_rating_total" : Content()\rating_total = Val(GetXMLNodeText(*Node))
Case "content_comment_status" : Content()\comment_status = Val(GetXMLNodeText(*Node))
Case "content_rating_status" : Content()\rating_status = Val(GetXMLNodeText(*Node))
Case "content_ubb" : Content()\ubb = Val(GetXMLNodeText(*Node))
Case "content_html" : Content()\html = Val(GetXMLNodeText(*Node))
Case "content_smilies" : Content()\smilies = Val(GetXMLNodeText(*Node))
Case "content_filesize" : Content()\filesize = Val(GetXMLNodeText(*Node))
Case "content_template" : Content()\template = GetXMLNodeText(*Node)
Case "content_teaser" : Content()\teaser = GetXMLNodeText(*Node)
Case "content_related" : Content()\related = GetXMLNodeText(*Node)
Case "phpkit_content"
Default
Debug "Falscher Eintrag!!! ("+GetXMLNodeName(*Node)+")"
EndSelect
SetGadgetItemState(#KalenderGadget, Content()\time, #PB_Calendar_Bold)
EndIf
If XMLChildCount(*Node)
For i=1 To XMLChildCount(*Node)
If Not bNewContent
SetGadgetAttribute(22, #PB_ProgressBar_Maximum, XMLChildCount(*Node))
SetGadgetState(22, i)
EndIf
__ReadContentFromXML_ForData(iXML.l, ChildXMLNode(*Node, i), bNewContent)
Next i
EndIf
EndProcedure
Procedure.b ReadContentFromXML(XMLFile.s)
Protected iXML.l = LoadXML(#PB_Any, XMLFile)
If Not IsXML(iXML)
ProcedureReturn #False
EndIf
OpenWindow(23, 244, 202, 290, 40, "Fortschritt", #PB_Window_BorderLess)
CreateGadgetList(WindowID(23))
ProgressBarGadget(22, 0,0,290, 40, 0, 100)
__ReadContentFromXML_ForData(iXML.l, RootXMLNode(iXML))
FreeGadget(22)
CloseWindow(23)
FreeXML(iXML)
ProcedureReturn #True
EndProcedure
Vorhin sah das Ende so aus:
Code: Alles auswählen
OpenWindow(23, 244, 202, 290, 40, "Fortschritt", #PB_Window_BorderLess)
CreateGadgetList(WindowID(23))
ProgressBarGadget(22, 0,0,290, 40, 0, 100)
If XMLChildCount(*Node)
For i=1 To XMLChildCount(*Node)
__ReadContentFromXML_ForData(iXML.l, ChildXMLNode(*Node, i), bNewContent)
SetGadgetState(22, i)
Next i
EndIf
FreeGadget(22)
CloseWindow(23)
EndProcedure
Procedure.b ReadContentFromXML(XMLFile.s)
Protected iXML.l = LoadXML(#PB_Any, XMLFile)
If Not IsXML(iXML)
ProcedureReturn #False
EndIf
__ReadContentFromXML_ForData(iXML.l, RootXMLNode(iXML))
FreeXML(iXML)
ProcedureReturn #True
EndProcedure
Der Fehler lag darin, dass das Window incl Gadget 2x geladen wurde...
Aber das müsste doch eigendlich einen anderen Fehler hervorrufen, oder????