Цитата:
Сообщение от Aristarh Dark
Я логики работы понять не могу:
1. Получили индекс выделенной строки в визуальном объекте.
2. Удалили предыдущую строку в визуальном обхекте (если выделена первая строка - весело упали)
3. Некий невизуальный объект (скорее всего динамический массив записей) инициализируется по индексу визуального из п.1. Если длина массива (если это конечно массив, а все говорит об этом) меньше чем i+1 то опять же весело упали.
4. Устанавливаем длину массива на 1 меньшую чем полученный в п.1 индекс. Это вообще не понятно зачем, предыдущая инициализация (п.3) тогда вообще теряет смысл, ибо элемент этот остаётся "за бортом" причем не просто "за бортом", а уверенно так, ибо его индекс после операции по изменению длины стал бы Hihg(ItemList)+2.
Короче код очень труден для понимания.
|
ну ты мне сказал что Скорее всего у тебя i за пределами длины ItemList
а на счет пункта 4 то я его взял на примере кода
Код:
i := Length(ItemList);
//Узнаем сколько осталось строк в массиве
SetLength(ItemList, i + 1);
//создается новая строка в массиве
Если этот код создает строку то мне надо на оборот удалить строку
Код:
i := Length(ItemList);
//Узнаем сколько осталось строк в массиве
SetLength(ItemList, i - 1);
//создается новая строка в массиве