Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Dibujando en un TListView (https://www.clubdelphi.com/foros/showthread.php?t=29374)

pepon386 20-01-2006 09:00:43

Dibujando en un TListView
 
Hola, foreros! A ver si alguno de vosotros puede hecharme una mano:

En un formulario tengo un TListView en el cual tengo la propiedad ViewStyle con el valor vsReport (para que salga parecido a un grid, con cabecera y varias columnas), con varias columnas definidas. En el evento OnCustomDrawSubItem tengo un pequeño algoritmo que dibuja un gráfico. Hasta aquí todo bien, pero en el momento en que en el evento OnCustomDrawItem intento que me cambie el color de las líneas pares (para que se vea mejor), me cambia el tamaño de la fuente de texto sin poderlo solucionar:
Código Delphi [-]
procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
var
  Rect: TRect;
begin
  if Item = nil then Exit;
  if (Item.Index > 0) and (Item.Index mod 2 = 0) then
  begin
    Rect := Item.DisplayRect(drBounds);
    ListView1.Canvas.Brush.Color := clAqua;
    ListView1.Canvas.FillRect(Rect);
  end;
  DefaultDraw := True;
end;

procedure TForm1.ListView1CustomDrawSubItem(Sender: TCustomListView;
  Item: TListItem; SubItem: Integer; State: TCustomDrawState;
  var DefaultDraw: Boolean);
begin
  if SubItem <> 6 then
  begin
    DefaultDraw := True;
    Exit;
  end;
  DefaultDraw := False;
  ...
  ... (código para dibujar)
end;
¿A alguno de vosotros se os ha planteado este problema o sabe como solucionarlo? Por cierto, uso Delphi 7.

pepon386 20-01-2006 09:36:28

Ya lo he solucionado. Debe ser que estaba un poco ofuscado, pues la solución era bien simple: En el evento OnCustomDrawItem me empeñaba en querer dibujar todo el recuadro:
Código Delphi [-]
 
ListView1.Canvas.Brush.Color := clAqua;
ListView1.Canvas.FillRect(Rect); <------ Esto sobra
cuando ésto no era necesario.

Saludos.


La franja horaria es GMT +2. Ahora son las 12:41:54.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi