Einzelnen Beitrag anzeigen

a.def
(Gast)

n/a Beiträge
 
#1

Virtual String Tree Node-Text versetzen?

  Alt 14. Jan 2017, 12:45
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;

Geändert von a.def (14. Jan 2017 um 12:59 Uhr)
  Mit Zitat antworten Zitat