4Dのリストボックスで、文字に色を付ける方法

リストボックス : 文字に色を付ける方法

行全体が同じ色でいいなら、プロパティで「行フォントカラー配列」に、たとえば名前が「vKO01_lstKO_FontColors」のようなlongintの配列を用意して、プロパティに指定します。同様に背景色も行単位で指定することができます。

listbox_properties

それでは、「この行のこの列だけ赤色で表示したい」場合はどうすればいいのでしょうか。次です。

1.リストボックスのオブジェクトプロパティで「マルチスタイル」をチェック

listbox_column_properties

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タグを指定/表示できるようになります。

listbox_color

例では、vKO01_lstKO_Last_CH_DATE_strの列を表示して、日付型であるvKO01_lstKO_Last_CH_DATE列は非表示にしています。

元のサンプルは4D社からv13のソースを入手、v15でも動作確認済みです。