4D 文字数に応じてフォントサイズを自動的に小さくする

4D 文字数に応じてフォントサイズを自動的に小さくする

フィールドや変数は四角形の領域を指定して配置します。そして表示する文字列がこの四角形に収まるようにフォントサイズを指定します。しかし文字列が長い場合は文字が切れてしまいます。

リストボックスの場合は、ユーザが列幅をドラッグして広げたり、v16以降で使えるようになったエリプシスを指定することで文字切れの問題を緩和させることができます。

画面表示の場合はそれで問題はないのですが、印刷の場合は問題になります。あとで広げたりすることができないからです。

そこで、文字数によって、動的にフォントサイズを指定する方法を紹介します。フォームがロードされた時に表示したい文字列に合わせて、入り切らない場合はフォントサイズを小さくします。次のようなプログラムです。

このプログラムをフォームロード後「On Load」イベント、印刷時であれば「On Printign Detail」イベントで実行します。印刷時の例で説明します。

これで「詳細」部分が印刷される時。フィールドの幅を超える文字列のフォントサイズが自動的に小さくなります。

[注意]
「On Printing Detail」イベントはデフォルトでオンになっていて、オフにすることができません。明示的にオンにする必要はありません。デフォルトでオフになっている思い込んでいたために探してしまいました。