1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ツールバーを利用した入力フォームのモード切替がとても便利!

Last updated at Posted at 2025-11-28

ごきげんよう、百合宮桜(Miyu)です!
こちらの記事で取り上げた理想的な入力フォーム画面では、画面上部にこのツールバーを配置して、新規作成と削除がスムーズに行えるようにしています。

image.png

今回は上図のような画面を作るためのツールバーの調整方法を解説します。

ツールバーとは?

ツールバーはモダンコントロールとして追加されたコントロールの1つで、よく使う機能をまとめたコントロールです。既定では入力フォームとの利用を想定した New や Edit が用意されていますが、中身を変えることもできます。

image.png

レスポンシブルなアプリでは画面の幅に合わせて見せ方が自動で変わります。

  • パソコンの場合
    image.png

  • スマートフォンの場合
    image.png

モダンコントロールなので、現時点では設定 > 更新 > モダンコントロールとモダンテーマを オン にすることで利用できます。

image.png

見た目の調整方法

概要

各ボタンの名称や色の設定方法を説明します。

Items プロパティを確認すると、既定では以下のような式が入っています。

Table(
    {
        ItemKey: "new",
        ItemDisplayName: "New",
        ItemIconName: "Add",
        ItemAppearance: "Primary",
        ItemIconStyle: "Regular",
        ItemTooltip: "Add new item"
    },
    {
        ItemKey: "edit",
        ItemDisplayName: "Edit",
        ItemIconName: "Edit",
        ItemAppearance: "Subtle",
        ItemIconStyle: "Regular"
    },
    {
        ItemKey: "delete",
        ItemDisplayName: "Delete",
        ItemIconName: "Delete",
        ItemDisabled: true,
        ItemAppearance: "Subtle",
        ItemIconStyle: "Filled"
    },
    {
        ItemKey: "info",
        ItemDisplayName: "Info",
        ItemIconName: "Info",
        ItemAppearance: "Subtle",
        ItemIconStyle: "Regular"
    }
)

これは Table 関数を利用して、以下のようなテーブルを作って、ツールバーのデータソースにしているといった感じです。
1行目(太字の部分)が項目名で、2行目以降がツールバー内の各ボタンのデータです。項目名はツールバーのプロパティの名前で、このデータで各プロパティを設定しているといった状態です。空白の部分は何も設定されていません。

ItemKey ItemDisplayName ItemIconName ItemDisabled ItemAppearance ItemIconStyle ItemTooltip
new New Add Primary Regular Add new item
edit Edit Subtle Regular
delete Delete TRUE Subtle Filled
info Info Info Subtle Regular

各プロパティの意味は次の通りです。

プロパティ名 役割 備考
ItemKey 各ボタンの一意な識別子
ItemDisplayName 各ボタンの表示テキスト
ItemIconName 各ボタンの表示アイコン。空白の場合は何も出ない 利用できるアイコンはモダンコントロールのアイコンのみ。
ItemDisabled 各ボタンの無効化。Trueだと無効になり、操作できなくなる。空白の場合、False と認識される
ItemAppearance 各ボタンの種類。 モダンコントロールのボタンと同様の種別が利用できる
ItemIconStyle 各ボタンのIconStyle。種別はRegular と Filled の2種類で、Regularはアイコンの縁取り、Filled は塗りつぶしです ココだけモダンコントロールのボタンとは異なるので注意!
ItemTooltip 各ボタンにマウスホバーした時に出てくる説明文。空白の場合は何も出ない

ItemIconStyle の種別の違いは下図の通りです。

image.png

ItemTooltip は下図のような形で表示されます。

image.png

なので、見た目を制御するには Items プロパティの中にある Table 関数の式に入っている値を編集すれば良いということです。次からは想定されるカスタマイズ方法を説明します。

ボタンの表示テキストの変更

New や Edit といった各ボタンの表示テキストを変更する場合は、Item プロパティ内の式から ItemDisplayName を変更します。

image.png

image.png

各ボタンのアイコンの変更

アイコンを変更したい場合は Item プロパティ内の式から ItemIconName を変更します。

image.png
image.png

アイコンの名前が分からない場合は以下の手順で調べることができます。

  1. モダンコントロールのボタンを挿入する
    image.png

  2. アイコンプロパティのプルダウンで使いたいアイコンを選択
    image.png

  3. アイコンの名称を確認

    image.png

    ※画面上部のプロパティからコピーすると正確です。

    image.png

ボタンの有効化 / 無効化の制御

各ボタンは既定で有効化されていて、ItemDisabled が True のものだけが無効化される仕組みです。

image.png

無効化は、とある条件の時だけ無効化したいという要件がほとんどだと思います(だってずっと無効だったらボタンを置いておく必要性ないもの……)このようなケースの場合は ItemDisabled を変数でコントロールする必要があります。
こちらのスクリーンショットで _locMode というコンテキスト変数の値が edit だった時だけボタンを有効化し、edit 以外の値の場合はボタンを無効化するという制御をしています。

image.png

変数 _locMode には各ボタンをクリックした時に、そのボタンの ItemKey を入れるように設定すると、このような制御が実現できます。
ボタンをクリックした時の処理は OnSelect プロパティなので、以下のように変数の更新を仕込んでいます。

UpdateContext({_locMode:Self.Selected.ItemKey});

image.png

クリックしたボタンによって処理を変える方法

ツールバーの各ボタンをクリックした時の処理は OnSelect プロパティに書きます。各ボタンに対して OnSelect プロパティがあるのではなく、ツールバーに対して OnSelect プロパティがあるだけなので、どのボタンを押したら、どのような処理をするかを Switch 関数で制御する必要があります。
既定では以下のような式が入っていますので、これをご自身の要件に合わせてカスタマイズすれば良いと思います。

image.png

私が1つ前の記事で作っていた入力フォームの場合は以下のようにカスタムしています。

Switch(
    Self.Selected.ItemKey,
    //Newボタンを押したとき
    "new",
    //フォームを新規作成モードにし、ギャラリーの選択を解除
    NewForm(フォーム名);Reset(ギャラリー名),

    //Deleteボタンを押したとき
    "delete",
    //ギャラリーで選択&フォームで表示されているデータを削除
    Remove(主催一覧,ギャラリー名.Selected)
)

まとめ

いかがでしたか?
従来、このようなツールバーを再現するにはボタンコントロールを複数配置して、グループ化して……とかなり手間がかかっていました。しかし今回ツールバーがコントロールとして実装されたことで、開発工数を大幅に削減できるようになりました。
ぜひ使ってみてくださいね!!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?