VirtualTreeView no Delphi 2010

 

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;
 
 
 

1 Comments

 
  1. Mauro Otoni disse:

    Caro Cesar, Estou sempre acompanhando seu blog sei que seu tempo é limitado porém tomei a liberdade de lhe fazer uma pergunta.: Tenho dois projetos semi prontos um em Delphi For PHP e um site criado no joomla.
    Existe a possibilidade de integrar estes dois, já li a respeito do “jumi” ele executa scripts PHP externo ao joomla, porem não consegui fazer esta integração, o “jumi” não encontra a VCL. Se você souber de pelo menos um caminho, e puder me dar uma dica. Valeu. Sds.

 

Leave a Comment

 

You must be logged in to post a comment.