私はこれらの2つの事柄を理解しようとしています。Delphi VirtualStringTree Draw
1)コード内の行全体の色を変更するにはどうすればよいですか?同様に、VTがListViewのように見えるときは?
2)どのようにしてチェックボックスを字下げすることもできますか?私の子供のチェックボックスと同じ "インデント?"私のルートチェックボックスとして。
ありがとうございます!
私はこれらの2つの事柄を理解しようとしています。Delphi VirtualStringTree Draw
1)コード内の行全体の色を変更するにはどうすればよいですか?同様に、VTがListViewのように見えるときは?
2)どのようにしてチェックボックスを字下げすることもできますか?私の子供のチェックボックスと同じ "インデント?"私のルートチェックボックスとして。
ありがとうございます!
1)toFullRowSelect
をTreeOptions.SelectionOptions
に追加してください。
2)私はそれに答えることはできません。
おそらく
toFixedIndent
を試してください。
2)いいえ、toFixedIndentはすべてのノードを同じ位置にインデントします –
@daemon_x:ありがとう、私はそれを修正しました。私はちょうど推測していた。 – jpfollenius
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;
へようこそSO! 2つの質問は、SOに関する2つの質問に対応する必要があります。あなたの質問の1つに誰かが答えを知っていたらどうなりますか?それはあなたの組み合わせた質問に対する答えとなりますか? – jpfollenius
1)そして、行全体を選択するか、各行の背景を変更しますか? –
あなたは16歳のコンピュータウィズ*(ic)になるかもしれませんが、本当に、ここであなたの本当のアカウントを使用してください。 –