A VirtualTreeView  tem um bug quando utilizada com temas que causa um AV, a correção é bem simples, na unit VirtualTrees.pas procure pelo método local “procedure FillBitmap (ABitmap: TBitmap);”  e altere a linha

if not (coParentColor in FHeader.FColumns[FHeader.FMainColumn].FOptions) then

para:

if (FHeader.FMainColumn > -1) and not (coParentColor in  FHeader.FColumns[FHeader.FMainColumn].FOptions) then

o método completo ficou assim:

  procedure FillBitmap (ABitmap: TBitmap);
  begin
    with ABitmap, Canvas do
    begin
      Width := Size.cx;
      Height := Size.cy;
      if IsWinVistaOrAbove and (tsUseThemes in FStates) and (toUseExplorerTheme in FOptions.FPaintOptions) then
      begin
        if (FHeader.FMainColumn > -1) and not (coParentColor in FHeader.FColumns[FHeader.FMainColumn].FOptions) then
          Brush.Color := FHeader.FColumns[FHeader.FMainColumn].Color
        else
          Brush.Color := Self.Color;
      end
      else
        Brush.Color := clFuchsia;
      Transparent := True;
      TransparentColor := Brush.Color;
      FillRect(Rect(0, 0, Width, Height));
    end;
  end;
Bookmark and Share: