Ist es irgendwie möglich einen den Text eines Nodes im Virtual String Tree etwas weiter nach links zu setzen?
Genauer gesagt möchte ich das bei allen Nodes mit
Sender.GetNodeLevel(Node)
> 0 machen.
Ich weiß wie ich Texte und Hintergründe färbe aber obiges Problem bekomme ich nicht gelöst.
Edit
ich denke ich habe es geschafft. Nur ob schön, weiß ich nicht
Delphi-Quellcode:
procedure TForm1.VSTDrawText(Sender: TBaseVirtualTree; TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex; const Text: string; const CellRect: TRect; var DefaultDraw: Boolean);
var
DrawFormat: Cardinal;
R: TRect;
begin
if (Sender.GetNodeLevel(Node) > 0) and (Node.ChildCount = 0) then
begin
DefaultDraw := False;
R := CellRect;
R.Left := R.Left - TVirtualStringTree(Sender).Indent;
DrawFormat := DT_NOPREFIX or DT_VCENTER or DT_SINGLELINE;
Windows.DrawTextW(TargetCanvas.Handle, PWideChar(Text), Length(Text), R, DrawFormat);
end;
end;