2016-01-20 12 views
0

Я пытаюсь скомпилировать старого проекта в XE10 и получить следующее сообщение об ошибкеГде находится TShellTreeView?

класс TShellTreeView не найден, нажмите Отмена, чтобы игнорировать .....

TShellTreeView является время разработки компонент, часть ShellCtrls пакета, который всегда поставляется с Delphi в Samples пакеты, как правило, находится в:

C: \ Users \ Public \ Documents \ Embarcadero \ Студия \ xx.x \ Sample s \ Object Pascal \ VCL \

Теперь, похоже, он больше не существует. Куда отправился этот пакет?

+0

Образцы приложений являются необязательной частью установки. Если вы их не установили, их там не будет. Итак, я полагаю, что 'C: \ Users \ Public \ Documents \ Embarcadero \ Studio \ 17.0 \ Samples' не существует на вашем компьютере? –

+0

Как вы можете видеть '.... \ Samples \ Object Pascal \ VCL \' до здесь его там, где вы можете видеть 'образцы 'есть –

+0

Может кто-нибудь помочь? –

ответ

7

ShellControls пакет времени разработки, а также ряд других очень старых предметов в пакете Samples были удалены в XE7 +.

Если вы хотите готовый пакет времени разработки, вы можете получить последнюю версию, поставляемую с XE6, в SourceForge repository here.

Страница релевантной документации, которая ссылается на этот репозиторий: the XE6-specific page. Страницы документации, относящиеся к более поздним версиям Delphi, будут ссылаться на новые репозитории Samples, относящиеся к этим версиям. Чтобы установить пакет, откройте файл vclshlctrls.dproj, щелкните правой кнопкой мыши пакет ShellControls.bpl в Project Manager и выберите Install.

Имейте в виду, что это уже заброшенный пакет - возможно, вам придется внести изменения в его компиляцию в более новые версии.


В настоящее время, обновлены .pas файлы, однако, были интегрированы в источник VCL. Лучший вариант - это, вероятно, сделать свой собственный пакет времени разработки. Для этого вам нужно будет найти источники в:

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

в:

[ProgramFiles] \ Embarcadero \ Студия \ 17,0 \ источник \ 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; 
    
  • сохранить пакет , Щелкните правой кнопкой мыши, .bpl в диспетчере проектов и выберите ->Install. Примите любые требуемые ссылки, о которых IDE уведомляет вас, и вы должны сделать это.
+0

Ваше редактирование вопроса заставляет мой ответ выглядеть странным, нет? Являются ли элементы управления оболочкой, снабженными источником Delphi, отличными от тех, на которые вы ссылаетесь? –

+0

@TomBrunberg Ваш ответ неверен - эти исходные файлы просто больше не существуют. Как я сказал, они перестали предоставляться Delphi после XE6. Вопрос ФП был конкретно о том, что он не мог найти источники, где они были раньше - я просто очистил неуклюжесть вопроса. Если вы хотите их, вы должны пойти и получить их из дистрибутива XE6 Samples. Тем не менее, даже если исходные файлы были там, недостаточно просто добавить блок в предложение 'uses', как вы предлагаете - это дополнительные пакеты, которые вы должны сначала скомпилировать и установить. –

+0

Два файла (один из которых включает запрос TShellTreeView), безусловно, находятся в том месте, которое я сказал, в моих установках XE5-XE 10. –

0

В соответствии с документом копия образцов находится здесь: http://sourceforge.net/p/radstudiodemos/code/HEAD/tree/trunk/ Это репозиторий SVN, поэтому для получения источников вам потребуется использовать плагин Version Control IDE или отдельное приложение.

+0

Нет 'ShellCntrl' там также –

+2

Трудно понять вышеперечисленное здесь. Вы говорите, что документация связана с этим реестром sourceforge, но вы не даете ссылку на эту документацию, и действительно, репо не содержит данный код. –