こんばんわ、ツリービューについて教えていただきたいことがあるのですが、
どなたか解決法をお願いします。
ツリービューに普通に要素を追加していくと下のようになりますよね?
◎アイテム1
◎アイテム2
−◎親1
☆子1
☆子2
☆子3
☆子4
☆子5
−◎親2
☆子1
☆子2
☆子3
☆子4
☆子5
これを
◎アイテム1
◎アイテム2
−◎親1
☆子1
☆子2
☆子3
☆子4
☆子5
−◎親2
☆子1
☆子2
☆子3
☆子4
☆子5
のようにしたい(子のない要素は左に寄せる)のですが、こんなことできますか?まったくやり方がわからないのですが。。
◎、☆はイメージ(アイコン)です。
よろしくおねがいします。
親ノードと同じ位置に表示したい?
それではツリーの意味がない気がしますが。。。
−◎親1、2を◎アイテム2の子にするよう考えるのが自然では。
望みどおりの表示になるかはわかりませんが、AdvancedCustomDrawItemで自力描画すればある程度はできそうに思います。
>−◎親1、2を◎アイテム2の子にするよう考えるのが自然では。
いや、親1,2は絶対表示させたいのです。親1,2の子は隠せたほうがいいのですが。
上から2行(アイテム1,2)だけ左に寄せたくて、それ以降は子があろうが無かろうが普通どうりに表示したいのです。
子があると「+」が表示されてちょうどいいのですが、子がないと左側にスペースが余って都合が悪いのです。
アイテム1,2に子の要素が追加されることはありません。
どなたか、お願いいたします。
>AdvancedCustomDrawItemで自力描画すれば
ということで。
object ListBox1: TListBox
BevelEdges = [beLeft, beTop, beRight]
BevelInner = bvLowered
BevelKind = bkTile
BorderStyle = bsNone
end
これをTreeViewの手前に配置したらどう?
Fusaさん、ありがとうございます。
確かにうまくいったのですが、文字列の左側にはアイコンを配置したいのです。
あと一歩なのに。。
AdvancedCustomDrawItemはちょっとわからないので・・
どうか、うまい方法がありましたらお願いします。
◎アイテム1
◎アイテム2
−◎親1
同じレベルのノードでテキストの開始位置を変えることは、編集用のEditやヒントの開始位置まで変更しなくてはいけないのでTTreeViewでは結構しんどいかと思います。簡単なアイディアは思いつきません。
そうですか。。
listboxにアイコンを表示させることもできないのでしょうか?
凄く簡単にできます。
詳しくはオーナードローを調べてみてください。
ツイート | ![]() |