![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Окраска ячейки в ListView
guru-guru © (2005-11-15 13:16:00)Помогите. Нужно в ListView закрасить ТОЛЬКО одну ячейку.
simpson (2005-11-15 15:30:00) [1]Не в примерах счастье. :)
Я вот при перерисовке листвью наткнулся на другую проблему.
Пример - что-то вроде этого:
procedure TForm1.FormCreate(Sender: TObject);
begin
ListView1.OwnerDraw := True;
end;
procedure TForm1.ListView1DrawItem(Sender: TCustomListView;
Item: TListItem; Rect: TRect; State: TOwnerDrawState);
begin
if odSelected in State then
with Sender.Canvas do
begin
Brush.Style := bsSolid;
Brush.Color := clRed;
Font.Style := [fsBold];
FillRect(Classes.Rect(Rect.Left, Rect.Top,
Rect.Left + Sender.Column[0].Width, Rect.Bottom));
DrawText(Handle, PChar(Item.Caption), Length(Item.Caption), Rect,
DT_WORDBREAK or DT_EXPANDTABS or DT_NOPREFIX or DT_LEFT or DT_VCENTER);
end
else
with Sender.Canvas do
begin
Brush.Style := bsSolid;
Brush.Color := clSilver;
Font.Style := [];
FillRect(Rect);
DrawText(Handle, PChar(Item.Caption), Length(Item.Caption), Rect,
DT_WORDBREAK or DT_EXPANDTABS or DT_NOPREFIX or DT_LEFT or DT_VCENTER);
end
end;
На форме листвью со стилем "репорт", если строка выбрана, то содержимое первой колонки закрашивается красным.
guru-guru (2005-11-15 15:27:00) [2]И на этом спасибо.
Джо (2005-11-15 15:19:00) [3]
> [3] guru-guru © (15.11.05 15:07)
> А примерчик можно?
Не можно. Некогда да и лень за тебя в Справку лезть.
guru-guru (2005-11-15 15:07:00) [4]А примерчик можно?
Джо (2005-11-15 14:49:00) [5]Попробуй сделать через механизм OwnerDraw
guru-guru (2005-11-15 14:03:00) [6]Блин, ну что неужели никто незнает?
Может есть аналоги данного компонента?