はじめして。
Delphy初心者なのですが、
TListItem.SubItems.ADD([格納する文字列(TStringList)])にて
リストで表示する文字の表示色を変更したいのですが、
表示色の設定方法がわかりません。
すいませんがよろしくお願いします。
環境は、
OS:Windows2000Server
ソフトは、Delphi5です。
https://www.petitmonte.com/bbs/answers?question_id=624
ここを参考にしてください。
Sender.Canvas.Font.Colorを変更すればいいと思います。
それと、SubItemsはTStringsじゃありませんでしたっけ?(似たようなもんですが
お答えいただきありがとうございます。(返事が送れまして申し訳ありません)
アドバイスにより、
(例)TListItem.SubItems.Sender.Canvas.Font.Color = clBlue;
のように、変更を加えてみましたが、コンパイルすることができませんでした。
すいませんが、もう少し詳しく教えてもらえないでしょうか。
よろしくお願いします。
TListViewの各要素のフォント色を、単純な設定で変えることは出来ません。
OnDrawItemなどのイベントで、自前で描画する必要があります。
https://www.petitmonte.com/bbs/answers?question_id=1092
こちらのほうが参考になるかと。
procedure TMainForm.ListView1CustomDrawSubItem(Sender: TCustomListView;
Item: TListItem; SubItem: Integer; State: TCustomDrawState;
var DefaultDraw: Boolean);
begin
if SubItem = 1 then
Sender.Canvas.Font.Color := clRed;
end;
うちはこれでちゃんとコンパイルも通り、文字色も変わりましたよ。
他にも
if Odd(Item.Index) then
Sender.Canvas.Brush.Color := clRed;
とすればIndexが奇数の行(見た目は偶数番目の行)の背景が赤くなります。
今回は質問がSubItemsに関するものだったので
Captionに関してならばにしのさんの紹介してくださったほうが参考になると思います。
独り言
if Item.SubItems[0] = 'んぽ' then
とするとEStringListErrorが出るのは何でだろう。
いろいろと仕事が忙しくて返事が送れて申し訳ありませんでした。
アドバイスにより、OnCustomDrawSubItemイベントを使うことによって
ListView内の項目のフォントの色を変えることができました。
ありがとうございました。
ツイート | ![]() |