![]() |
offenes Array mit Interfaces übergeben
Ich habe mir etwas das Hirn verknotet und suche eine Lösung für folgendes Problem:
Ich möchte prüfen, ob eine Interfacevariable zu bestimmte Interfaces unterstützen, die ich als offenes Array übergebe:
Delphi-Quellcode:
function SupportsIn(TestIntf: IInterface; TestArray: TArray[IInterface]): Boolean;
var I: Integer; begin Result := False; for I := low(TestArray) to high(TestArray) do begin if Supports(TestIntf, TestArray[I]) then begin Exit(True); end; end; end; procedure Test(TestIntf: IInterface; TestArray: TArray[IInterface]); begin if SupportsIn(TestIntf, TestArray) then Beep; end; Test(MyIntf, [IPerson, ICar]); Test(MyIntf, [IEagle, IDog, IFish]); Test(MyIntf, [IPerson]); Im Grunde möchte ich so etwas wie "in Set". Ist sowas realisierbar (mit oder ohne Generics)? |
AW: offenes Array mit Interfaces übergeben
array of TGUID
|
AW: offenes Array mit Interfaces übergeben
Super, vielen Dank!
So einfach... :oops: |
AW: offenes Array mit Interfaces übergeben
Du willst ja auch die Typen (z.B. GUID) und keine Instanzen (IInterface) zum Prüfen übergeben.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz