...Im OnAfterItemErase pinsle ich dann den Zellhintergrund andersfarbig. Soweit auch ok. Das Problem dabei: Eigentlich müsste ich jede zweite Zeile grau und die anderen weiß machen. Also prüfe ich mit if Odd(Node.Index) {weiß} else {hellgrau}
die Zeilennummern. Leider ist Node.Index ebenenabhängig...
Grüße
Cody
Kann es sein, dass Dein Code in der falschen Procedure gelandet ist?
Teste doch mal
OnBeforeItemErase.
Delphi-Quellcode:
// OnBeforeItemErase
procedure TForm2.VSTBeforeItemErase(Sender: TBaseVirtualTree;
TargetCanvas: TCanvas; Node: PVirtualNode; ItemRect: TRect;
var ItemColor: TColor; var EraseAction: TItemEraseAction);
begin
// colorG, colorS = globale Boolean, man merkt sich die letzte Farbe
if colorG=true then
begin
ItemColor := clSilver; colorS:=true; colorG:=false;
end
else
begin
ItemColor := clGray; colorG:=true; colorS:=false;
end;
end;