私は次のコードを持っています:
for i := 0 to FControlList.Count - 1 do
if Supports(IMyControl(FControlList[i]), IMyControlEx) then
begin
MyControlEx := IMyControl(FControlList[i]) as IMyControlEx;
MyControlEx.DoYourMagic(Self, SomeData);
end;
このコードは、アプリケーションの実行中に何度も呼び出されますが、特定の場合には、Supports()メソッド内で失敗します。より具体的には、Supports()メソッド内のQueryInterface()呼び出しの中にあるようです。
FControlListがnilではなく、FControlList [i]がnilでないことを確認しましたが、それでも発生します。
どんなアイデアでも大歓迎です!!!