Поиск:

Ответ в темуСоздание новой темы Создание опроса
> указатель на __property, Определить необходимый property 
:(
    Опции темы
dix75
Дата 14.5.2009, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 462
Регистрация: 17.7.2007

Репутация: нет
Всего: 1



Добрый вечер!

У меня несколько странный вопрос.
Можно получить указатель на __property?
или вообще квалифицировать(определить) квкое проперти вызывается.

Сразу скажу, что нужно для шаблона.


--------------------
save your mind
PM MAIL   Вверх
dumb
Дата 15.5.2009, 03:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 32
Всего: 158



Цитата(dix75 @  14.5.2009,  23:44 Найти цитируемый пост)
Можно получить указатель на __property?
property - это средство компилятора, а не объект в памяти. что именно, по-твоему, должен адресовать указатель?

Цитата(dix75 @  14.5.2009,  23:44 Найти цитируемый пост)
или вообще квалифицировать(определить) квкое проперти вызывается.
смысл этой части вопроса от меня ускользнул.
PM MAIL   Вверх
dix75
Дата 15.5.2009, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 462
Регистрация: 17.7.2007

Репутация: нет
Всего: 1



dumb

например мне необходимо узнать какое проперти использовал пользователь


--------------------
save your mind
PM MAIL   Вверх
Klin
Дата 15.5.2009, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: 20
Всего: 25



Цитата(dix75 @  15.5.2009,  00:44 Найти цитируемый пост)
У меня несколько странный вопрос.

За самокритику 5+.

Цитата(dix75 @  15.5.2009,  14:16 Найти цитируемый пост)
например мне необходимо узнать какое проперти использовал пользователь


dix75, до того, как ты объяснил, мне было понятней... но, похоже, что нужно тебе копать в сторону перехвата событий. Выразись точнее.


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
A5uKa
Дата 15.5.2009, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


TЋ♥s F1rȜ iƧ BurȠiƞg
***


Профиль
Группа: Awaiting Authorisation
Сообщений: 1928
Регистрация: 30.8.2008

Репутация: 2
Всего: 16



Цитата

какое проперти использовал пользователь 

ВСЕ smile

вот хороший пример

Код

class CValue
{
private:
    int m_value;
public:
    __declspec(property(get=get_Value, put=put_Value)) int Value;
    int get_Value()
    {
        return m_value;     // Или более сложная логика
    }
    void put_Value(int value)
    {
        m_value = value;     // Или более сложная логика
    }
};


и потом...

Код

CValue val;
val.Value = 50;        // На самом деле вызов put_Value()
int z = val.Value;    // На самом деле вызов get_Value()


PM   Вверх
dix75
Дата 15.5.2009, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 462
Регистрация: 17.7.2007

Репутация: нет
Всего: 1



Klin

Ситуация в следующем некий борландский класс имеет только открытые проперти, а соответственно остальные обрабатывающие функции или члены(данные-члены) закрыты.

Если бы это было не так , тогда просто я бы использовал указатель на функцию или член.

Но с проперти так нельзя.


--------------------
save your mind
PM MAIL   Вверх
Klin
Дата 15.5.2009, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: 20
Всего: 25



dix75, я так и подумал, что вы именно это имеете ввиду, поэтому и сказал насчет событий. Но я хотел узнать, изменение каких именно свойств, вы отлавливаете. Ибо для многих лучше использовать перехват (если в этом есть необходимость).

К примеру:

Код

    MESSAGE void __fastcall XENABLEDCHANGED (Messages::TMessage &msg);
...
    BEGIN_MESSAGE_MAP
        VCL_MESSAGE_HANDLER (CM_ENABLEDCHANGED, TMessage, XENABLEDCHANGED);
    END_MESSAGE_MAP (TControl)



--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
dix75
Дата 15.5.2009, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 462
Регистрация: 17.7.2007

Репутация: нет
Всего: 1



A5uKa

Спасибо конечно, но это обычное пользование проперти.

а мне необходимо узнать какое пользователь использовал проперти.

вот класс Classes::TCollectionItem  имеет следующие проперти

Код

    __property Classes::TAlignment Alignment = {read=FAlignment, write=SetAlignment, default=0};
    __property bool AutoSize = {read=FAutoSize, write=SetAutoSize, default=0};
    __property AnsiString Caption = {read=FCaption, write=SetCaption};
    __property Imglist::TImageIndex ImageIndex = {read=FImageIndex, write=SetImageIndex, default=-1};
    __property TWidth MaxWidth = {read=FMaxWidth, write=SetMaxWidth, default=0};
    __property TWidth MinWidth = {read=FMinWidth, write=SetMinWidth, default=0};
    __property int Tag = {read=FTag, write=FTag, default=0};
    __property TWidth Width = {read=GetWidth, write=SetWidth, stored=IsWidthStored, default=50};


вот я хочу узнать вызывалось ли проперти MaxWidth или Caption

Добавлено через 3 минуты и 17 секунд
Klin

нет надо было мне сначала 

я пишу шаблонный класс типа mem_fun_ref

там используется указатель, но использовать указатель нельзя для проперти

Добавлено через 5 минут и 41 секунду
Klin

не думаю что на caption идет какое-либо событие

скорее всего препроцессор тупо проганяет код и в нужные места вставляет фуннкции или члены проперти.


--------------------
save your mind
PM MAIL   Вверх
Klin
Дата 16.5.2009, 00:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: 20
Всего: 25



Цитата(dix75 @  15.5.2009,  21:15 Найти цитируемый пост)
скорее всего препроцессор тупо проганяет код и в нужные места вставляет фуннкции или члены проперти.

Хм... задача безумная, но интересная. 

Цитата(dix75 @  15.5.2009,  21:15 Найти цитируемый пост)
не думаю что на caption идет какое-либо событие


И да и нет. Нужно посмотреть как ComponentState на это дело смотрит.

Добавлено через 6 минут и 50 секунд
ps. через события можно следующие изменения проследить:

Код

CM_FOCUSCHANGED
CM_PARENTFONTCHANGED
CM_PARENTCOLORCHANGED
CM_VISIBLECHANGED
CM_ENABLEDCHANGED
CM_COLORCHANGED
CM_FONTCHANGED
CM_CURSORCHANGED
CM_CTL3DCHANGED
CM_PARENTCTL3DCHANGED
CM_TEXTCHANGED
CM_MENUCHANGED
CM_SHOWINGCHANGED
CM_ICONCHANGED
CM_SHOWHINTCHANGED
CM_PARENTSHOWHINTCHANGED
CM_SYSCOLORCHANGE
CM_WININICHANGE
CM_FONTCHANGE
CM_TIMECHANGE
CM_TABSTOPCHANGED
CM_DIALOGHANDLE
CM_SYSFONTCHANGED
CM_CONTROLCHANGE
CM_CHANGED
CM_BORDERCHANGED
CM_BIDIMODECHANGED
CM_PARENTBIDIMODECHANGED



--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.1085 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.