0 / 0 / 0
Регистрация: 22.12.2013
Сообщений: 12
1

Как закрасить ячейку в StringGrid?

24.12.2013, 22:40. Показов 9580. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Мне необходимо чтобы при нажатии bitbtn закрашивались все ячейки в StringGrid в которых присутствует буква. Я попробовал следующее:
Delphi
1
2
3
4
5
6
7
8
9
10
11
procedure TForm1.BitBtn35Click(Sender: TObject);
var i,j:integer;
begin
for i:=0 to x do
  begin
  for j:=0 to y do
    begin
    if StringGrid1.Cells[i,j] <> ' ' then
    StringGrid1.Canvas.Brush.color := clRed;
    end;
  end;
x и y это col и row. Вообщем это не работает.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.12.2013, 22:40
Ответы с готовыми решениями:

Как закрасить ячейку в StringGrid?
А как закрасить ячейку(и) в StringGrid?

Как закрасить определённую ячейку в StringGrid
Как закрасить определённую ячейку черным цветом и чтобы в нее нельзя было вводить букву. Это для...

Закрасить ячейку в Stringgrid по клику
Такая проблема - нужно, чтобы при клике на ячейку в Stringgrid она окрашивалась в определенный цвет...

Закрасить ячейку в Stringgrid с минимальным элементом
Доброго времени суток! Не как не могу разобраться с раскрашиванием ячеек! var ACol, ARow:...

3
angstrom
24.12.2013, 22:47 2
Поиск по форуму - OnDrawCell.
842 / 737 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
25.12.2013, 04:09 3
У меня только так получилось, код на событие OnDrawCell
Delphi
1
2
3
4
5
6
7
  //закраска клетки с буквами
  if StringGrid1.Cells[ACol, ARow] <> '' then
    StringGrid1.Canvas.Brush.Color := clLime;
  StringGrid1.Canvas.FillRect(Rect);
  //ïåðåðèñîâêà òåêñòà êàíâîé
  StringGrid1.Canvas.TextOut(Rect.Left + 2, Rect.Top + 2,
    StringGrid1.Cells[ACol, ARow]);
0
132 / 129 / 31
Регистрация: 12.12.2011
Сообщений: 462
25.12.2013, 12:22 4
Можно так (выдрано из проекта):
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
procedure TMainForm.StringGrid1DrawCell(Sender: TObject; ACol,
  ARow: Integer; Rect: TRect; State: TGridDrawState);
var s:String;
begin
    if ((ARow=StringGrid1.Row)and(Acol>0)) then
    begin
       if ACol=StringGrid1.Col then
         StringGrid1.Canvas.Brush.Color:=12303359
      else
         StringGrid1.Canvas.Brush.Color:=clAqua;
      StringGrid1.canvas.Font.Color:=clBlack;
    end;
 
    if (ACol > 0) and (ARow > 24) then
    begin
      //Закрашиваем бэкграунд
      StringGrid1.canvas.brush.Color:=clBtnFace;
      StringGrid1.canvas.Font.Color:=clBlack;
    end;
    StringGrid1.Canvas.FillRect(Rect);
    s := StringGrid1.Cells[ACol, ARow];
    //Закрашиваем текст, выравнивание
    Dec(Rect.Right, 2);
    Dec(Rect.Bottom, 2);
    if (Length(s) > 0) then
    if ((Arow>0) and (ACol>0)) then
       DrawText(StringGrid1.Canvas.Handle, PChar(s), Length(s), Rect, DT_BOTTOM or DT_RIGHT or DT_SINGLELINE)
    else
       DrawText(StringGrid1.Canvas.Handle, PChar(s), Length(s), Rect, DT_CENTER);
end;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.12.2013, 12:22
Помогаю со студенческими работами здесь

Закрасить определенную ячейку StringGrid-а другим цветом
возможно ли сделать так: чтобы с помощью ТОЛЬКО кнопки (потомучто у меня есть цикл где копирует в...

Как закрасить ячейку в Stringgrid, в которой есть "*"
Всем привет! Подскажите мне пожалуйста, как закрасить ячейки Stringgrid в которой есть &quot;*&quot;?

Как можно закрасить несколько ячеек StringGrid?
Чтоб получилось вот так(я понимаю ,что через drawcell)

Как выделить ячейку в StringGrid?
Задаю таблицу, заполняю, считаю сумму по столбцам, и вот столкнулся с такой проблемой, что нужно...

Как внедрить checkbox в ячейку StringGrid?
подскажите каким образом можно внедрить checkbox в ячейку stringGrid

Как удалить активную ячейку из Stringgrid
Здравсвуйте, я сейчас работаю с таблицей StringGrid и у меня возник вопрос: Как удалить активную...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru