Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2014, 23:15   #1
Dima170792
Пользователь
 
Аватар для Dima170792
 
Регистрация: 04.04.2011
Сообщений: 76
Вопрос Ошибка List index out of bounds (8)

Здравствуйте уважаемые форумчане.
Подскажите где я неправ-

при использовании кода вылетает Ошибка List index out of bounds (8) (ну соответственно цифра меняется каждый раз )

Код:
var
i:integer;
begin
i:=strtoint(DBText2.Caption); //определяю номер необходимой мне колонки
 sLabel2.Caption :=DBGrid8.DataSource.DataSet.Fields.Fields[i].Value; //получаю значение ячейки
end;
заранее благодаствую.

Последний раз редактировалось Stilet; 28.11.2014 в 07:58.
Dima170792 вне форума Ответить с цитированием
Старый 27.11.2014, 23:17   #2
WinCoder
Заблокирован
 
Регистрация: 24.11.2014
Сообщений: 721
По умолчанию

Ячейка (n) не существует.
WinCoder вне форума Ответить с цитированием
Старый 27.11.2014, 23:23   #3
Dima170792
Пользователь
 
Аватар для Dima170792
 
Регистрация: 04.04.2011
Сообщений: 76
По умолчанию

Цитата:
Сообщение от WinCoder Посмотреть сообщение
Ячейка (n) не существует.
в таблице 20 строк (ячеек) - тобиш код выходит за границы ячеек? как с етим бороться?
Dima170792 вне форума Ответить с цитированием
Старый 27.11.2014, 23:25   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
как с етим бороться?
Правильно номер задавать. Учесть, что нумерация с нуля начинается
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 27.11.2014, 23:28   #5
Dima170792
Пользователь
 
Аватар для Dima170792
 
Регистрация: 04.04.2011
Сообщений: 76
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Правильно номер задавать. Учесть, что нумерация с нуля начинается
штука в чем :
так прекрасно работает
Цитата:
var
i:integer;
begin
i:=DBGrid8.SelectedIndex;
sLabel2.Caption :=DBGrid8.DataSource.DataSet.Fields .Fields[i].Value;
end;
а если я вручную присваиваю значение i -то не выходит.
Dima170792 вне форума Ответить с цитированием
Старый 27.11.2014, 23:34   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Я же не виноват Проверял, что в том DBText2.Caption?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 27.11.2014, 23:48   #7
Dima170792
Пользователь
 
Аватар для Dima170792
 
Регистрация: 04.04.2011
Сообщений: 76
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Я же не виноват Проверял, что в том DBText2.Caption?
ага- там caption принимает значение от 1 до 20 - тоесть вполне допустимые пределы
Dima170792 вне форума Ответить с цитированием
Старый 28.11.2014, 07:52   #8
Iron Monk
Форумчанин
 
Аватар для Iron Monk
 
Регистрация: 05.10.2007
Сообщений: 478
По умолчанию

Цитата:
Сообщение от Dima170792 Посмотреть сообщение
Код:
sLabel2.Caption :=DBGrid8.DataSource.DataSet.Fields .Fields[i].Value;
Фигасе...
А так не?
Код:
sLabel2.Caption :=DBGrid8.Fields[i].asString;
Проверь количество полей -
Код:
ShowMessage(IntToStr(DBGrid8.FieldCount));
По твоим условиям, должно быть 20...

Последний раз редактировалось Iron Monk; 28.11.2014 в 08:08.
Iron Monk вне форума Ответить с цитированием
Старый 28.11.2014, 09:05   #9
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
ага- там caption принимает значение от 1 до 20 -
Цитата:
По твоим условиям, должно быть 20...
как минимум 21
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 28.11.2014, 09:11   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
в таблице 20 строк (ячеек)
Значит индекс должен быть от 0 до 19. Выше же писал - учесть, что нумерация с нуля начинается
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка List Index of bounds(0) Ericnex Общие вопросы Delphi 5 28.10.2012 21:39
ошибка List index out of bounds (0) Natalie023 Помощь студентам 9 17.12.2011 19:27
Ошибка List Index out of bounds Rapala Помощь студентам 1 03.05.2010 17:33
Ошибка List index of bounds(1) Blue Heron Помощь студентам 5 17.03.2010 00:38
ошибка:List index out of bounds tanek Помощь студентам 7 26.12.2009 20:38