SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

EDN CodeZine出張所(AD)

DelphiアプリケーションをWindows 10対応したついでにiOSとAndroidにも対応してみた

最新のマルチデバイス開発環境で、Windows 10とモバイルデバイスの双方に対応したアプリケーションを構築

  • このエントリーをはてなブックマークに追加

マルチデバイス向けのUI設計

StyleBookを使う

 VCLにもあったスタイルの機能は、FireMonkeyでより積極的に使われています。ちょうどHTML5に対するCSSのような位置付けで、ビューを定義するための重要な役割を担っています。

 FireMonkeyでスタイルを使うには、TStyleBookコンポーネントを用います。コンポーネントをフォーム上にドロップしたら、ダブルクリックしてスタイルデザイナを開きます。ここで、Windows 10のダークスタイルを選択しましょう。

図14 スタイルデザイナ

 スタイルデザイナで定義を行っただけでは、フォームにスタイルは適用されません。フォームのStyleBookプロパティに配置したTStyleBook(この場合は、StyleBook1)を指定します。

図15 スタイルの適用

 画面右側のタブ「マルチデバイスプレビュー」をクリックすると、複数デバイス向けのプレビューが表示されます。この画面では、さまざまなデバイスで、現在設計しているUIが、どのように表示されるかを確認することができます。

TMultiViewとビヘイビアサービス

 FireMonkeyでは、TSplitViewに相当するコンポーネントとしてTMultiViewが用意されています。ただ、TMultiViewはTSplitViewとはちょっと違います。

 TSplitViewは、Windows専用なので、Windowsプラットフォームでの動作だけを考慮するだけですみます。一方、FireMonkeyのTMultiViewは、複数プラットフォームが対象となるため、OSごとの差、スクリーンのサイズや向きまで考慮しなければなりません。これをすべて手作業のコーディングで行うと、画面制御だけで膨大なコードになってしまいます。

 そこでFireMonkeyでは、ビヘイビアサービスという実行時サービスが裏で動いています。ビヘイビアサービスを使えば、どのようなデバイスで動いているのかを理解し、最適な動作を実行時に選択できます。

 TMultiViewは、ビヘイビアサービスを利用するUIコントロールです。つまり、デフォルトの動作であれば、特に指定しなくても、各デバイスで最適な表示にしてくれるのです。

 次の図は、TMultiViewを使ったハンバーガーメニュー相当の機能です。

図16 TMultiViewによるメニューの作成

 作り方も外見もほぼ同じですが、実際にはマルチデバイスを考慮した最適な表示を行ってくれます。

次のページ
各デバイス向けのカスタマイズ

修正履歴

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
EDN CodeZine出張所連載記事一覧

もっと読む

この記事の著者

EDN編集部(イーディーエヌ編集部)

エンバカデロ・デベロッパーネットワーク(EDN)は、ソフトウェア開発者とデータベース技術者のための技術情報サイトです。Delphi、C++Builderをはじめとする開発ツールやER/Studioなどのデータベースツールに関連する技術記事、ビデオなどを提供しています。EDN編集部は、EDN記事と連携...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8955 2015/10/21 18:13

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング