Hallo,
ich habe gerade ein kleines Problem mit einem Listview.
ViewStyle steht auf vsReport und OwnerDraw auf true. Nun zeichne ich jedes Item einzeln. Allerdings möchte ich auch den Font verändern. Leider funktioniert dies nicht. Die entsprechende Codestelle ist makiert.
Delphi-Quellcode:
procedure TMainDlg.ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState;
var DefaultDraw: Boolean);
var
x,y,i:integer;
s:
string;
begin
with Sender
as TListView
do
begin
with Canvas
do
begin
if Item.
Index mod 2 = 1
then
begin
Brush.Color :=
rgb(240,240,255);
end
else
begin
Brush.Color :=
rgb(255,255,255);
end;
if Item.Selected
then
begin
Brush.Color :=
rgb(220,220,255);
Pen.Style := psDot;
Pen.Color := clGray;
end
else
begin
Pen.Style := psSolid;
Pen.Color := Brush.Color;
end;
Rectangle(Item.DisplayRect(drLabel).Left+2,Item.DisplayRect(drLabel).Top+2,
Item.DisplayRect(drBounds).Right-2,Item.DisplayRect(drLabel).Bottom-2);
SmallImages.Draw(Canvas,Item.DisplayRect(drIcon).Left,
Item.DisplayRect(drIcon).Top,Item.ImageIndex,dsTransparent,itImage);
x := Item.DisplayRect(drLabel).Left+4;
y := Item.DisplayRect(drLabel).Top+4;
Sender.Canvas.Font.Style := [fsBold];
// <---- Keine Reaktion!!!!
for i := 0
to Item.SubItems.Count-1
do
begin
s := Item.SubItems[i];
TextOut(x,y,s);
y := y + TextHeight(s);
end;
end;
end;
DefaultDraw := false;
end;
Ich habe zur verdeutlichung mal einen Screenshot angehängt...
Schonmal danke im vorraus,
Igel457