|
|
|||||||||||
Связывание элементов ListView c TObject01.08.2012, 13:40. Показов 2451. Ответов 12
Метки нет (Все метки)
Не могу понять как получить доступ к объекту связаному с ним TListItem
В ListBox это можно было сделать через ListBox1->Items->Objects[index] Связываю так
Update()- метод TLink получающий иконку файла ; FindFiles() - получает список файлов;
0
|
|||||||||||
| 01.08.2012, 13:40 | |
|
Ответы с готовыми решениями:
12
Cannot convert 'void (_fastcall * (_closure )(TObject *,char &))(TObject *,char &)' to 'TKeyPressEvent' Связывание ArrayList и ListView При связывание listview с разными объектами использовать разные шаблоны |
|
Супер-модератор
|
|||||||
| 02.08.2012, 09:38 | |||||||
2
|
|||||||
|
|
||||||
| 02.08.2012, 10:59 [ТС] | ||||||
|
Спасибо, т
только настораживает reinterpret_cast<> почему там void* вместо TObject* ??? Добавлено через 23 минуты Остальная часть кода
0
|
||||||
|
Супер-модератор
|
|
| 02.08.2012, 11:23 | |
|
Настораживает reinterpret_cast - используй static_cast (при преобразовании из void* этого достаточно).
А насчет типа - вопрос надо задавать не "почему Data имеет тип void*, а не TObject*?", а "почему AddItem вторым параметром принимает TObject*, а не void*?", мне же может понадобиться записать туда не потомка TObject, тогда что, и при создании айтема reinterpret_cast использовать?
1
|
|
|
|
||
| 02.08.2012, 12:00 [ТС] | ||
|
Что то не понял...
Во первых игры с reinterpret_cast<> и void* кажутся потенциально опасными. Во вторых зачем тогда TObject и вся иерархия классов если к ней не привязываться... Добавлено через 4 минуты
Добавлено через 16 минут http://docs.embarcadero.com/pr... jects.html
0
|
||
|
|
||
| 02.08.2012, 16:33 | ||
|
И отвечая на риторический вопрос по иерархии - сам факт существования vcl не является достаточным условием наследовать от ее типов всегда, иногда это не нужно.
0
|
||
|
|
|||||||
| 02.08.2012, 16:37 [ТС] | |||||||
См. пример из справки с ComboBox Добавлено через 1 минуту
0
|
|||||||
|
Супер-модератор
|
||
| 02.08.2012, 17:02 | ||
|
А вот у ListView/TreeView ситуация другая. Ни айтем первого (TListItem), ни айтем второго (TTreeNode) списком строк не является, поэтому Objects там нет. А чтобы все-таки иметь возможность ассоциировать данные (данные, не объекты) введено свойство Data. Но вот прототип AddItem сводит всё на нет: несмотря на то, что я и в Дельфи (не наследуясь от TObject, используя расширенные записи) и в Билдере могу создать объект, не имеющий ничего общего с TObject, метод AddItem заставляет меня делать тайпкаст к TObject. Было бы описано как положено - на фиг бы тут reinterpret_cast не сдался, а при обратном приведении (от void* к исходному типу) он тем более не нужен.
1
|
||
|
Супер-модератор
|
||||||
| 02.08.2012, 23:34 | ||||||
|
Имеется в виду то, что если делать класс в Дельфи - то это по любому наследник TObject (даже без указания предка - подразумевается, что предок TObject). А если сделать расширенную запись:
0
|
||||||
|
|
|
| 03.08.2012, 15:32 | |
|
Avazart, всем, я думаю, и так понятно, зачем это может быть нужным. Вопрос поставлен иначе - почему это подразумевается в обязательном порядке, если в самом языке присутствуют возможности использования данных указателей по иному назначению.
Прошу воспринимать это как уточнение - не выпад.
0
|
|
|
|
|
| 03.08.2012, 16:45 [ТС] | |
|
Ну я не особо в этом...Поэтому я не могу сказать точно почему и как... хотелось бы разобраться...
Но как я понял почему то перед void* предпочитают использовать базовый класс как мне показалось... Возможно это как то связано с тем что компилятор о TObject* знает хоть что-то ( а возможно необходимое ), а void* совсем ничего и это что то дает какую то безопастность при касте - но это только моё предположение...
0
|
|
| 03.08.2012, 16:45 | |
|
Помогаю со студенческими работами здесь
13
Связывание элементов Swing
ListView, удаление элементов. Неверно считается количество элементов после удаления TObject Наследник от TObject Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes.
А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения
развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|