Привет. Рисую в листвью. Вопрос: как мне нарисовать текст так,чтобы у него был прозрачный фон? а то цвет браша изменил и все, он таким и остается... где ошибка? и как убрать тот текст, что рисует сам листвью? 8)
procedure TForm1.ListView1AdvancedCustomDrawSubItem(Sender: TCustomListView; Item: TListItem; SubItem: Integer; State: TCustomDrawState; Stage: TCustomDrawStage; var DefaultDraw: Boolean);
const Codes: array[TDisplayCode] of Longint = (LVIR_BOUNDS, LVIR_ICON, LVIR_LABEL, LVIR_SELECTBOUNDS);
var
Rect : TRect;
ColBrush : TColor;
X : integer;
value : integer;
begin
if not ListView_GetSubItemRect(TListView(Sender).Handle, Item.Index,SubItem, LVIR_BOUNDS,@Rect) then exit;
with Rect do
if SubItem=1 then
begin
TListView(Sender).Canvas.Brush.Style:=bsSolid;
value := StrToInt(Item.SubItems[0]);
ColBrush:=ListView1.Canvas.Brush.Color;
TListView(Sender).Canvas.Brush.Color:=clNavy;
TListView(Sender).Canvas.Pen.Color :=clNavy;
x := Round(((Right-Left)/100)* value + Left);
TListView(Sender).Canvas.Rectangle(Left+1,Top,x-1,Bottom-1);
TListView(Sender).Canvas.Brush.Color:=ColBrush;
TListView(Sender).Canvas.Font.Color := clLime;
TListView(Sender).Canvas.TextOut(x,Top,Item.SubItems[0]);
end;
TListView(Sender).Canvas.Font.Color := clBlack;
end;