Здравствуйте, yaser, Вы писали:
[Skip]
Y>Проблема в том, что в 3 колонке текст почему-то прорисовывается жирным стилем.
Y>Как с этим бороться?
Действительно такая проблема есть.
Можна решить ее так:
procedure TForm1.ListView1CustomDrawSubItem(Sender: TCustomListView;
Item: TListItem; SubItem: Integer; State: TCustomDrawState;
var DefaultDraw: Boolean);
var
aRect : TRect;
aCanvas : TCanvas;
K: Integer;
begin
if SubItem = 1 then
begin
{ вариант поточней вычислить прямоугольник }
aRect := Item.DisplayRect(drBounds);
aRect := Rect (0, aRect.Top, Sender.Column [SubItem].Width, aRect.Bottom);
for K := 0 to SubItem - 1 do
OffsetRect (aRect, Sender.Column [K].Width, 0); { может есть другой способ... }
aCanvas := TCanvas.Create;
try
{ делаем свою Canvas, борландовцы что то намутили (горе от ума :) ) }
aCanvas.Handle := GetDC (Sender.Handle);
try
aCanvas.Pen.Color := clBlack;
aCanvas.Pen.Style := psSolid;
aCanvas.Brush.Color := clGray;
aCanvas.Brush.Style := bsSolid;
aCanvas.FillRect(aRect);
aCanvas.Rectangle(aRect.Left, aRect.Top, aRect.Right, aRect.Bottom);
DefaultDraw := False;
finally
ReleaseDC(Sender.Handle, aCanvas.Handle);
aCanvas.Handle := 0;
end;
finally
aCanvas.Free;
end;
end;
end;
Удачи!