Вверх ↑
Ответов: 1925
Рейтинг: 172
#1: 2015-04-13 22:52:14 ЛС | профиль | цитата
Началось всё с того, что решил нумеровать вновь добавленные строки:

code_35491.txt

Как видите, нумерация сразу начинается с двойки, а не с 1. Почему в Math прибавляется 2, а не 1? Потому, что единицу мы добавляем из-за того, что нужен индекс следующей строки, а вторую единицу добавляем потому, что индексация начинается с 0, а нужно отображать строки с единицы.

А проблема вся в коде:

code_35492.txt

Почему, если Control.Count=0, то устанавливаем dtNull Нужно, как и в остальных случаях, Control.Count - 1! Тогда у пустой таблицы индекс последней строки будет -1, что вполне логично (это и будет означать, что строк там нет). А то, что при приведении к integer и пустая таблица, и таблица с единственной строкой выдают индекс последней строки 0 - это точно неправильно!

Да, мне пришлось использовать св-во Count, но, думаю, компонент следует исправить. Вопрос только в том, можно ли это сделать без потери совместимости? Что скажут знатоки и те, кто имеет доступ к SVN?
------------ Дoбавленo в 22.52:
P.S. Ведь в StrList на onGetIndex возвращается именно -1, если искомая строка отсутствует, а не какие-то нулевые (пустые) данные!
карма: 9
0
файлы: 2code_35491.txt [415B] [450], code_35492.txt [144B] [281]