Автор Xoren задал вопрос в разделе Другие языки и технологии
stringgrid раскраска. при нажатии на ячейку нужно раскрасить его delphi или C++ builder и получил лучший ответ
Ответ от Ў В[гуру]
Непременно StringGrid?
Вот пример для DrawGrid. Дальше, если надо, сам адаптируй.
1.Поместим на форму компонент DrawGrid. Свойства: ColCount (Количество столбцов) и RowCount (Количество строк) = 7, FixedCols (Фиксированные столбцы) и FixedRows (Фиксированные строки) = 0, DefaultDrawing (Рисование по умолчанию) – false, это значит, что мы сами будем говорить, что нарисовать в ячейке. ScrollBars – полосы прокрутки – ssNone – отсутствуют. Изменим размеры таблицы так, чтоб ячейки заняли все ее пространство.
2.Событие OnMouseDown таблицы
procedure TColGridForm.DrawGrid1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var col, row : longint;
rect : TRect;
begin
DrawGrid1.MouseToCell(X,Y,Col,Row); // Координаты курсора мыши переводим в
// координаты ячейки таблицы
Rect:=DrawGrid1.CellRect(Col,Row); // Определяем ячейку таблицы как объект
DrawGrid1.Canvas.Brush.Color:= Random(clWhite); // Устанавливаем цвет кисти
DrawGrid1.Canvas.FillRect(Rect); // Заполняем этим цветом ячейку
end;