Мы только что выпустили патч для C ++ Builder 10.4.1, который влияет на использование компонентов, написанных на C ++, в конструкторе форм. Этот патч устраняет следующую проблему:
- Обработчики событий не всегда создавались в среде IDE с совместимой сигнатурой метода для типа обработчика событий (RSP-29734)
- При использовании компонента, скомпилированного с помощью классического компилятора в конструкторе форм IDE, создание обработчика событий внутри IDE (например, путем двойного щелчка по записи обработчика событий в инспекторе объектов) часто создает метод с сигнатурой, несовместимой с событием, вызывает ошибку «Свойство и метод несовместимы». Это исправлено в этом исправлении.
После установки этого исправления необходимо перестроить пакеты компонентов C ++ (во время разработки и выполнения) или получить обновленную версию у поставщика компонентов.
Установка патча
Патч может быть автоматически установлен IDE. Когда вы откроете RAD Studio или C ++ Builder, вы увидите на экране приветствия примечание о наличии обновления. При нажатии откроется GetIt. Вы также можете открыть GetIt через меню «Инструменты»> «Диспетчер пакетов GetIt» и найти категорию «Патчи и исправления».
Щелкните исправление, чтобы выбрать его, и нажмите кнопку «Установить». (Если вы его не видите, убедитесь, что вы используете GetIt в онлайн-режиме, с информацией о настройках здесь.)
Поскольку этот патч перезаписывает файлы, загруженные IDE, он закроет IDE перед установкой. Это первый раз, когда мы выпустили исправление, устанавливаемое IDE, которое изменяет файлы, используемые самой IDE, и является частью нашего капитального ремонта распространения исправлений, начатого в 10.4. Это отличная технология!
IDE закроется, и вы увидите, как открываются некоторые окна командной строки. Следите за мигающим запросом повышения разрешений на панели задач, так как установщику требуются повышенные разрешения для установки файлов в папку Program Files.
Подождите несколько секунд, и вы увидите, что наш инструмент исправлений работает, а затем перезапускается среда IDE. Выполнено!
Если вы не хотите, чтобы среда IDE устанавливала исправление, вы также можете загрузить его на портале my.embarcadero.com и установить вручную. Но мы рекомендуем устанавливать из среды IDE; это намного проще, и после установки IDE будет знать, что она установлена, и больше не будет запрашивать вас.
Обратите внимание на компоненты и обработчики событий, созданные в Clang.
Примечание. Компоненты, созданные с использованием компилятора на основе Clang, также имеют проблемы с созданием обработчиков событий; в настоящее время мы рекомендуем, чтобы любой компонент C ++, предназначенный для использования во время разработки, был построен с использованием классического компилятора. Это пакеты как среды разработки, так и среды выполнения. Любой компонент, не предназначенный для использования в конструкторе форм, может быть построен с помощью компилятора Clang.
Мы планируем решить эту проблему — Clang должен стать полноценной заменой Classic во всех отношениях. (Например, 10.4 представил новый отладчик, гарантирующий, что он лучше, чем классический.)