Einzelnen Beitrag anzeigen

Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#249

AW: himXML (gesprochen himix ML)

  Alt 10. Okt 2010, 14:19
Das ist nicht gegeben. n unf f stehen sowohl in der Listbox, als auch im XMLNode direkt hintereinander. Dessen bin ich mir sicher, da ich die Listbox bei jeder Änderung im XML immer frisch aus dem Node befülle, und dabei nicht auf XMLNode.NextNode zurückgreife, sondern wirklich per Index durch XMLNode.Nodes[i] iteriere. f ist immer der Folgeknoten von n (deswegen f ).
Auf diese Weise habe ich mit TList auch schon öfter gearbeitet, was okay war. Die Funktion die ich damit realisieren will ist einfach, dass man mit 2 Buttons "hoch" und "runter" ein Item pro Klick um einen Platz rauf oder runter wandern lassen kann. Dies innerhalb der Listbox allein reicht jedoch nicht, sondern muss schon in der Datenhaltung darunter ebenfalls passieren, dem XML.

Edit: Um das eigentliche Problem nochmal zu verdeutlichen: Ein via Insert() eingefügter Node wird nachher nicht mehr im Array des Elternknotens gefunden. Sowohl ParentNode.IndexOf(n) als auch n.Index liefern -1, obgleich ich den Knoten per n := ParentNode.Nodes['#NodeName>Attribut1=aValue'] ermittelt habe.

Meine Verschiebung geht daher, aber auch nur, wenn kein beteiligter Knoten zuvor schon ein mal verschoben wurde.

Besonders ärgerlich dabei: Ein Haltepunkt in der Insert() Funktion in der himXML.pas wird zur Laufzeit deaktiviert. Ich kann also garnicht nachvollziehen, was da genau passiert - oder auch nicht Sogar mit F7 reinsteppen tut nicht, der Debugger hüpft einfach drüber.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)

Geändert von Medium (10. Okt 2010 um 16:30 Uhr)
  Mit Zitat antworten Zitat