We’ve just released a patch for C++Builder 10.4.1 which affects using components written in C++ in the form designer. This patch addresses the following issue:
- Event handlers were not always generated in the IDE with a compatible method signature to the event handler type (RSP-29734)
When using a component compiled with the classic compiler in the IDE’s form designer, generating an event handler inside the IDE (such as by double-clicking an event handler entry in the Object Inspector) often created a method with a signature incompatible with the event, causing an error “Property and method are not compatible”. This is fixed in this hotfix.
You should rebuild your C++ component packages (design- and run-time) after installing this hotfix, or obtain an updated version from your component vendor.
Installing the Patch
The patch can be automatically installed by the IDE. When you open RAD Studio or C++Builder, you will see a note in the Welcome screen that an update is available. Clicking this will open GetIt. You can also open GetIt through the Tools menu > GetIt Package Manager menu item, and look for the ‘Patches and Hotfixes’ category.
Click the hotfix to select it, and click Install. (If you don’t see it, make sure you’re using GetIt in online mode, with info on the settings here.)
Because this patch overwrites files the IDE has loaded, it will close the IDE before installing. This is the first time we’ve released a patch that the IDE installs that modifies files the IDE itself is using, and is part of our overhaul of patch distribution started in 10.4. It’s great tech!
The IDE will close and you will see some command-line windows opening. Keep an eye out for a flashing permissions elevation prompt in the taskbar, since the installer needs elevated permissions to install files to your Program Files folder.
Wait a few seconds, and you’ll see our patch tool running, followed by the IDE restarting. Done!
If you don’t want to let the IDE install the patch, you can also download it on the my.embarcadero.com portal and install it manually. But we recommend installing from within the IDE; it’s much easier, and after it’s installed the IDE will know it’s installed and no longer prompt you.
Note re Clang-built components and event handlers
Note: components built using the Clang-based compiler also have issues generating event handlers; we currently recommend that any C++ component that is meant for design-time use is built with the classic compiler. This is both the designtime and runtime packages. Any component not intended to be used in the form designer can be built with the Clang compiler.
We plan to resolve this – Clang should be a full replacement for Classic in all ways. (For example, 10.4 introduced a new debugger, ensuring that’s better than classic.)