リストビューのサブアイテムを変更するサンプルです。
カラムヘッダをクリックするとサブアイテムをボールド表示します。
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
ListView1->ViewStyle = vsReport;
for (int i=0;i<5;i++){
ListView1->Columns->Add()->Caption = "Field" + IntToStr(i);
}
for (int i=0;i<100;i++){
ListView1->Items->Add()->Caption = i;
ListView1->Items->Item[i]->SubItems->Add("項目0-" + IntToStr(i));
ListView1->Items->Item[i]->SubItems->Add("項目1-" + IntToStr(i));
ListView1->Items->Item[i]->SubItems->Add("項目2-" + IntToStr(i));
ListView1->Items->Item[i]->SubItems->Add("項目3-" + IntToStr(i));
ListView1->Items->Item[i]->SubItems->Add("項目4-" + IntToStr(i));
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ListView1CustomDrawSubItem(TCustomListView *Sender,
TListItem *Item, int SubItem, TCustomDrawState State,
bool &DefaultDraw)
{
if (Sender->Column[SubItem]->Tag==1){
Sender->Canvas->Font->Style = Sender->Canvas->Font->Style << fsBold;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ListView1ColumnClick(TObject *Sender,
TListColumn *Column)
{
TListView *lstv = (TListView*)Sender;
lstv->Column[Column->Index]->Tag = !lstv->Column[Column->Index]->Tag;
lstv->Refresh();
}
//---------------------------------------------------------------------------
DownLoad bcbtips077.lzh 4KB(BCB5)