サイトアイコン Embarcadero RAD Studio, Delphi, & C++Builder Blogs

Windows 11におけるVCLのサポート強化

Windows 11の公式リリースに伴い、エンバカデロでは、RAD Studio 11向けにいくつかの特定のVCLスタイルを提供しておりますが、それに加えてMicrosoftデスクトップOSの新バージョンに特化したコーディングヘルパーを提供しています。今後も随時追加していく予定です。

今年初めに発表された後、Microsoftは先週、Windows 11を正式にリリースしました。新しいハードウェアの要件により、古いコンピュータ上で新しいオペレーティングシステムを実行する際にいくつかの問題がありましたが、新しいバージョンのWindowsは、DelphiやC++Builderで作成された既存のアプリケーションと非常に高い互換性を維持しながら、より優れたユーザーエクスペリエンスとワーキング環境を提供します。今後数か月以内に、多くのエンドユーザーがWindows 11に移行することを期待しています。

今回のブログでは、Windows 11とその刷新されたユーザーエクスペリエンスに焦点を当てるのではなく、VCLアプリケーションをさらに改善して新しいOSの第一級市民にする方法に焦点を当てたいと思います。一般的に、DelphiとC++Builderには、VCLスタイルの使用から、近年導入された多くの新しいVCLコントロール(RAD Studio 10.4.2のControlListとNumberBoxコントロール、RAD Studio 11 Alexandriaの刷新されたRichEdit)など、最近のWindowsバージョンにうまく適合するための多くの機能追加があります。

ここでは、一般的な移行の提案やアイデアよりもさらに進んで、Windows 11固有のサポートに焦点を当ててみましょう。Windows 11にはWebView2コントロールがプリインストールされているため、TWebBrowserコンポーネントではなくTEdgeBrowserを採用する絶好の機会となります。また、MicrosoftはパッケージアプリケーションとMicrosoft Storeに重点を置いていますが、RAD Studio 11 IDEでは、この2つの機能をサポートするMSIX配布形式が利用可能です。(MSIXは、従来のAPPXに代わるMicrosoftのパッケージング技術です)

新しいWindows 11 VCLスタイル

先日 エンバカデロでは、Windows 11に特化したライトモードとダークモード向けの新しいVCLスタイルのセットをリリースしました。GetItパッケージマネージャで「Windows 11」と入力すると、すぐに見つけることができます。

2つのスタイルをインストールしたら、VCLプロジェクトの[プロジェクト]-[オプション]-[アプリケーション]-[表示]のカスタムスタイルから選択できます。

[ツール]-[オプション]-[フォームデザイナ]の”VCLスタイルを有効にする”にチェック入れている場合は、VCLフォームデザイナで適用したスタイルのプレビューが可能です。下図はWindows 11 ダークモードを適用したスタイルで、リストボックスにモダンスタイルの細いスクロールバーが表示されていることに注目してください。

角が丸いフォームや新しいプラットフォームのデフォルトに合わせた色など、Microsoftの「公式」な画像イメージを以下の通りです。

Windows 11の丸い角のUI

Windows 11の最も顕著な特徴の1つは、角が丸いフォームを始めとする「丸みを帯びたUI要素」の使用です。特別な構成や設定をしていない全く新しいVCLアプリケーションを作成し、Windows 11上で実行すると、デフォルトでフォームの角が丸くなっているはずです。しかし、この機能は、DwmSetWindowAttributeという特定のパブリックなWindows APIを使用して、完全にコントロールすることができます。

[crayon-676dd8cb4ffe8586784368/]

このAPIを使いやすくするためのサンプルコードは、こちらのブログで紹介しており、GitHubでソースコードを公開しています。インターフェースセクションは以下の通りです。

フォームのinterfaceセクションのuses句で、Vcl.Formsユニットの後にこのユニットを追加するだけで、フォームには、デフォルトの丸め方を示す新しいクラスプロパティと、特定のフォーム設定のための新しいプロパティができ、以下のように次のように記述できます。

[crayon-676dd8cb4ffee567391311/]

このコードはWindows 11でのみ動作し、Windows 10以前のバージョンでは無視されます(ただし、エラーは発生しません)。簡単なデモプログラムは、こちらからダウンロードできます。下図は、デモプログラムを実行した例です。

最後に、カスタムVCLのタイトルバーを使用するアプリケーションを含むVCLアプリケーションがスナップレイアウトをサポートしていることに注目してください。

1つの小さな問題と今後の計画について

前述しましたようにVCLアプリケーションは、Windows 11で問題なく動作します。ただし、メニューアイテムのカラーリングとそれに関連する画像については、VCLアプリケーションでは対応できない異なるデフォルトカラーが使用されているため、既知の問題があり、Embarcadero Quality Portal(RSP-35049)へ報告されてます。このケースのレポートには回避策が記載されていますが、この問題に対するRAD Studio 11の修正プログラムを近日中に提供する予定です。

今後、RAD Studio 11.1のリリースに向けて、Windows 11関連の改善や新機能のデモを計画しています。ご期待ください。

VCLでWindows 11向けのアプリケーションを構築

エンバカデロがRAD Studioの最新リリースにバージョン11を採用し、Windows 11との連携を図ったことは、決して不思議なことではありません。近年、MicrosoftのツールではUIライブラリの変更が行われていますが、DelphiやC++BuilderのVCLライブラリが提供するAPIのサポートやプラットフォームの統合は、Microsoft VisualStudioまたはサードパーティのツールセットによって比類のないものです。

Microsoftは、Windowsのネイティブ開発が重要であることを明確に示しており(Windows App SDK、別名Project Reunionを参照)、主流の選択肢であることに変わりはありませんが、この分野のライブラリ(MFCやWinFormsなど)は、VCLと同等ではなく、独自のプラットフォーム機能に遅れをとっています。

VCLライブラリは、クラシックなAPIとモダンなAPI(Win API、COMベースのAPI、WinRT)へのマッピングが可能で、高DPIモニターやモダンなUIトレンドをサポートしており、アプリケーションの全面的な書き換えを必要としないため、Windowsデスクトップの開発シナリオにおいてユニークであり、そのパワーは明らかに際立っています。Windows 11の開発には、Visual Component Library(VCL)が最適です。

モバイルバージョンを終了