TShellTreeView 在哪里?

Where is TShellTreeView?

我正在尝试在 Delphi 10 Seattle 编译一个旧项目并收到以下错误消息

class TShellTreeView not found click cancel to ignore.....

TShellTreeView 是一个设计时组件,是 ShellCtrls 包的一部分,通常在 Samples 包中与 Delphi 一起提供,通常在 :

C:\Users\Public\Documents\Embarcadero\Studio\xx.x\Samples\Object Pascal\VCL\

现在好像不存在了。这个包裹去了哪里?

根据样本的文档副本在此处:http://sourceforge.net/p/radstudiodemos/code/HEAD/tree/trunk/这是 SVN 存储库,因此您必须使用版本控制 IDE 插件或单独的应用程序来获取源代码。

ShellControls design-time 包以及 Samples 包中的许多其他非常旧的项目在 XE7+ 中被删除。

如果您想要 ready-made design-time 软件包,您仍然可以在 SourceForge repository here.

中获得 XE6 附带的最新版本

此存储库 link 的相关文档页面是 the XE6-specific page. 特定于更高版本 Delphi 的文档页面将 link 到新的 Samples 特定于这些版本的存储库。要安装软件包,请打开 vclshlctrls.dproj 文件,right-click Project Manager 和 select Install.

中的 ShellControls.bpl 软件包

请记住,这现在是一个废弃的包 - 您可能需要进行更改才能在新版本中编译它。


但是,当前更新的 .pas 文件已集成到 VCL 源代码中。最好的选择可能是用这些制作你自己的 design-time 包。为此,您需要在 :

中找到来源

Vcl.Shell.ShellConsts.pas
Vcl.Shell.ShellCtrls.pas

in :

[ProgramFiles]\Embarcadero\Studio.0\source\vcl\

  • 接下来,将它们复制到新包的工作目录中。
  • 创建新包(文件 -> 新建 -> 包)
  • 在您的工作目录中将包另存为 ShellControls.bpl 并添加两个源文件。
  • 编辑 Vcl.Shell.ShellCtrls.pas 的工作副本以添加为 interface 部分的最后一项:

    procedure Register;
    
  • 并添加为 implementation 部分的第一项:

    procedure Register;
    begin
      RegisterComponents('Shell Controls', [TShellListView]);
      RegisterComponents('Shell Controls', [TShellTreeView]);
      RegisterComponents('Shell Controls', [TShellChangeNotifier]);
    end;
    
  • 保存包。 Right-click,项目管理器中的 .bpl 和 select -> Install。接受 IDE 通知您的任何必需参考,您应该完成。