|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
11.01.2012, 17:49 | #1 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Список указателей(TList). Как 100%-о вернуть не nil, указатель.
Доброго времени суток!
Практикую написание классов на основе TList. Как правильно вернуть ссылку на объект по его номеру? Код:
|
11.01.2012, 18:03 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
ну, имхо, если передать aIndex больше (или равный), чем TSmth.Count - то и получите nil (это при условии, что вы в TList nil не добавляете )
p.s. а можно небольшой тестовый примерчик (исходники в архиве, разумеется), демонстриструющий проблему?! |
11.01.2012, 18:14 | #3 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Я сам пытаюсь выловить. Но юзеры то в целевой программе ловят баг.
Пока спасся вызовом в try except, но проблемы это не решает. А вообще к TList привязан список элементов TListView и обращение к эл-у списка идёт через текущий индекс эл-а в ListView, я думаю в этом и проблема. Вопрос: Как синхронизировать список и TListView? |
11.01.2012, 18:18 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Использовать ListItem.Data для хранения индекса в TList
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
11.01.2012, 18:49 | #5 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Аватар, вариант, однако Data уже занято. Альтернативы?
Последний раз редактировалось Человек_Борща; 11.01.2012 в 19:15. |
11.01.2012, 19:22 | #6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Добавить неотображаемую колонку для того же
ADD Только сейчас заметил, что не то написал. Естественно субитем, а не колонку
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 11.01.2012 в 21:46. |
11.01.2012, 22:33 | #7 |
Форумчанин
Регистрация: 16.12.2009
Сообщений: 902
|
Еще такой вариант, может устроит, мне лично это помогает инфу нужную искать по метке допустим в массиве который сохраняется в TList и выводить ее в тот же ListView
Примерно так: Код:
Если не nil то выводим результат. Последний раз редактировалось Aliens_wolfs; 11.01.2012 в 23:27. |
11.01.2012, 22:53 | #8 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Что-то я вопроса не понял.
Если у тебя Items некого X-а возвращает nil, то это значит, что кто-то в список добавил nil. Или не добавил, но изменил существующий элемент присвоением nil. Ну или рандомная порча памяти - это, конечно, всего вариант Не понятны разговоры про индекс. Вхождение индекс в диапазон проверяет сам Items. Если подсунуть ему индекс несуществующего элемента - он возбудит ERangeError.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
11.01.2012, 22:54 | #9 | |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Цитата:
Код:
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
|
11.01.2012, 22:56 | #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 |