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

Delphi / C++Builder 12のSkiaサポートで表現力豊かなUIを構築

12 athens skia thumb 2

Delphi / C++Builder / RAD Studio 12 Athensの新機能のひとつに「Skiaサポート」があります。Skiaは、Googleが提供するオープンソースの2Dグラフィックライブラリで、Google Chrome、 ChromeOS、Android、Flutterをはじめ、多くの製品のグラフィックスエンジンとしても使用されています。ハイパフォーマンスで高品質のレンダリング機能を提供し、すべてのプラットフォームで高度なグラフィック操作をサポートしています。

Delphi / C++Builder 12のSkiaサポート

Delphiでは、「Skia4Delphi」と呼ばれるライブラリによりSkiaのサポートを実現しています。12 Athensでは、これを製品に取り込み、さらに使いやすく機能拡張を施しています。

Delphi / C++BuilderでSkiaを使うには、いくつかの方法があります。

  1. 単一のユニット(Skia.pasまたは Skia.hpp)経由で、Skiaライブラリに直接アクセスできるSkia APIを使用
  2. FireMonkey / VCLの双方で用意されているSkiaコンポーネントを使用
  3. アプリとスタイルのレンダリングに使用(FireMonkey)
  4. イメージコントロールのコーデックで使用

Skiaコンポーネント

新たに追加されたSkiaコンポーネントは、VCLとFireMonkeyの双方に用意されています。

  • TSkLabel:フォントウェイト、フォントの傾き、テキストで複数のスタイル、BiDi(右横書き)、縦書きのアラインメント調整など
  • TSkAnimatedImage:Lottieファイル、Telegram Sticker、アニメーションGIF、アニメーションWebPのサポート
  • TSkSVG:SVGを簡単に表示
  • TSkPaintBoxTSkAnimatedPaintBox:OnDrawイベントでSkia APIを直接使って画面上に描画

ここでは、Skiaの表現力豊かなグラフィック機能を簡単に利用できるこれらのコンポーネントの使い方を簡単に解説します。

TSkLabelの使い方

TSkLabelは、Skiaの文字列描画機能をコントロールとして利用できるようにしたものです。TSkLabelには、複数のワード(TWordsItemで表現)を含めることができ、それぞれのワードごとに、フォントの種類、色、下線などのデコレーションなどを設定できます。また、ワードごとにOnClickなどのイベントを設定することもできます。TSkLabelに含まれるワードは、Wordsプロパティで保持されます。

TSkLabelの使い方の詳細は、こちらのビデオをご覧ください。

TSkAnimatedImageの使い方

TSkAnimatedImageは、アニメーションGIFなどのアニメーション画像を表示するコントロールです。TSkAnimatedImageでは、以下の種類のアニメーションファイルを表示できます。

  • Animated GIF (*. )
  • Animated WebP (*.webp)
  • Lottie (*.json)
  • Telegram Sticker (*.tgs)

使い方は簡単で、Sourceプロパティで画像を指定し、Animationプロパティでアニメーション動作の詳細を設定するだけです。

TSkSVGの使い方

TSkSVGは、SVGを表示するコントロールです。使い方は簡単で、SvgプロパテのSourceに、SVGを指定するだけです。SVGファイルを指定する以外に、SVGエディタ内でSVGソースをペーストして利用することもできます。

TSkAnimatedImageとTSkSVGの使い方の詳細は、こちらのビデオをご覧ください。

関連情報


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