Я разрабатываю настраиваемый компонент, полученный из класса TCustomControl. Я хотел бы добавить новое свойство TFont, которое можно было бы отредактировать во время разработки, например, в компоненте TLabel. В основном я хочу добавить пользователю возможность изменять различные атрибуты шрифта (имя, размер, стиль, цвет и т. Д.), Не добавляя каждый из этих атрибутов в качестве отдельного свойства.C++ Builder XE - Как реализовать свойство TFont
Моя первая попытка:
class PACKAGE MyControl : public TCustomControl
{
...
__published:
__property TFont LegendFont = {read=GetLegendFont,write=SetLegendFont};
protected:
TFont __fastcall GetLegendFont();
void __fastcall SetLegendFont(TFont value);
...
}
Компилятор возвращает ошибки "Классы стилей E2459 Delphi должны быть построены с использованием оператора нового". Я также не знаю, должен ли я использовать тип данных TFont или TFont *. Мне кажется неэффективным создание нового экземпляра объекта каждый раз, когда пользователь меняет один атрибут. Я был бы признателен за образец кода, как это можно сделать.