Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
C++IDEアップデート

C++Builder10.4.1向けのPatch:イベントハンドラ生成で生じる問題の修正

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.”をクリックするか

IDEメニューの[ツール]-[GetItパッケージマネージャ]を選択すると、GetItパッケージマネージャのダイアログが表示されますので、メニューの[Patches and Hotfixes]カテゴリをクリックすると、”10.4.1 Patch(C++Builder) 1”という名前のパッチが見つかります。

パッチのインストールは、一覧から”10.4.1 Patch(C++Builder) 1”をクリックして選択し、[インストール]をクリックしてください。

注意: もしこのパッチの[インストール]をクリックした時に上記のようなエラーが表示されたり、”Embarcadero GetIt サーバーに接続できませんでした…”といったメッセージが表示されている場合の対処方法は、こちらを参照してください。

このパッチは IDE が既に読み込んでいるファイルを上書きする必要があるため、インストールする前にIDEを一度終了する必要があります。以前のインストーラーでは、この操作は手動で行う必要がありましたが、このパッチからIDEの再起動が必要なインストールが実行される場合には、下図のように再起動を実施する否か確認するダイアログが表示されます。今後提供されるパッチにはこの方式が採用されますので、以前と比べてインストールが便利になりました。

パッチのインストールが開始すると、IDE が終了し、いくつかのコマンドラインウィンドウが開きます。インストーラは、Program Filesフォルダにファイルをインストールする必要があるため、下図のような権限を昇格させるためのダイアログが表示されます。

[はい] ボタンをクリックしてください。

数秒待つと、コマンドラインからパッチのインストールが実行され、それが完了するとIDEが再起動されます。

GetItパッケージマネージャを利用してパッチをインストールする方法以外にmy.embarcadero.comポータルからダウンロードして手動でインストールすることもできます。

Clangコンパイラでビルドされたコンポーネントとイベントハンドラに関する注意事項

現時点では、Clangベースのコンパイラ(bcc32c)を使用してビルドされたコンポーネントは、イベントハンドラの生成に問題があり、これは設計時パッケージと実行時パッケージの両方に影響します。そのため設計時にフォームデザイナを利用してC++コンポーネントのイベントハンドラの生成が必要な場合は、すべてbcc32(従来のBorlandコンパイラ)で構築することをお勧めします。 なお、フォームデザイナを使用しないコンポーネントについては、Clangコンパイラでビルドしても問題ありません。

エンバカデロでは、今後Clangコンパイラによるイベントハンドラ生成の問題も解決していく予定です。この問題が解決できれば、Clangコンパイラは従来のBorlandコンパイラよりも優れた点もあるため、Clangコンパイラへいずれ移行されていくものと期待しています。(例えば、10.4では新しいデバッガが導入され、従来のデバッガよりも優れています。)


Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

IN THE ARTICLES