Krok27 Опубликовано 11 декабря, 2020 Поделиться Опубликовано 11 декабря, 2020 (изменено) Добрый день. Как вызвать редактор свойства TAlphaColor? Чтобы это выглядело не как беззнаковое целое, а с палитрой цветов, как например, свойство Color в TBrush. Спасибо. __property TAlphaColor ColorOPC1 = {read=FColorOPC1, write =FColorOPC1}; Вот аналогичный вопрос https://fire-monkey.ru/topic/6879-fmx-c-component/#comment-40037 Изменено 11 декабря, 2020 пользователем Krok27 запятая Цитата Ссылка на комментарий
0 slav_z Опубликовано 11 декабря, 2020 Поделиться Опубликовано 11 декабря, 2020 Цитата Ссылка на комментарий
0 Krok27 Опубликовано 11 декабря, 2020 Автор Поделиться Опубликовано 11 декабря, 2020 (изменено) Без танцев с бубном я скорее всего не зарегистрирую TAlphaColorProperty. PTypeInfo TypeInfo; PPropInfo PropInfo = GetPropInfo(__typeinfo(TRectangle), "Fill.Color"); if (PropInfo) TypeInfo = *(PropInfo->PropType); RegisterPropertyEditor(TypeInfo, __classid(TAnalogViewFMX), "ColorOPC", __classid(TAlphaColorProperty)); Он описан dclfmxstd.bpi (FmxAnimationEditors.pas). Изменено 11 декабря, 2020 пользователем Krok27 Цитата Ссылка на комментарий
0 slav_z Опубликовано 11 декабря, 2020 Поделиться Опубликовано 11 декабря, 2020 вы как свой компонент регистрировали? там же и редактор для своего свойства укажите... (я delphi программист.. но думаю у вас все так же должно быть..) Цитата Ссылка на комментарий
0 Krok27 Опубликовано 11 декабря, 2020 Автор Поделиться Опубликовано 11 декабря, 2020 (изменено) Согласно указаниям справки. PTypeInfo TypeInfo; PPropInfo PropInfo = GetPropInfo(__typeinfo(TRectangle), "Fill.Color"); if (PropInfo) TypeInfo = *(PropInfo->PropType); TComponentClass classes[1] = {__classid(TAnalogViewFMX)}; RegisterComponents("FmxOPC", classes, 0); RegisterPropertyEditor(TypeInfo,__classid(TAnalogViewFMX), "ColorOPC", __classid(TAlphaColorProperty)); Что бы компилятр С++ видел Delphi нужно дабвить добвить в опции компилятора Delphi http://docwiki.embarcadero.com/Libraries/Sydney/en/DesignIntf Короче все это пока не работает. __classid(TAlphaColorProperty) не обнаруживает. [bcc32 Error] AnalogViewFMX.cpp(382): E2303 Type name expected Full parser context AnalogViewFMX.cpp(370): namespace Analogviewfmx AnalogViewFMX.cpp(372): parsing: void _fastcall Register() Пришлось прилепить костыль. Объявить свойство TColor (для этого типа регистрировать ничего не надо, редактор похуже, но работать можно), внутреннее поле TAlphaColor, написал ф-цию TAlphaColor __fastcall ColorToAlphaColor(const TColor aValue) { TColorRec CRec; TAlphaColorRec ARec; CRec.Color = aValue; ARec.A = 0xFF; ARec.B = CRec.B; ARec.G = CRec.G; ARec.R = CRec.R; return ARec.Color; } extern DELPHI_PACKAGE System::Uitypes::TColor __fastcall AlphaColorToColor(const System::Uitypes::TAlphaColor Color); можно взять в модуле System.UITypes. slav_z, спасибо за участие. Изменено 11 декабря, 2020 пользователем Krok27 Цитата Ссылка на комментарий
Вопрос
Krok27
Добрый день. Как вызвать редактор свойства TAlphaColor?
Чтобы это выглядело не как беззнаковое целое, а с палитрой цветов, как например, свойство Color в TBrush.
Спасибо.
__property TAlphaColor ColorOPC1 = {read=FColorOPC1, write =FColorOPC1};
Вот аналогичный вопрос
https://fire-monkey.ru/topic/6879-fmx-c-component/#comment-40037
запятая
Ссылка на комментарий
4 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.