Przechowuję małe interfejsy z szeregu obiektów w jednym sklepie "TInterfaceList" z zamiarem zaoferowania listy konkretnych typów interfejsu dla użytkownika końcowego, tak aby interfejs wyświetli funkcję "GetName", ale wszystkie inne metody są unikalne dla tego typu interfejsu. Na przykład tutaj są dwa interfejsy:Jak przechowywać i lokalizować wiele typów interfejsów w Delphi TInterfaceList
IBase = interface
//----------------------------------------
function GetName : string;
//----------------------------------------
end;
IMeasureTemperature = interface(IBase)
//------------------------------------
function MeasureTemperature : double;
//----------------------------------------
end;
IMeasureHumidity = interface(IBase)
//----------------------------------------
function MeasureHumidity: double;
//----------------------------------------
end;
umieścić kilka z tych interfejsów w jednym TInterfaceList a następnie chciałbym zeskanować listę dla określonego typu interfejsu (np „IMeasureTemperature”) buduje kolejną listę wskaźników do obiektów eksportujących te interfejsy. Nie chcę nic przypuszczać o lokalizacji tych obiektów, niektóre mogą eksportować więcej niż jeden typ interfejsu. Wiem, że mogę to zrobić z wykorzystaniem hierarchii klasowej coś takiego:
If FList[I] is TMeasureTemperature then ..
ale chciałbym coś zrobić simliar z typem interfejsu, jest to możliwe?
Możesz chcieć wyjaśnić, czy twoja pierwsza lista zawiera rzeczywisty typ * interfejsu * lub odniesienia do obiektu * instancji *, które implementują te interfejsy. Wygląda na to, że wszyscy ludzie, którzy tu odpowiedzieli, założyli to drugie, a ja przeczytałem twoje pytanie, aby porozmawiać o tym pierwszym ... potem znowu nie możesz przechowywać * typów interfejsów * w "TInterfaceList" ... więc prawdopodobnie jestem w błędzie ... –