ウディタにはスクロールするテキストボックスが標準では搭載されていないので、長文を表示したいときは何かと不便な場合がありました。そこで、今回スクロール可能なテキストボックスのコモンイベントをサクッと作成しました。
コモンイベントの仕様
- 文字列の切り出し機能を使い、テキストを必要な部分だけ切り出して表示する。
- 試作品につき、コモン内で必要な数値を直接指定している。そのため汎用性を高めるには別途改造が必要。また、今回は自動改行機能は省略した。
- 表示するテキストに余分な改行が入ると上手く機能しないことがある。
以下、コモンイベントの処理のメモです。
行数カウント(50行~)
内容の文字列を1行ずつ切り出していき、その回数を記録する(=行数)。切り出した文字がないならループを中断する。
スクロールバーの移動量計算(78行~)
- スクロールする必要がないときは移動量0
- スクロールする必要があるとき、その移動量は「バーが移動可能なスクロール領域」を「スクロールできる行数の上限」で割った値となる。ここで、「スクロールできる行数の上限」は、全行数から表示する行数を引いた値。
スクロールバーの縦幅計算(89行~)
縦幅は「テキストの縦幅(=バーが100%のとき)」×「テキストの縦幅÷(フォントサイズ×全行数)」で計算する。
スクロール処理(127行~)
- 上にスクロールした場合、一旦表示内容を初期化した後、表示する行までの行を削除する。さらに、その後表示する分だけ行を切り出し、表示用の文字列変数に代入する。
- 下にスクロールした場合、今まで切り出した文字列から1行切り出して表示用文字列に追加する。その後、表示に使う文字列変数から上位置行を切り出して削除する。
コモンイベントのダウンロード
今回もコモンイベントを配布します。利用規約の範囲内でご利用ください。
※Googleドライブに飛びます。右上のダウンロードマークをクリックしてください。