Согласно указаниям справки.
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, спасибо за участие.