У меня есть ListView (vsReport) и StringGrid, и что я хочу, если я нажимаю на какой-то элемент в ListView, то определенные ячейки в StringGrid должны менять цвета. Как мне это сделать?
Путь заполнен 1 (двигаться вверх) и 0 (двигаться вправо), он начинается в левом нижнем углу и заканчивается в правом верхнем углу, и я должен покрасить эти ячейки.
Спасибо за ответы, я справился со своей проблемой, но есть еще одна небольшая проблема, как я могу оставить текст в ячейках видимым? FillRect заполняет всю ячейку.
procedure TForm1.ListView1SelectItem(Sender: TObject; Item: TListItem; Selected: Boolean);
var aRect: TRect;
a,x,y:integer;
path:string;
begin
path:=ListView1.Items[Item.Index].Caption;
x:=0;
y:=StringGrid1.RowCount;
for a := 0 to length(path) do
begin
if path[a]='1' then y:=y-1 else x:=x+1;
aRect := StringGrid1.CellRect(x-1,y-1);
StringGrid1.Canvas.Brush.Color := clBlue;
StringGrid1.Canvas.FillRect(aRect);
end;
end;