![]() |
|
![]() ![]() ![]() |
|
np9mi7 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 553 Регистрация: 17.8.2003 Где: Volgograd, Russia Репутация: 1 Всего: 10 |
Добрый день.
У меня есть ассоцианивный контейнер с объектами некоторого типа. У этих объектов есть уникальное свойство (оно типа - std::string, обычное строковое представление). Эти объекты показываются пользователю через TListView (причем сами они находяться в контейнере). Задача: зная выбранный элемент в TListView получить объект из контейнера. Я думал как это сделать, все сводиться к одному: необходимо хранить уникальное представление объекта рядом для каждой записи TListView. Только где? Может есть некоторое свойство специально для этого? Заранее благодарен за ответы. |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
есть: TListItem::Data
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
np9mi7 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 553 Регистрация: 17.8.2003 Где: Volgograd, Russia Репутация: 1 Всего: 10 |
Спасибо! Но: он void* т.о. необходимо самому управлять ресурсом, чего не хочется, а нельзя никак туда AnsiString засунуть, да так чтоб его никто не увидел?
Можно также использовать Tag, он тоже подрузамевает указатель, не хочеться указателей... |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
ну вопервых Tag' a у него нет...
а во вторых ресурсами управлять всеравно тебе придется -- для экономии памяти никто не будет держать копию объекта + засунь туда указатель на строку, приведенный к void*а забирая назад приводи к указателю на строку ++ где-то эти данные у тебя храняться? какая-то адресация есть. вот и засовывай этот _адрес_ -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
np9mi7 |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 553 Регистрация: 17.8.2003 Где: Volgograd, Russia Репутация: 1 Всего: 10 |
Я придумал как хранить строку, чтоб её никто не видел:
Теперь задача её оттуда взять. У ListItem есть свойство Text, но оно возвращает из Item - а строку с символами разделителей итд... Короче: как взять последний из SubItems - ов, без саморучного разбора строки? |
||||||||
|
|||||||||
_hunter |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
никто и не заставляет управлять ими в TListView' e... я же говорю -- епредавай туда _адрес_ из своего специального объекта.
это: AnsiString str = listItem->SubItems[listItem->SubItems->Count - 1]; что ли? Это сообщение отредактировал(а) _hunter - 7.7.2005, 19:39 -------------------- Tempora mutantur, et nos mutamur in illis... |
||||
|
|||||
np9mi7 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 553 Регистрация: 17.8.2003 Где: Volgograd, Russia Репутация: 1 Всего: 10 |
Только так:
_hunter, спасибо! ![]() |
|||
|
||||
Vyacheslav |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2124 Регистрация: 25.3.2002 Где: Москва Репутация: 47 Всего: 59 |
Есть более правильный способ специально предназначенный для использования данных, лежащих во внешних контейнерах.Это виртуальный список. Смотри хелп по
__property bool OwnerData = {read=FOwnerData, write=SetOwnerData, default=0}; __property TLVOwnerDataEvent OnData = {read=FOnData, write=FOnData}; __property TLVOwnerDataFindEvent OnDataFind = {read=FOnDataFind, write=FOnDataFind}; __property TLVOwnerDataStateChangeEvent OnDataStateChange = {read=FOnDataStateChange, write=FOnDataStateChange}; -------------------- С уважением, Вячеслав Ермолаев |
|||
|
||||
_hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 24 Всего: 98 |
всегда пожалуйста...
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
np9mi7 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 553 Регистрация: 17.8.2003 Где: Volgograd, Russia Репутация: 1 Всего: 10 |
Vyacheslav, отдельное спасибо
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |