Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2012, 14:45   #1
t2skler
Форумчанин
 
Аватар для t2skler
 
Регистрация: 25.11.2010
Сообщений: 164
По умолчанию Обращение к элементу с заданным индексом через __property

Хочу сделать что-то подобное:
Код:
private:
	vector<TItem>FItems;

public:
	__property TItem Items[int Index] = {read = FItems[Index]};
Чтобы при обращении к элементу с номером Index можно было далее обращаться к его свойствами.

Пример:
Код:
string txt;
txt = Items[1].Text;
Возможно Я Быдлокодер ©.
t2skler вне форума Ответить с цитированием
Старый 13.03.2012, 14:55   #2
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

Цитата:
__property TItem Items[int Index] = {read = FItems[Index]};
Ну лучше, наверное, будет
TItem __fastcall GetItem(int Index)
{
return FItems.at(Index);
}
__property TItem Items[int Index] = {read = GetItem};
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Старый 13.03.2012, 15:13   #3
t2skler
Форумчанин
 
Аватар для t2skler
 
Регистрация: 25.11.2010
Сообщений: 164
По умолчанию

Цитата:
Сообщение от Krok27 Посмотреть сообщение
Ну лучше, наверное, будет
TItem __fastcall GetItem(int Index)
{
return FItems.at(Index);
}
__property TItem Items[int Index] = {read = GetItem};
[BCC32 Error] items.hpp(214): E2034 Cannot convert 'TItem &' to 'int'
Возможно Я Быдлокодер ©.
t2skler вне форума Ответить с цитированием
Старый 13.03.2012, 15:28   #4
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

Ето в какой строчке то?
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Старый 13.03.2012, 15:42   #5
t2skler
Форумчанин
 
Аватар для t2skler
 
Регистрация: 25.11.2010
Сообщений: 164
По умолчанию

Цитата:
Сообщение от Krok27 Посмотреть сообщение
Ето в какой строчке то?
return FItems.at(Index);
Возможно Я Быдлокодер ©.
t2skler вне форума Ответить с цитированием
Старый 13.03.2012, 15:56   #6
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

int __fastcall GetItem(int Index) у тебя
а надо
TItem __fastcall GetItem(int Index)
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Старый 13.03.2012, 16:47   #7
t2skler
Форумчанин
 
Аватар для t2skler
 
Регистрация: 25.11.2010
Сообщений: 164
По умолчанию

Цитата:
Сообщение от Krok27 Посмотреть сообщение
int __fastcall GetItem(int Index) у тебя
а надо
TItem __fastcall GetItem(int Index)
Спасибо, работает. Ради любопытства буду ждать и других ответов по данному вопросу
Возможно Я Быдлокодер ©.
t2skler вне форума Ответить с цитированием
Старый 13.03.2012, 16:50   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а я бы ссылку возвращал, чтоб изменять можно было объект, и не копировать его.(тут просто два знака & добавить надо)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.03.2012, 16:56   #9
Krok27
Форумчанин
 
Аватар для Krok27
 
Регистрация: 08.07.2010
Сообщений: 505
По умолчанию

__property System::UnicodeString Strings[int Index] = {read=Get, write=Put/*, default*/}; выдержка из исходников TStrings.
В последнее время че то такая тема пошла, возвращать объект, хотя по ссылке и быстрее и правильнее.
Знающий не говорит, говорящий не знает (С) Лао Цзы
Krok27 вне форума Ответить с цитированием
Старый 13.03.2012, 17:16   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

у них строки иначе реализованы, там хитрый механизм помоему.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обращение к элементу строки Form_13 Паскаль, Turbo Pascal, PascalABC.NET 2 13.10.2011 13:19
Обращение к предыдущему/следующему элементу массива feras Общие вопросы Delphi 1 08.06.2011 21:29
Обращение к элементу на странице AlkaloiD Работа с сетью в Delphi 0 26.11.2010 22:19
обращение к элементу таблицы в WebBrowser nikola86 Общие вопросы Delphi 13 14.11.2009 00:55
STL обращение к элементу list sht0p0r Общие вопросы C/C++ 1 05.07.2009 21:22