Wie wäre es denn mit Interfaces?
Delphi-Quellcode:
type
type
ITextTag = interface
['{1EE16FB9-1BDD-4BDA-86DE-2A09C314E845}']
function GetText: string;
procedure SetText(const Value: string);
property Text: string read GetText write SetText;
end;
IImageTag = interface
['{99D31F17-7D69-47FA-98BE-F1F13CB02E39}']
function GetImage: TGraphic;
procedure SetImage(const Value: TGraphic);
property Image: TGraphic read GetImage write SetImage;
end;
IMetaDataTag = interface
['{F09ACD7B-CDC0-4548-A248-1F2DE6B7EE41}']
function GetMetaData: string;
procedure SetMetaData(const Value: string);
property MetaData: string read GetMetaData write SetMetaData;
end;
Dann kannst du über Supports abfragen, welches Feature ein TagItem unterstützt oder nicht.