Das geht, aber du musst das etwas anders machen, wenn du die Komponente für beide Frameworks registrieren möchtest:
Delphi-Quellcode:
{$define UseInterface}
TCheckListBoxExtendedVCL = class(TCheckListBox)
{$define UseVCL}
{$i 'CheckListBox.pas'}
end;
TCheckListBoxExtendedFMX = class(TListBox)
{$define UseFMX}
{$i 'CheckListBox.pas'}
end;
implementation
{$undef UseInterface}
{$define UseImplementation}
{$define UseVCL}
{$i 'CheckListBox.pas'}
{$define UseFMX}
{$i 'CheckListBox.pas'}
Auf diese Weise wird der Quelltext doppelt eingebunden, sowohl unter interface als auch unter implementation. Mit UseVCL und UseFMX bzw. UseInterface und UseImplementation musst du in der eingebundenen
Unit dann unterscheiden...
Ob sich eine solche Vorgehensweise hier lohnt und sinnvoll ist, kann ich nicht beurteilen. Ich persönlich habe für FMX und
VCL lieber getrennte Units, die nur die Logik soweit wie möglich in gemeinsamen Units teilen.