9

ジェネリック TList の OnNotify イベントを使用したいと考えています。プロシージャを OnNotify に割り当てると、次のエラー メッセージが表示されます。

E2010 Incompatible types: 'System.Generics.Collections.TCollectionNotification' and 'System.Classes.TCollectionNotification'

クラスを宣言していますが、その中でジェネリック TList が次のように使用されます。

TEditor_Table = class (TObject)
public
  FEditors: TList<TGradient_Editor>;  // List containing the editors

これは最もきちんとした方法ではありませんが、テストにはこれが必要です。リストはコンストラクターでインスタンス化されます。

constructor TEditor_Table.Create (Owner: TFMXObject);
begin
   inherited Create;

   FEditors := TList<TGradient_Editor>.Create;
   FOwner := Owner;
end; // Create //

次にメインフォームで関数が宣言されます

procedure do_editor_change (Sender: TObject; const Item: TGradient_Editor; Action: TCollectionNotification);

TColor_Editor クラスは次のようにインスタンス化されます。

FColor_Editor := TEditor_Table.Create (List_Gradients);
FColor_Editor.FEditors.OnNotify := do_editor_change;
                                                   ^
error occurs here----------------------------------+

メッセージがまったく理解できず、コンパイラが「System.Generics.Collections.TCollectionNotification」と「System.Classes.TCollectionNotification」の 2 つのユニットを混同しているように見える理由がわかりません。私は何を間違っていますか?

4

1 に答える 1