[delphi-users:2342] ListViewのサブアイテム色づけの疑問

208 views
Skip to first unread message

Gracix [takefumi-o]

unread,
Nov 24, 2011, 4:02:35 AM11/24/11
to delphi...@freeml.com
こんにちは太田です。


TListViewをvsReportにして項目を描画しています。
サブアイテムをいくつか追加し、Excelの様な表示にしています。


カラム1が0のものを赤文字にしたいと思い以下のように書きました。

OnCustomDrawSubItemハンドラに

case SubItem of
1 :begin
if ListView1.SubItems[0] = '0' then
ListView1.Canvas.font.Color := clRed;
else
ListView1.Canvas.font.Color := clWindowText;
end;

上記を実行するとカラム1が0のものはカラム1から最後のカラムまでが赤文字になってしまいます。


ただ、elseを
ListView1.Canvas.font.Color := clBlack;
とすると、カラム1のみが赤文字になり残りは黒文字になります。


ここで質問なのですが、clWindowTextとはWindowsで設定した文字色の定数ではないのでしょうか?

なぜ黒で描画されないのか不思議です。

原因がお分かりになる方は教えてください。


太田剛文


MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
練習や試合の予定調整は「とっとと決め太郎」におまかせ!
http://ad.freeml.com/cgi-bin/sa.cgi?id=h8RAK
-----------------------------------------------------[freeml by GMO]--

KHE00221

unread,
Nov 25, 2011, 10:34:14 AM11/25/11
to delphi...@freeml.com

ListView1.Canvas.font.Color := clRed;
で ListView に反映される。

でも ListView1CustomDrawSubItem に飛んでくるとき Canvas.Font.Color は毎回
clWindowText
Canvas.Font.Color に clWindowText を設定しても同じなので ListViewには 反映さ
れない

で前回設定した clRed で描画される

ListView1.Canvas.font.Color := clWindowText;
の前に他の色を設定すれば clWindowText になる

たぶん こんなところ

こんにちは太田です。


TListViewをvsReportにして項目を描画しています。
サブアイテムをいくつか追加し、Excelの様な表示にしています。


カラム1が0のものを赤文字にしたいと思い以下のように書きました。

OnCustomDrawSubItemハンドラに

上記を実行するとカラム1が0のものはカラム1から最後のカラムまでが赤文字になっ
てしまいます。


ここで質問なのですが、clWindowTextとはWindowsで設定した文字色の定数ではない
のでしょうか?

なぜ黒で描画されないのか不思議です。

原因がお分かりになる方は教えてください。


太田剛文


MLホームページ: http://www.freeml.com/delphi-users

MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
【おしゃれ泥棒】学園祭イベント実施中♪
http://ad.freeml.com/cgi-bin/sa.cgi?id=h9qp4

Gracix [takefumi-o]

unread,
Dec 2, 2011, 3:44:25 AM12/2/11
to delphi...@freeml.com
太田です。


> ListView1.Canvas.font.Color := clRed;
> で ListView に反映される。
>
> でも ListView1CustomDrawSubItem に飛んでくるとき Canvas.Font.Color は毎回
> clWindowText
> Canvas.Font.Color に clWindowText を設定しても同じなので ListViewには 反映さ
> れない
>
> で前回設定した clRed で描画される


なるほどなんとなくわかってきました。

clWindowTextはちょっと気をつけないといけませんね。

ありがとうございました。


太田


MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
使い方はいろいろ♪一部のメンバーだけにMLメールを送ろう!
http://ad.freeml.com/cgi-bin/sa.cgi?id=hBahS

Reply all
Reply to author
Forward
0 new messages