У меня есть TComponent
, который управляет некоторым пользовательским интерфейсом. Этот компонент предназначен для поддержки как VCL, так и Firemonkey с использованием условных обозначений. Такие условия инструктируют мой компонент, принимать ли VCL-контроль или FMX-контроль. В настоящее время ожидается, что это условие определено на уровне приложения, чтобы проинструктировать компонент во время выполнения, управлять ли это VCL или FMX-управлением.
Я хотел бы опубликовать свой компонент в среде IDE с поддержкой как VCL, так и FMX, используя один и тот же блок с условными обозначениями. Однако, в зависимости от того, используется ли VCL или FMX, имена/типы свойств различаются.
Например...
type
TMyComponent = class(TComponent)
published
{$IFDEF USE_FMX}
property TabControl: TTabControl read FTabControl write SetTabControl;
{$ENDIF}
{$IFDEF USE_VCL}
property PageControl: TPageControl read FPageControl write SetPageControl;
{$ENDIF}
end;
Моя цель - убрать этот невизуальный компонент в форму VCL или FMX и автоматически показывать соответствующие свойства конкретной инфраструктуры в инспекторе объектов.
Как мне перейти на регистрацию этого компонента, который разделяет код VCL и FMX с помощью условных выражений?