Hallo
Ich verwende zur Datenanzeige die Komponente VirtualStringTree. Zur besseren Übersicht hinterlege ich die einzelnen Hauptknoten abwechslungsweise farbig blau-weiss-blau-weiss-usw.... (nicht wegen Herrn Stoiber
).Die Unterknoten haben die gleiche Farbe wie der Hauptknoten. Soweit kriege ich das auch hin.
Nun möchte ich die Unterknoten aber in einer anderen Schriftgrösse anzeigen. Auch das geht mit der untenstehenden Procedure, nur wenn die Kinderknoten ausklappen steigt die CPU-Auslastung auf 95-99%. Sobald ich alle Unterknoten wieder einklappe ist die CPU-Auslastung unter 5%.
Ich bin mir sicher, dass es eine einfache Lösung gibt. Nur welche?
Delphi-Quellcode:
procedure Tfrm_Pos.vstPositionBeforeCellPaint(Sender: TBaseVirtualTree;
TargetCanvas: TCanvas; Node: PVirtualNode; Column: TColumnIndex;
CellRect: TRect);
begin
if Node.Parent <> Sender.RootNode then
begin
TVirtualStringTree(Sender).Font.Size := 8;
if not Odd(Node.Parent.Index) then TargetCanvas.Brush.Color := clWhite
else TargetCanvas.Brush.Color := kon_color1;
end
else
begin
TVirtualStringTree(Sender).Font.Size := 12;
if not Odd(Node.Index) then TargetCanvas.Brush.Color := clWhite
else TargetCanvas.Brush.Color := kon_color1;
end;
TargetCanvas.FillRect(CellRect);
end;
Danke für Eure Hilfe
Gruss