![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Изменение цвета ячейки в StringGrid при заполнении таблицы [D7, XP]
Basilisk © (2011-04-05 13:20:00)Вывожу решения своей задачи в StringGrid. Необходимо закрасить каким-нибудь цветом ячейки с оптимальным решением. То есть в одной строке только одна ячейка должна быть закрашена.
Как это реализовать?
novichek (2011-04-05 13:45:00) [21]StringGrid.Repaint ни в коем случаи!
novichek (2011-04-05 13:44:00) [22]procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
begin
if ACol=0 then // закрашиваем первую ячейку в строке
begin
stringGrid1.Canvas.Brush.Color:= clGray;
stringGrid1.Canvas.FillRect(rect);
end;
end;
Basilisk (2011-04-05 13:43:00) [23]а при этом надо использовать StringGrid.Repaint????
И. Павел (2011-04-05 13:30:00) [24]> а как событие с нажатием клавиши связать?
Событие (OnDrawCell для StringGrid) нужно задать в инспекторе объектов (перейти на вкладку "Events" и там дважды щелкнуть левой кнопкой мыши на соответствующем событии, чтобы создался обработчик к нему).
А что должно происходить при нажатии клавиши? Если только после нажатии клавиши должен разукрашиваться StringGrid, то просто создайте переменную colored = false, а в обработчике клавиши присвойте ей true. А в OnDrawCell проверяйте: если colored = true, то разукрашивайте.
Basilisk (2011-04-05 13:24:00) [25]а как событие с нажатием клавиши связать?
И. Павел (2011-04-05 13:21:00) [26]Используйте событие OnDrawColumnCell:
http://delphi-faq.zoxt.net/192.htm