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