フォントの設定とテキストの表示

プログラムは,特定のフォントでテキストを表示するためには,初期化されたフォントのうちのどのフォントを使用するのかを知らなくてはなりません。SETFONT は,初期化されたフォントのうちの 1 つを現在の (または活動状態の) フォントとします。SETFONT の構文を次に示します。

SETFONT(options)

この関数の引数は,希望のフォントを記述する文字コードから構成されています。この記述には,タイプフェイス,文字高と文字幅 (ピクセル単位),固定またはプロポーショナル,そしてボールドやイタリックなどの属性が含まれます。オプションについての詳細は,「SETFONT」を参照してください。次に例を示します。

	USE DFLIB
	INTEGER(2) index, numfonts
	numfonts = INITIALIZEFONTS ( )
	index = SETFONT('t''Cottage''h18w10')

これはタイプフェイスを Cottage に,文字高を 18 ピクセルに,文字幅を 10 ピクセルに設定します。

次の例は,タイプフェイスを Arial に,文字高を 14 ピクセルに設定し,プロポーショナルな間隔とイタリック体 (pi のコード) を使用するように指定します。

	index = SETFONT('t''Arial''h14pi')

SETFONT は,フォントの設定に成功すると,フォントの指標番号を返します。失敗すると負の整数を返します。問題の原因を調べるには GRSTATUS を呼び出します。この関数の返し値は,関数が失敗した理由を示しています。フォントを初期化する前に SETFONT を呼び出すと,実行時エラーが発生します。

SETFONT は,フォントの選択に使用されると,フォント情報を更新します。GETFONTINFO を使うと,現在選択されているフォントに関する情報を得ることができます。SETFONTfontinfo 型 (DFLIB.MOD に定義されている構造型) 中のユーザー欄を設定し,GETFONTINFO はユーザーが選択した値を返します。fontinfo には次のユーザー欄が含まれています。

	TYPE fontinfo
	  INTEGER(2) type	! 1 = TrueType, 0 = ビットマップ
	  INTEGER(2) ascent	! トップとベースライン間のピクセル間隔
	  INTEGER(2) pixwidth	! 文字幅 (ピクセル単位),0 = プロポーショナル
	  INTEGER(2) pixheight	! 文字高 (ピクセル単位)
	  INTEGER(2) avgwidth	! 平均文字幅 (ピクセル単位)
	  CHARACTER(32) facename	! フォント名
	END TYPE fontinfo

現在のフォント・パラメタを調べるには,GETFONTINFO を呼び出します。次に例を示します。

	USE DFLIB
	TYPE (fontinfo) font
	INTEGER(2) i, numfonts
	numfonts = INITIALIZEFONTS()
	i = SETFONT ( ' t ' 'Arial ' )
	i = GETFONTINFO(font)
	WRITE (*,*) font.avgwidth, font.pixheight, font.pixwidth

フォントを初期化し,いずれかのフォントを活動状態フォントにしたら,画面上にテキストを表示することができます。

フォントを選択した後に画面上にテキストを表示方法

  1. MOVETO を使って,テキストの開始位置を指定します。

  2. オプションとして,SETGTEXTROTATION を使ってテキストの表示角度を設定します。

  3. OUTGTEXT を使って,テキストを (現在のフォントで) 画面に送ります。

MOVETO は現在の描画位置を,渡されたピクセル座標に移動します。これがテキスト第 1 文字の左上隅の開始位置となります。SETGTEXTROTATION は,テキストの向きを 1 度単位で設定することができます。