Delphi中的泛型并返回对tlist <class>的引用

时间:2017-04-10 11:29:41

标签: delphi generics delphi-xe4

我仍然使用Delphi XE4(我使用多个Delphi编译器的最新编译器),并且需要一个特定的解决方法,因为他们在此版本中完全隐藏了TBasicAction中的FClients。我在设置启用/禁用时连接/断开客户端运行时(以避免闪烁~100 +动作和ui元素)因此XE4的这种解决方法:

这是我天真的尝试,只是简单地回到了现场。

  TmscBasicActionCrack = class(TBasicAction)
  end;
{$IFDEF mymsDELPHIXE4}
  TmscBasicActionHelper = class helper for TBasicAction
  public
    function Helper_Get_Private_FClients: TList<System.Classes.TBasicActionLink>;
  end;
{$ENDIF}

{$IFDEF mymsDELPHIXE4}
//------------------------------------------------------------------------------
function TmscBasicActionHelper.Helper_Get_Private_FClients: TList<System.Classes.TBasicActionLink>;
begin
  Result := Self.FClients;
end;
{$ENDIF}

然而,我收到错误

  

E2003未声明的标识符:TList&lt;&gt;

我必须承认,自从我最初听说稳定性问题后,我从未到处使用泛型,因为我需要保持与Lazarus / FreePascal的兼容性。

我知道最近的版本Delphi再次改变了类帮助程序,但我现在最感兴趣的是将它与Delphi XE4一起使用

1 个答案:

答案 0 :(得分:8)

错误表明编译器不知道TList<T>类型。要使用它,您必须在System.Generics.Collections条款中加入uses