Hi,
ich arbeite momentan mit einer ListBox. Zu dieser habe ich eine Funktion geschrieben, die es mir erlaubt (erlauben sollte), Elemente zu löschen.
Im Hintergrund habe ich einen Array, der zum ListenIndex die Daten festhält.
Wird nun in der ListBox ein Element gelöscht, soll dieses ebenfalls (um später Probleme beim Speichern zu vermeiden) aus dem Array gelöscht werden.
Dazu verwende ich einen zweiten Array, der die Werte mit Auslassung des zu löschenden Elements aufnimmt.
-MyItems ist der Array, in dem die Daten gespeichert werden
-_object ist die ListBox
-_index ist der Index des ausgewählten Elements in der ListBox
Code:
var
_array: TArray2;
I1,I2,a: Integer;
begin
a := 0;
_array := MyItems;
for I1 := 0 to _object.Items.Count do
begin
if I1 <> _index then
begin
for I2 := 0 to 8 do
begin
_array[a, I2] := MyItems[I1, I2]; //Hier wird mir der Fehler angezeigt: Zugriffsverletzung bei Adresse ...
end;
a := a + 1;
end;
end;
MyItems := _array;
_object.Items.Delete(_index);
Result := _object;
An beschriebener Stelle bricht das Programm ab. Der Compiler zeigt so weit keine Fehler.
Wenn ihr Ideen habt, immer her damit.
Vielen Dank,
Jacob.