![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
Доброго времени суток!
Практикую написание классов на основе TList. Как правильно вернуть ссылку на объект по его номеру? Код:
![]() |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
ну, имхо, если передать aIndex больше (или равный), чем TSmth.Count - то и получите nil (это при условии, что вы в TList nil не добавляете
![]() p.s. а можно небольшой тестовый примерчик (исходники в архиве, разумеется), демонстриструющий проблему?! |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
Я сам пытаюсь выловить. Но юзеры то в целевой программе ловят баг.
Пока спасся вызовом в try except, но проблемы это не решает. А вообще к TList привязан список элементов TListView и обращение к эл-у списка идёт через текущий индекс эл-а в ListView, я думаю в этом и проблема. Вопрос: Как синхронизировать список и TListView? |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Использовать ListItem.Data для хранения индекса в TList
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
Аватар, вариант, однако Data уже занято. Альтернативы?
Последний раз редактировалось Человек_Борща; 11.01.2012 в 19:15. |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Добавить неотображаемую колонку для того же
ADD Только сейчас заметил, что не то написал. Естественно субитем, а не колонку
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 11.01.2012 в 21:46. |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 16.12.2009
Сообщений: 902
|
![]()
Еще такой вариант, может устроит, мне лично это помогает инфу нужную искать по метке допустим в массиве который сохраняется в TList и выводить ее в тот же ListView
Примерно так: Код:
Если не nil то выводим результат. Последний раз редактировалось Aliens_wolfs; 11.01.2012 в 23:27. |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
![]()
Что-то я вопроса не понял.
Если у тебя Items некого X-а возвращает nil, то это значит, что кто-то в список добавил nil. Или не добавил, но изменил существующий элемент присвоением nil. Ну или рандомная порча памяти - это, конечно, всего вариант ![]() Не понятны разговоры про индекс. Вхождение индекс в диапазон проверяет сам Items. Если подсунуть ему индекс несуществующего элемента - он возбудит ERangeError.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
![]() |
![]() |
![]() |
#9 | |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
![]() Цитата:
Код:
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
|
![]() |
![]() |
![]() |
#10 | |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
![]() Цитата:
Код:
Первое - введение своих полей методом Geo. Второе - хранение в поле Data указателя на запись из произвольных нужных тебе данных.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Указатель на массив указателей на массив char'ов... | SrgGld | Общие вопросы C/C++ | 0 | 19.11.2010 23:35 |
Передача списка указателей (TList) как параметр в dll | sneksnek2006 | Общие вопросы C/C++ | 1 | 28.10.2010 11:33 |
Указатель на массив указателей, и т.д. | Bernarditto | Общие вопросы C/C++ | 1 | 09.07.2010 12:26 |
Как вернуть избранное | Умелец | Свободное общение | 1 | 29.05.2007 13:03 |