セグメント間文字


セグメント間文字

文字ベースのディスプレイにおいて、「セグメント間文字」は、特定の情報を表すためにオンまたはオフにできる追加要素です。これは「メイン」の文字の一部ではありません。たとえば、時計には「:」や「/」のような区切り要素があります。ディスプレイによっては、小数を表示する場合のために、すべての文字の後ろにドット(「.」)が付与されているものもあります。

セグメント間文字を表示する

APL-Tドキュメント内のセグメント間文字は通常の方法でターゲットにできますが、そのためには、それらの文字がどこにあり、何を表示できるかを開発者が把握している必要があります。たとえば、8文字の時計が表示されるデバイスがあるとします。このデバイスは、日付をYYYY/MM/DDの形式で表示できます。8文字はYYYYMMDDを指し、「/」を表示できるセグメント間文字が2文字あります。

デバイスの機能を把握している開発者は、Textコンポーネントを含むAPL-Tドキュメントを作成して、コンポーネントのtextプロパティを「2016/02/07」に設定できます。ランタイムは、「/」文字のレンダリングにセグメント間文字を使用します。

ただし、ドキュメントにセグメント間文字が(レイアウトで指定された位置に)出現しても、ディスプレイ上のその位置にセグメント間文字がない場合、該当する文字はランタイムによって無視されます。

アルゴリズム

ここでは、セグメント間文字を処理するアルゴリズムを説明します。説明では次の用語を使用します。

  • 「ドキュメント文字」は、APL-Tドキュメントから取得される文字です。
  • 「ディスプレイの文字スロット」は、実際のハードウェア上の位置です。前述のように、「実スロット」と「セグメント間スロット」があります。
  • 「実文字セット」は、「実スロット」に表示できる文字です。
  • 「セグメント間文字セット」は、「セグメント間スロット」に表示できる文字です。

ステップ1

ランタイムは、次の書き込み先となるディスプレイ文字スロットを追跡します。開始時点では、これはディスプレイの左上のスロットになります。ランタイムは、行内を左から右に進んだ後、次の行の左端に移動します。

ステップ2

ランタイムは、次にレンダリングするドキュメント文字を決定します。決定に際しては、個々のコンポーネントに指定されたレイアウトルールに従います。

ステップ3

ドキュメント文字を表示するか、スキップするか、省略するかを決定します。ランタイムは、デバイスの機能、実スロットとセグメント間スロットの位置、表示できる文字を把握しています。決定には次のマトリックスが使用されます。

ドキュメント文字 ディスプレイの実スロット ディスプレイのセグメント間スロット
実文字セットに含まれている 表示 次のスロットに進んでステップ3を繰り返す
セグメント間文字セットに含まれている 省略 表示
どちらでもない スペースを表示 次のスロットに進んでステップ3を繰り返す

最後のスロットより後の位置に達すると、ドキュメント全体のレンダリングが停止します。

「NN:NN」のような数字の時刻データの表示をサポートするデバイスがあるとします。Nは0~9です。ドキュメントには「1:24」が指定されています。このコンテンツを左揃え(デフォルト)で使用すると、結果は「124」となります。これは、「:」が省略され、本来の位置に何も表示されないためです。

一方、同じコンテンツを右揃えで配置すると、「 1:24」と表示されます。


このページは役に立ちましたか?

最終更新日: 2025 年 12 月 17 日