Mam TComponent
, który kontroluje niektóre interfejsy. Ten komponent został zaprojektowany do obsługi zarówno VCL, jak i Firemonkey za pomocą warunkowych. Takie czynniki warunkujące instruują mój komponent, czy akceptować kontrolę VCL czy kontrolę FMX. Obecnie oczekuje się, że to warunkowe jest zdefiniowane na poziomie aplikacji, aby instruować komponent w czasie wykonywania, czy ma on zarządzać kontrolką VCL czy FMX.Jak sprawić, by pojedynczy komponent obsługiwał zarówno VCL, jak i FMX?
Chciałbym opublikować mój składnik do IDE z obsługą zarówno VCL i FMX, dzieląc tę samą jednostkę z warunkami. Jednak w zależności od tego, czy VCL lub FMX są aktualnie używane, nazwy/typy właściwości różnią się.
Na przykład ...
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;
Moim celem jest, aby móc upuścić tego komponentu non-wizualny na albo VCL lub formy FMX i automatycznie wyświetlać odpowiednie właściwości specyficzne ramowe w Inspektorze obiektów .
Jak mam rejestrować ten komponent, który współużytkuje zarówno kod VCL, jak i FMX za pośrednictwem warunków warunkowych?
Chciałbym użyć dwóch składników odziedziczonych po klasie bazowej zawierającej cały kod, który można udostępnić. –
@SirRufo To świetny projekt, dziękuję. –
Możesz podzielić się jeszcze większym kodem, jeśli wewnętrznie zawijasz formanty. –