|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.04.2011, 05:56 | #1 |
Пользователь
Регистрация: 03.01.2009
Сообщений: 22
|
Дочерний класс от TListItem
Приветствую.
В общем, возникла такая ситуация - сделал дочерний класс TRListView от TListView: Код:
Код:
Код:
[DCC Error] uCore.pas(732): E2010 Incompatible types: 'TRListItem' and 'TListItem' Помогите кто чем сможет |
16.04.2011, 09:26 | #2 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,885
|
1 напиши
Код:
Код:
Код:
Код:
|
16.04.2011, 10:19 | #3 |
Пользователь
Регистрация: 03.01.2009
Сообщений: 22
|
Сразу скажу: я специализируюсь не на дельфях, пишу иногда для разнообразия на них, поэтому не слишком в этой среде силён
Насчёт первого - сделал: Код:
Насчёт второго - добавил: Код:
"items : trlistitems;" - вставил, а но при компиляции указывает на строку Код:
Код:
|
16.04.2011, 11:00 | #4 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,885
|
ну убери оверрайд и попробуй )) получается это не виртуальный метод и его оверрайдить нельзя, а это статический метод и его просто переопределять надоть
насчет кейс оф я не нашёл в справке к своей дельфи7 такой ошибка компилятора ((( могу в принципе на 2007 или 2009 поглядеть, но надо на др комп пересесть )) лениво, но по уму case это регистр буквы, попробуй не add a Add имплементейшн это секция для реализации метода, а function add(): TRListItem; это декларация/интерфейсная часть/раздел объявления т.е. тебе надо перейти в радел реализации этого метода и написать тот код в качестве функционала метода ну а вообще скинь проект, могу погрести чего там ) |
16.04.2011, 12:51 | #5 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
> сделал дочерний класс TRListView от TListView:
> TRListItem = Class(TListItem) так от чего дочерний класс вы сделали? SList - это стандарный TListView? Если да, то как он может вернуть объект, о котором никогда не слышал? Никакой "as TRListItem" тут не поможет, правильно оно говорит Invalid class typecast. Стандартный TListView не будет работать с вашим TRListItem, это не темплейты на С++. > Помогите кто чем сможет чтобы помочь, объясните сначала, что вы хотите сделать. Хранить дополнительный кусок данных вместе с каждым элементом списка? Для этого есть свойство Data у стандартного TListItem. Если 4 байта мало, храните там указатель. > ну а вообще скинь проект, могу погрести чего там ) phomm, лучше не стоит, судя по твоим сообщениям в этой теме )
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
16.04.2011, 13:16 | #6 | ||
Пользователь
Регистрация: 03.01.2009
Сообщений: 22
|
Цитата:
Цитата:
Код:
|
||
16.04.2011, 17:26 | #7 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
проще всего, имхо, хранить ваши данные в отдельном списке, типа TCollection. Ему можно передать вас класс, наследник от TCollectionItem, и в этом классе хранить то, что вам нужно.
Т.е. создаём наш класс элемента: Код:
Код:
Код:
Код:
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
Последний раз редактировалось veniside; 16.04.2011 в 17:28. |
16.04.2011, 18:22 | #8 |
Пользователь
Регистрация: 03.01.2009
Сообщений: 22
|
veniside, phomm, Спасибо) С этой задачкой справился
Но вот теперь возникла не менее спешная ситуация: у этого listview'а включил сортировку. Пробовал изменять разные параметры сортировки, но упорно при сортировке солбца изменяются и index'ы строк. Т.е. если кликнул по строке, произошло нужное действие, потом юзер отсортировал, вот потом и нельзя будет программно обратится к той же самой строке. Просто если их 10-20 - можно поиском по соответствию кэпшена строки, а у меня их несколько сотен и дальше - больше =( |
16.04.2011, 23:44 | #9 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,885
|
прошу указать на мои огрехи, поучусь, буду впредь разборчивее, возможно, дело в том что необходимо наследовать визуальный компонент, и поменять его предлагаемым образом проблематично? надо будет новый компонент регистрировать на базе Tlistview ?
EaRLL, по последней проблеме твоей - тебе метод finddata может полезен будет, а ещё может additem(Item: String; AObject: TObject) ? Последний раз редактировалось phomm; 17.04.2011 в 00:02. |
17.04.2011, 05:27 | #10 |
Пользователь
Регистрация: 03.01.2009
Сообщений: 22
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Описать класс-родитель и класс-потомок. Delphi 7 | Andrew_M | Помощь студентам | 0 | 15.01.2011 14:42 |
Класс | Chartvit | Visual C++ | 2 | 05.01.2011 22:20 |
ошибка при добавлении елемента TListItem в TListVew | lowercase | Общие вопросы Delphi | 2 | 15.11.2010 20:48 |
Дочерний процесс. Создание и "слежение" | SNUPY | Общие вопросы Delphi | 8 | 16.12.2009 13:17 |
Программа, выполняет дочерний процесс | IgorArhangel | Помощь студентам | 3 | 24.01.2009 23:12 |