Also hab jetzt n bissl rum probiert..immer noch nichts. Wollts wie von phlux vorgeschlagen machen. Nur wenn ich das Speichern und ListUpdaten erst zum Schluss mache - was ja auch Sin ergibt, Stresst er wegen dem SelectedNode rum. Poste mal meinen umgestellten Code - So funztz zwar aber immer nur wenn maximal 2 Einträge im
XML bzw. ListView sind (Das eigentliche Problem).
Delphi-Quellcode:
procedure Tfrm_terminplaner.Image2Click(Sender: TObject);
var
node, parentnode: IXMLDOMNode;
id,id2,i,i2: integer;
begin
i:=lv_eintraege.Selected.Index;
id:=StrToInt(lv_eintraege.Items[i].Caption);
node :=xmlDoc.selectSingleNode('/PlanView/termin[terminid="'+IntToStr(id)+'"]');
parentnode := node.parentNode;
parentnode.removeChild(node);
xmlDoc.save(frm_terminplaner.instpath + xmlfilename); // Dies einfach mal wegdenken, wäre dann Phluxs Vorschlag
frm_terminplaner.UpdateList; // -||-
for i2:=1 to lv_eintraege.Items.Count-1
do begin
id:=StrToInt(lv_eintraege.Items[i].Caption);
node := xmlDoc.documentElement.selectSingleNode('/PlanView/termin[terminid="'+IntToStr(id)+'"]');
node.selectSingleNode('terminid').text:=IntToStr(id);
end;
xmlDoc.save(frm_terminplaner.instpath + xmlfilename);
status_03.Caption:='Der Termin wurde erfolgreich gelöscht!';
Timer1.Enabled:=true;
frm_terminplaner.UpdateList;
Label2.Caption:='erfasste Termine ('+IntToStr(lv_eintraege.Items.Count)+')';
end;