TShellTreeView在哪里?

sid*_*unk 0 delphi delphi-xe7 delphi-10-seattle

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

找不到类TShellTreeView点击取消忽略.....

TShellTreeView是一个设计时组件,是ShellCtrls软件包的一部分,它始终随Delphi一起提供,通常包含在以下Samples软件包中:

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

现在它似乎不再存在了.这个包裹在哪里?

J..*_*... 9

ShellControls设计时包,与一些在其他很老项目一起Samples包在XE7 +被拆除.

如果您需要现成的设计时包,您仍然可以在此处获取SourceForge存储库中 XE6附带的最新版本.

链接到此存储库的相关文档页面是特定于XE6的页面. 特定于Delphi更高版本的文档页面将链接到Samples特定于这些版本的新存储库.要安装软件包,请打开该vclshlctrls.dproj文件,右键单击该ShellControls.bpl软件包Project Manager并选择Install.

请记住,这是一个废弃的软件包 - 您可能需要进行更改以在较新版本中进行编译.


.pas但是,当前更新的文件已集成到VCL源中.最好的选择可能就是制作你自己的设计时包.为此,您需要在以下位置找到来源:

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

在:

[ ProgramFiles ]\Embarcadero\Studio\17.0\source\vcl \

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

    procedure Register;
    
    Run Code Online (Sandbox Code Playgroud)
  • 并添加为该implementation部分中的第一项:

    procedure Register;
    begin
      RegisterComponents('Shell Controls', [TShellListView]);
      RegisterComponents('Shell Controls', [TShellTreeView]);
      RegisterComponents('Shell Controls', [TShellChangeNotifier]);
    end;
    
    Run Code Online (Sandbox Code Playgroud)
  • 保存包.右键单击,.bpl在项目管理器中选择 - > Install.接受IDE通知您的所有必需参考,您应该完成.