リストボックス : 文字に色を付ける方法
行全体が同じ色でいいなら、プロパティで「行フォントカラー配列」に、たとえば名前が「vKO01_lstKO_FontColors」のようなlongintの配列を用意して、プロパティに指定します。同様に背景色も行単位で指定することができます。
それでは、「この行のこの列だけ赤色で表示したい」場合はどうすればいいのでしょうか。次です。
1.リストボックスのオブジェクトプロパティで「マルチスタイル」をチェック
2.表示列は文字列で宣言
ARRAY TEXT(vKO01_lstKO_Last_CH_DATE_str;0)
3.次のソースを追加
//KO01_lstKO_Make_LastCH
//20160818 wat
// リストボックスの配列作成、最後の調律日の属性で色を付ける
C_POINTER($pColumn5) //調律日(文字列)
$pColumn5:=OBJECT Get pointer(Object named;”vKO01_lstKO_Last_CH_DATE_str”)
C_LONGINT($sizeOfAry;$i)
$sizeOfAry:=Size of array(vKO01_lstKO_ID)
// 20160326 wat 最終調律日を表示
ARRAY DATE(vKO01_lstKO_Last_CH_DATE;$sizeOfAry)
ARRAY TEXT(vKO01_lstKO_Last_CH_DATE_str;$sizeOfAry)
ARRAY TEXT(vKO01_lstKO_Last_CH_KUBUN;$sizeOfAry)
// 会社は赤色で表示
For ($i;1;$sizeOfAry)
vKO01_lstKO_Last_CH_DATE{$i}:=CH_DATE_last_byKO_ID (vKO01_lstKO_ID{$i})
vKO01_lstKO_Last_CH_KUBUN{$i}:=CH_KUBUN_last_byKO_ID (vKO01_lstKO_ID{$i})
If (vKO01_lstKO_Last_CH_KUBUN{$i}=”会社”)
$pColumn5->{$i}:=”<SPAN STYLE=\”color:#D81E05\”>”+String(vKO01_lstKO_Last_CH_DATE{$i})+”</SPAN>”
Else
$pColumn5->{$i}:=”<SPAN STYLE=\”color:#000000\”>”+String(vKO01_lstKO_Last_CH_DATE{$i})+”</SPAN>”
End if
End for
このように、リストボックスの列にマルチスタイルに指定すると、セルごとに異なるHTMLタグを指定/表示できるようになります。
例では、vKO01_lstKO_Last_CH_DATE_strの列を表示して、日付型であるvKO01_lstKO_Last_CH_DATE列は非表示にしています。
元のサンプルは4D社からv13のソースを入手、v15でも動作確認済みです。