![Delphi104UPD1ja | Embarcadero RAD Studio Delphi C++Builder Blogs](https://i0.wp.com/blogs.embarcadero.com/wp-content/uploads/2020/09/Delphi104UPD1-ja.jpg?resize=680%2C383&ssl=1)
C++言語で記述されたコンポーネントをフォームデザイナで使用すると悪影響を及ぼす問題を修正したC++Builder10.4.1のパッチをリリースしました。
このパッチでは、Embarcadero Quality Portal(以下、QP)に報告されている以下の問題に対処しています。
RSP-29734: Error “Property and method <MethodName> are not compatible” in Object Inspector
(QPへログインするためには、EDNアカウントが必要)
IDEのフォームデザイナで、bcc32(従来のBorlandコンパイラ)でコンパイルされたコンポーネントを使用している場合、IDE内でイベントハンドラを生成(例えば、オブジェクトインスペクタでイベントハンドラをダブルクリックする等)すると、イベントと互換性のないシグネチャを持つメソッドが作成され、「プロパティとメソッドは互換性がありません」というエラーが発生することがありました。このパッチでは、この問題が修正されています。
このパッチをインストールした後、自身で作成したC++コンポーネントパッケージ(設計時および実行時)を再構築してください。なお、もしサードパーティ製のC++コンポーネントを利用している場合は、提供元から更新されたパッケージを入手してください。
パッチのインストール
パッチのインストールは、IDEのGetItパッケージマネージャから自動的にインストールすることができます。
IDEの[ウェルカムページ]の”Patch avaliable, install now.”をクリックするか
![1041cpppatchinstallja | Embarcadero RAD Studio Delphi C++Builder Blogs](https://i0.wp.com/blogs.embarcadero.com/wp-content/uploads/2020/10/10.4.1_cpp_patch_install_ja.png?resize=530%2C165&ssl=1)
IDEメニューの[ツール]-[GetItパッケージマネージャ]を選択すると、GetItパッケージマネージャのダイアログが表示されますので、メニューの[Patches and Hotfixes]カテゴリをクリックすると、”10.4.1 Patch(C++Builder) 1”という名前のパッチが見つかります。
![getit1041cpppatchja | Embarcadero RAD Studio Delphi C++Builder Blogs](https://i0.wp.com/blogs.embarcadero.com/wp-content/uploads/2020/10/getit_10.4.1_cpp_patch_ja.png?resize=750%2C542&ssl=1)
パッチのインストールは、一覧から”10.4.1 Patch(C++Builder) 1”をクリックして選択し、[インストール]をクリックしてください。
![1041patchinstallerrorja | Embarcadero RAD Studio Delphi C++Builder Blogs](https://i0.wp.com/blogs.embarcadero.com/wp-content/uploads/2020/10/10.4.1_patch_install_error_ja.png?resize=394%2C127&ssl=1)
注意: もしこのパッチの[インストール]をクリックした時に上記のようなエラーが表示されたり、”Embarcadero GetIt サーバーに接続できませんでした…”といったメッセージが表示されている場合の対処方法は、こちらを参照してください。
このパッチは IDE が既に読み込んでいるファイルを上書きする必要があるため、インストールする前にIDEを一度終了する必要があります。以前のインストーラーでは、この操作は手動で行う必要がありましたが、このパッチからIDEの再起動が必要なインストールが実行される場合には、下図のように再起動を実施する否か確認するダイアログが表示されます。今後提供されるパッチにはこの方式が採用されますので、以前と比べてインストールが便利になりました。
![1041restartdialogja | Embarcadero RAD Studio Delphi C++Builder Blogs](https://i0.wp.com/blogs.embarcadero.com/wp-content/uploads/2020/10/10.4.1_restart_dialog_ja.png?resize=364%2C145&ssl=1)
パッチのインストールが開始すると、IDE が終了し、いくつかのコマンドラインウィンドウが開きます。インストーラは、Program Filesフォルダにファイルをインストールする必要があるため、下図のような権限を昇格させるためのダイアログが表示されます。
![1041permissionja | Embarcadero RAD Studio Delphi C++Builder Blogs](https://i0.wp.com/blogs.embarcadero.com/wp-content/uploads/2020/10/10.4.1_permission_ja.png?resize=454%2C328&ssl=1)
[はい] ボタンをクリックしてください。
![1041patchtool | Embarcadero RAD Studio Delphi C++Builder Blogs](https://i0.wp.com/blogs.embarcadero.com/wp-content/uploads/2020/10/10.4.1-patchtool.png?resize=750%2C407&ssl=1)
数秒待つと、コマンドラインからパッチのインストールが実行され、それが完了するとIDEが再起動されます。
GetItパッケージマネージャを利用してパッチをインストールする方法以外にmy.embarcadero.comポータルからダウンロードして手動でインストールすることもできます。
Clangコンパイラでビルドされたコンポーネントとイベントハンドラに関する注意事項
現時点では、Clangベースのコンパイラ(bcc32c)を使用してビルドされたコンポーネントは、イベントハンドラの生成に問題があり、これは設計時パッケージと実行時パッケージの両方に影響します。そのため設計時にフォームデザイナを利用してC++コンポーネントのイベントハンドラの生成が必要な場合は、すべてbcc32(従来のBorlandコンパイラ)で構築することをお勧めします。 なお、フォームデザイナを使用しないコンポーネントについては、Clangコンパイラでビルドしても問題ありません。
エンバカデロでは、今後Clangコンパイラによるイベントハンドラ生成の問題も解決していく予定です。この問題が解決できれば、Clangコンパイラは従来のBorlandコンパイラよりも優れた点もあるため、Clangコンパイラへいずれ移行されていくものと期待しています。(例えば、10.4では新しいデバッガが導入され、従来のデバッガよりも優れています。)
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition