Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
DelphiRAD Studio

Windows 11の角が丸いフォームをアプリケーションでコントロールする方法

hero image

この記事は、Ian Barker 氏のブログの抄訳です

先日、RAD Studio 11 Alexandriaがリリースされました。RAD Studio 11には多くの機能が搭載されており、Microsoft社が美しくデザインを一新したWindows 11の公式リリースに先駆けてRAD Studio 11が提供を開始しています。Windows 11には多くの素晴らしい点がありますが、その豪華で美しいユーザーインターフェースの裏には、古いレガシーアプリケーションやハードウェアにとって問題となりうる、いくつかの罠や落とし穴があります。

最も分かりやすいユーザーインターフェースの変更点の1つは、ほとんどすべてのアプリケーションのウィンドウと多くのユーザーインターフェースコントロールに角が丸い効果が適用されることです。アプリケーションのフォームや、テキストボックス、パネル、グループボックスなどの角が丸い効果の度合いは様々です。Microsoftでは、こちらの記事でユーザーインターフェイスコンポーネントにどのように影響するかについてさらに詳しく説明します。

notepad rounded

また、アプリケーションフォームの丸めがどのように行われるのか、丸め機能をオン/オフする方法については、こちらの記事で紹介されています。Microsoftは、キャプションバーに丸めを適用した場合、一部のアプリケーションウィンドウがうまく動作しないことを認識しています。 例えば、ツールウィンドウタイプのアプリケーションフレームは、通常、高さが非常に狭く、カスタム描画されたウィンドウアイコンがあります。

先のことを考えると、Windows11は非常に使いやすいWindowsAPIを提供しており、丸めの動作を完全に制御することができます。丸めの動作をオン/オフに設定したり、より小さな半径でウィンドウを丸めるように Windows 11 に要求したりできます。

how to control windows 11 rounded corners in your app ja 4722286

先日行われたUSのRAD Studio 11のWebinarのQ&Aで、EmbarcaderoチームにそのAPIの使用例について質問がありました。こちらのブログでその方法の簡単な例を質問ウィンドウに貼り付けていましたが、少し読みづらく、あくまで断片的なコード例だったため、視聴者の要望をうけて、より完全なデモを作成しました。このブログの最後にサンブルプログラムのURLを記載しておきますので、もし興味があればダウンロードしてみてください。

screenshot 2021 09 10 131512

このサンプルプログラムは、Windows 11以前のバージョンのWindowsで実行した場合は、API呼び出しは効果が無いため、アプリケーションフォームの外観は変わりません。Windows 11でサンプルプログラムを実行した場合は、上図のようにラジオグループからの選択に基づいてメインフォームウィンドウを制御します。簡単な呼び出しでユニバーサルユニットを作成しました。これにウィンドウハンドルを渡すだけで、Windows 11の角が丸いアプリケーションフォームに変更されます。

screenshot 2021 09 10 131107

このデモプログラムはもちろん、新しいRAD Studio 11 Alexandriaで作成されていますが、以前のバージョンのDelphiでも動作するはずです。このコードをご自身のアプリで使用するには、以下のGitHubリンクからソースリポジトリをダウンロードし、アプリケーションに”delphi_rounded_corners.pas“ユニットを含めて、プロシージャを呼び出してください。

RAD Studio 11のデモプログラムの全ソースは以下のURLからダウンロードできます。

https://github.com/checkdigits/rounded_corners


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