Struppi: Wo ist hier der Denkfehler?!

Beitrag lesen

Ich habe eine dynamische Tabelle und wenn ich auf den Button1 drücke füge ich Zeilen hinzu und auf Button2 löschen ich zeilen. Nun da ich sozusagen eine Art Counter habe der die Zeilen zählt und in die linke Zelle schreibt muss ich ja die folgenden Werte nach der gelöschten Zeile ja ändern. Also wenn ich vorher hatte 1,2,3,4,5 und ich lösche die Zeile 3 so soll er dort wo 4 steht 3 schreiben und wo 5 steht 4, so dass ich wieder eine nummerierung der Zeilen 1,2,3,4 bekomme. Nun ich mache dafür eine Schleife. Das heißt wenn Zeile 3 checked ist das heißt gelöscht werden soll, dann mache ich eine Schleofe ind er ich sage dass er alle Zeilen die nach der gelöschten vorkommen durchgehen soll und den Wert in der ersten Zelle um eins kleiner machen soll. nun das funzt wenn ich die letzte oder vorletzte Zeile lösche aber sobald ich irgendwo in der Mitte was lösche dann kommt die Fehlermeldung beim 2ten Durchlauf der Schleife Objekt erwartet?!? Ich sehe keinen Fehler, Könnt Ihr mir dabei helfen! DANKE!

Ich vermute mal, das Problem ist, das nach dem löschen ein Wert nicht mehr da ist, den du vorher abgefragt hast.

Das ist ein altes Problem, z.b. wenn du aus Arrays einzelne Elemente löschen willst (und es keine builtin Funktion gibt).

Die Lösung ist, das du das Array (in deinem Falle die Tabellenzeilen) von hinten durchgehst und sobald du an eine Löschmarke kommst von dort ab alle nachfolgenden Objekte in den frei werdenenden Platz einfügst.
Weil das Element 0 (null) ist immer da. (ausser bei leeren Arrays).

Struppi.