私はこれらの2つのことを理解しようとしてきました:
1)コードで行全体の色を変更するにはどうすればよいですか?たとえば、VTがListViewのように見える場合はどうでしょうか。
2)チェックボックスもインデントするにはどうすればよいですか?私の子供はチェックボックスと同じ「インデント?」ルートチェックボックスとして。
ありがとう!
私はこれらの2つのことを理解しようとしてきました:
1)コードで行全体の色を変更するにはどうすればよいですか?たとえば、VTがListViewのように見える場合はどうでしょうか。
2)チェックボックスもインデントするにはどうすればよいですか?私の子供はチェックボックスと同じ「インデント?」ルートチェックボックスとして。
ありがとう!
1)
procedure VSTBeforeItemErase(
Sender: TBaseVirtualTree; TargetCanvas: TCanvas; Node: PVirtualNode;
ItemRect: TRect; var ItemColor: TColor;
var EraseAction: TItemEraseAction);
begin
EraseAction := eaColor;
ItemColor := clLime;
end;
2)各ノードのチェックボックスを個別にインデント設定することは私見では不可能です。ツリーには、すべてのノード (チェック ボックスを含む) のインデントを設定する Indent プロパティがあります。内部的には、AdjustCoordinatesByIndent メソッドと PaintCheckImage メソッドが呼び出されますが、どちらも非表示になっています。それらの 1 つを変更することは役に立ちますが、非常に具体的にする必要があります。独自のコンポーネントの子孫を作成するのが最善だと思います。
高度な例のプロパティ ページにあるものを作成する場合は、ツリー階層の複数のレベルにノードを追加する必要があります。
あなたのインスピレーションのために...
var CurrentNode: PVirtualNode;
CurrentSubnode: PVirtualNode;
begin
VirtualStringTree1.Indent := 50; // this increases indention for all nodes in the tree
CurrentNode := VirtualStringTree1.AddChild(nil); // create a node to the root
CurrentNode.CheckType := ctCheckBox; // check support of a node
CurrentSubnode := VirtualStringTree1.AddChild(CurrentNode); // create a subnode to your first node
CurrentSubnode.CheckType := ctCheckBox; // check support of a node
end;
1) に追加toFullRowSelectしてみてくださいTreeOptions.SelectionOptions。
2) 私はそれに答えることができません。多分試してみてくださいtoFixedIndent。