掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ListViewで特定の値に一致する場合に太字するには? (ID:44870)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>なぜか「no と user_id 」の二つだけが太字になるのが謎です・・・。 これって一行全部太字になるはずが、no と user_id だけが太字、コメント と date が 標準のまま、ということですよね? 通常、一行全部を同じフォント属性にするならこれで良いと思うのですが…。 うーん、テーマとかメイリオとかClearTypeとかチェックしましたが、こちらでは再現しない のですよー。 (Delphi 6 Personl/XE4、WindowsXP) 一応、OnCustomDrawSubItemも加えたらどうなるか、やってみて下さい。 オブジェクトインスペクタへのイベントハンドラの登録をお忘れなく。 ※数字かどうかのチェック方法を、あえて変えてみました。 procedure SetLVItemFont(ACustomListView: TCustomListView; AListItem: TListItem); var LV: TListView; PL: Integer; begin if AListItem.SubItems.Count<4 then Exit; // SubItems[3](Premium)が無いなら処理しない if not TryStrToInt(AListItem.SubItems[3], PL) then Exit; // 数字以外なら処理しない LV:=ACustomListView as TListView; case PL of 1: LV.Canvas.Font.Style:=LV.Font.Style+[fsBold]; // LV.Canvas.Font.Style+[fsBold] だと変わるか?? 2: LV.Canvas.Font.Color:=clRed; end; end; procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean); begin SetLVItemFont(Sender, Item); end; procedure TForm1.ListView1CustomDrawSubItem(Sender: TCustomListView; Item: TListItem; SubItem: Integer; State: TCustomDrawState; var DefaultDraw: Boolean); begin SetLVItemFont(Sender, Item); end; TListItem.Dataを使う方法も簡単ですから、ぜひトライしてください。 そうすれば、冒頭にあるチェックのための2行も不要になります。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.