Treeviewの個別テキスト・フォントの色指定

解決


Toshi  2007-07-05 12:03:05  No: 26957  IP: 192.*.*.*

こんにちわ

TreeView.items[0].item[5].text:='test';

上記のように、TreeViewに追加した多数行のうち、
特定のテキスト行のみのフォントの色を指定する方法がわかりません。
すべてのフォントの色なら下記でいいと思うのですが。

TreeView.font.color :=clRed;

よろしくお願いします。

編集 削除
igy  2007-07-05 14:30:02  No: 26958  IP: 192.*.*.*

OnCustomDrawItem イベント

procedure TForm1.TreeView1CustomDrawItem(Sender: TCustomTreeView;
  Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
    if Node.AbsoluteIndex = 0 then
        TTreeView(Sender).Canvas.Font.Color := clBlue
    else
        TTreeView(Sender).Canvas.Font.Color := clBlack;
end;

のような感じで、色を指定するのはどうですか?

編集 削除
Toshi  2007-07-05 19:37:02  No: 26959  IP: 192.*.*.*

igyさんRESありがとうございます。

今回の目的は、予めTreeViewのリストに追加されているテキストを
別のルーチンで順次実行するのですが、その際、現在実行されている
部分を示すため、TreeViewリストの該当行の色(背景orFont)を変えたい
と思ったのです。  他のアプリで同じような表示があったので、
DelphiのTreeviewでも出来るのかとプロパティーなど調べたのですが、
わかりませんでした。

提示の方法だと、Treeviewのリストをクリックした際、その行の
色を変えるというものですね。

もし、他の方法が、お願いします。

編集 削除
igy  2007-07-05 19:43:22  No: 26960  IP: 192.*.*.*

>提示の方法だと、Treeviewのリストをクリックした際、その行の
>色を変えるというものですね。

例では、クリックに関係なく、
一番上のが青で、それ以外は黒で表示されるコードを書いたのですが。

編集 削除
Toshi  2007-07-05 21:17:44  No: 26961  IP: 192.*.*.*

すみません。  
早とちりしてしまいました。
うまくいきました。

考えてみれば、GridのOnDrawCellのような機能に思いつか
なければなりませんでした。うかつでした。

お手数をかけました。
ありがとうございます。

編集 削除