|
|
|||||||||||
Связывание элементов ListView c TObject01.08.2012, 13:40. Показов 2469. Ответов 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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|