Вверх ↑
Этот топик читают: Гость
Ответов: 1926
Рейтинг: 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] [494], code_35492.txt [144B] [308]
Разработчик
Ответов: 26151
Рейтинг: 2127
#2: 2015-04-14 00:54:42 ЛС | профиль | цитата
КМК, то надо поправить везде, где есть переменная EndIdx. Че-то я действительно стормозил на этом моменте.
------------ Дoбавленo в 00.54:
Но если учитывать возможную совместимость, то просто в схеме надо поставить if_Else на отлов значения Null. Тогда ничего не надо переделывать
карма: 22

0
Ответов: 655
Рейтинг: 18
#3: 2015-04-14 04:07:08 ЛС | профиль | цитата
надо поставить if_Else на отлов значения Null
я конечно не кодер, но мне кажется это велосипед..
Нужно править компонент и обновлять в SVN...

п.с. надо бы ревизию компонентов произвести на наличие багов и "особенностей"
карма: 0

1
Голосовали:3042
Ответов: 1926
Рейтинг: 172
#4: 2015-04-15 08:48:16 ЛС | профиль | цитата
Gunnman писал(а):
Нужно править компонент и обновлять в SVN...


А я согласен. Хоть даже с потерей совместимости. Хотя потеря будет небольшой, только при пустой таблице.
карма: 9
0
Разработчик
Ответов: 26151
Рейтинг: 2127
#5: 2015-04-18 14:36:59 ЛС | профиль | цитата
Ну и че, че засохли-то все
Правим или нет У меня все готово, только закоммитить осталось.
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#6: 2015-04-18 14:48:13 ЛС | профиль | цитата
nesco писал(а):
Правим или нет

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 8926
Рейтинг: 823
#7: 2015-04-18 16:03:21 ЛС | профиль | цитата
nesco писал(а):
..че засохли-то все..
Ну это же не БД, а индекс строки -- просто порядковый номер, правим и немедленно!
Если бы Каштанка умела говорить, она сказала бы: "Нет, так дальше жить нельзя, лучше застрелиться!"
карма: 19

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#8: 2015-04-18 16:07:36 ЛС | профиль | цитата
Все, закоммитил. Виноватым в перемоге назначаем 3042, так, на всякий случай, заранее
карма: 22

0
Ответов: 1926
Рейтинг: 172
#9: 2015-04-21 00:03:09 ЛС | профиль | цитата
Tack så mycket!
карма: 9
0
Разработчик
Ответов: 26151
Рейтинг: 2127
#10: 2015-04-21 04:14:32 ЛС | профиль | цитата
3042 писал(а):
Tack så mycket!

Ёшкин кот, а по-русски никак не получилось написать
карма: 22

0
Ответов: 1926
Рейтинг: 172
#11: 2015-04-21 05:55:15 ЛС | профиль | цитата
nesco писал(а):
а по-русски

nesco писал(а):
перемоге


------------ Дoбавленo в 05.55:
[offtop]А вообще, одно время увлекался шведским, вот и решил вспомнить.[/offtop]
карма: 9
0
Разработчик
Ответов: 26151
Рейтинг: 2127
#12: 2015-04-21 11:20:05 ЛС | профиль | цитата
[offtop]
3042, этимология слова перемога вполне себе русская

Победа и перемога одно и тоже.
Перемогать - перемочь кого, что, пересиливать, одолевать, оборать, побеждать, подчинить себе, овладеть. Теленок быка не переможет. Что не вмочь, того и не перемочь. Божья воля все перемогает. Боль перемогу, да встать не могу. Где черт (дьявол) не сможет, там баба переможет. -ся, страдат. или возвр. по смыслу речи. Иногда и сильный перемогается слабым. Переможется -забудется. В черный день перемогусь, а в красныйсопьюсь. Все болел, с месяц перемогался, насилу перемогся, терпел, старался одолеть боль, не поддавался. Без денег перемогусь, а без хлеба не перемогусь. Кой-как перемогаемся, перебиваемся, переколачиваемся, бьемся или изворачиваемся, из(об)могаемся. Роженица, до перемоги, остается в бане. Это беда переможная, можно вынести.
Слово перемога и перемогать очень часто использоуется в русском языке и обладает сильным воздействием на психику человека.

[/offtop]
карма: 22

0
12
Сообщение
...
Прикрепленные файлы
(файлы не залиты)