TVirtualStringTree から次のような結果を得ようとしています。
TVirtualStringTree
(Mike Lischke によるメインの Virtual Treeview コントロール) を直接使用するか、それをサブクラス化して継承されたコントロールを変更するか、 TVirtualDrawTree
.
これが私が得ることができるものであり、私が直面している問題を示しています:
私が抱えている問題は、列 0 のテキストが仮想ツリービュー コントロールの水平領域全体を占めるように見えないことです。高度なデモには仮想ツリービュー デモがあり、複数行のテキストが表示され、必要なことを行っているように見えますが、ヘッダー行の下に必要な詳細列 (ノードとして表示) と組み合わせて適用する方法がわかりません。ノード、写真のノード)。
これが私が試したものです:
- BeforeCellPaint イベントの ContentRect.Right を変更します。
- で設定
toGridExtensions
しTreeOptions.MiscOptions
ます。
contentRect を変更しようとした方法を示すコード サンプルを次に示します。
procedure TForm1.VirtualStringTree1BeforeCellPaint(Sender: TBaseVirtualTree;
TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
CellPaintMode: TVTCellPaintMode; CellRect: TRect; var ContentRect: TRect);
var
level:Integer;
begin
level := VirtualStringTree1.GetNodeLevel(Node);
if (level=0) then
Inc( ContentRect.Right, 300);
end;
アップデート:
以下で受け入れられた回答を使用すると、次のようになります。