При переходе с Delphi 7 на Delphi Berlin пользователи могут столкнуться с различными трудностями, связанными с изменениями в структуре и возможностях новой версии среды разработки. Одной из таких проблем является поиск утерянной единицы VCLEditors, которая содержала определение класса TColorProperty в Delphi 7.
Описание проблемы
Класс TRxColorProperty, являющийся потомком TColorProperty, использовался в компонентах, предназначенных для Delphi 7. При попытке переноса этих компонентов в Delphi Berlin разработчики столкнулись с проблемой: в новой версии среды разработки единица VCLEditors не была найдена.
Решение проблемы
Согласно предоставленной информации, единица VCLEditors.pas в Delphi 10.1 Berlin расположена в директории C:\Program Files\Embarcadero\Studio\18.0\source\ToolsAPI. Это означает, что класс TColorProperty присутствует и доступен для использования в Delphi Berlin.
Важные замечания
Обновления версий: Обновления внутри одной версии (например, Update 1, Update 2) не должны ломать существующий код. Следовательно, если TColorProperty не был перемещен в другое место до следующей большой версии, он должен оставаться в VCLEditors и после установки Update 2.
Разделение кода: В Delphi 6 и выше, а также в Delphi Berlin, необходимо отделять код, отвечающий за выполнение (компоненты и т.д.) и код, отвечающий за разработку (редакторы, регистрации в IDE и т.д.), в разные пакеты. Пакеты должны быть организованы так, что пакет для разработки требует наличия пакета для выполнения и пакета DesignIDE.
Использование устаревших единиц: Единица TFlatDesignRegister.pas использует устаревший пакет DsgnIntf, который был удален и переработан в Delphi 6 в различные новые единицы, включая VCLEditors. Поэтому код, который работал в Delphi 7, потребует изменений для компиляции в Delphi Berlin.
Пример кода
Пример использования класса TColorProperty на Object Pascal (Delphi):
type
TRxColorProperty = class(TColorProperty)
public
function GetValue: string; override;
procedure GetValues(Proc: TGetStrProc); override;
procedure SetValue(const Value: string); override;
end;
Важно: при переносе кода необходимо убедиться, что все зависимости и ссылки на другие единицы обновлены и корректно настроены для использования в новой версии Delphi.
Заключение
При переходе на Delphi Berlin важно внимательно изучить изменения, сделанные в новой версии, и соответствующим образом адаптировать свой код. Несмотря на то, что некоторые классы и единицы остались на своих местах, их местоположение может отличаться из-за новой структуры директорий или обновлений в системе пакетов. Следуя инструкциям и учитывая важные замечания, можно успешно завершить процесс миграции компонентов из Delphi 7 в Delphi Berlin.
При переезде компонентов из Delphi 7 в Delphi Berlin необходимо адаптировать код к изменениям в новой версии среды, в частности, разобраться с перемещением единицы `VCLEditors` и класса `TColorProperty`, которые могут отсутствовать или быть в других мест
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS