XヘッダーとXルートを持つvirtualstringtree(グリッドラインが有効)があります。中央にあり、すべてのヘッダー(独立)を通過するテキストが1つしかないルートに、子(少なくとも1つ)を追加したいと思います。したがって、ヘッダーなどのサイズを変更しても、テキストは常にVirtualStringTreeの実際のクライアントサイズに揃えられます。
これは可能ですか?もしそうなら、どのように?
XヘッダーとXルートを持つvirtualstringtree(グリッドラインが有効)があります。中央にあり、すべてのヘッダー(独立)を通過するテキストが1つしかないルートに、子(少なくとも1つ)を追加したいと思います。したがって、ヘッダーなどのサイズを変更しても、テキストは常にVirtualStringTreeの実際のクライアントサイズに揃えられます。
これは可能ですか?もしそうなら、どのように?
これはセル結合のように聞こえます。これについては、ここで説明します。たとえば、ソリューションを に含める場合toAutoSpanColumns
ですTreeOptions.AutoOptions
。
中央揃えのテキストが必要な場合は、OnDrawText
それに応じてオーバーライドします。何かのようなもの:
procedure TForm1.VirtualStringTree1DrawText(Sender: TBaseVirtualTree;
TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
const Text: WideString; const CellRect: TRect; var DefaultDraw: Boolean);
var
r: TRect;
begin
r := CellRect;
Windows.DrawTextW(TargetCanvas.Handle, PWideChar(Text), Length(Text), r, DT_CENTER or DT_VCENTER);
DefaultDraw := False;
end;