Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/23: Рейтинг темы: голосов - 23, средняя оценка - 4.96
Australis
1

StringGrid закрашивание ячеек

22.12.2011, 19:43. Показов 4439. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!

Подскажите пожалуйста как организовать закраску ячеек StringGrid-а.
Необходимо, чтобы ячейка с правильно введенными в нее данными окрашивалась в зеленый цвет, а если введено неверно, то в красный.
Буду очень признательна за помощь!

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
with Strngrd1 do
  for i:=1 to n do
    begin
      for j:=1 to m do
        begin
              if StrToInt(Strngrd1.Cells[i,j])=test then // проверка на правильность введенных                 
                                                                    //данных                                     
                         begin
                         //ShowMessage('верно !');
                          Strngrd1.Canvas.Brush.Color:=green;
                          if ((Col=i)and(Row=j)) then
                         Strngrd1.Canvas.FillRect(Rect);
                         end
 
                   else
                       begin
                        ShowMessage('Ошибка!!!');
                        Strngrd1.Canvas.Brush.Color:=red;
                          if ((Col=i)and(Row=j)) then
                         Strngrd1.Canvas.FillRect(Rect);
                        end;
                   end;
                   end;
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.12.2011, 19:43
Ответы с готовыми решениями:

Закрашивание ячеек stringgrid
Нужно чтобы вместо вывода '0' в условиях ,эти ячейки закрашивались. Заранее спасибо откликнувшимся.

StringGrid закрашивание ячеек по условию
Здравствуйте! Такая ситуация, по условию закрашиваю сначала одну строку или столбец(диапазон),...

Закрашивание ячеек stringgrid и вывод закрашеных прямоугольников
Здравствуйте. Готовлюсь к НОКу и некоторые задачи совсем не могу сделать. Помогите пожалуйста ...

Закрашивание ячеек StringGrid с max и min элементами каждой строки матрицы
Доброго всем вечера. Дана такая задача: есть матрица произвольного размера с вещественными числами,...

1
498 / 251 / 56
Регистрация: 16.06.2011
Сообщений: 904
23.12.2011, 06:28 2
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
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
const //здесь определяем Ваш цвет. Так же можно использовать цвета по умолчанию.
  clPaleGreen = TColor($CCFFCC);
  clPaleRed = TColor($CCCCFF);
begin
  //Если ячейка получает фокус, то нам надо закрасить её другими цветами
  if (gdFocused in State) then
  begin
    StringGrid1.Canvas.Brush.Color := clBlack;
    StringGrid1.Canvas.Font.Color := clWhite;
  end
  else //Если же ячейка теряет фокус, то закрашиваем её красным и зелёным
    if ACol = 2 then //Вторая колонка будет зелёной , другие - ячейки красными
      StringGrid1.Canvas.Brush.color := clPaleGreen
    else
      StringGrid1.canvas.brush.Color := clPaleRed;
 
  //Теперь закрасим ячейки, но только, если ячейка не Title- Row/Column
  //Естественно это завит от того, есть у Вас title-Row/Columns или нет.
 
  if (ACol > 0) and (ARow > 0) then
  begin
    //Закрашиваем бэкграунд
    StringGrid1.Canvas.FillRect(Rect);
 
    //Закрашиваем текст (Text). Также здесь можно добавить выравнивание и т.д..
    StringGrid1.Canvas.TextOut(Rect.Left, Rect.Top, StringGrid1.Cells[ACol, ARow]);
  end;
end;
Если Вы захотите чтобы цвет ячеек менялся в зависимости от значения в них, то можно заменить 3 линии (if Acol = 2 ......) на что-нибуть вроде этого

Delphi
1
2
3
4
if StringGrid1.Cells[ACol, ARow] = 'highlight it' then
  StringGrid1.Canvas.Brush.color := clPalered
else
  StringGrid1.canvas.brush.Color := clWhite;
0
23.12.2011, 06:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.12.2011, 06:28
Помогаю со студенческими работами здесь

Закрашивание ячеек
Доброе время суток. У меня следующая проблема: у меня есть 2 формы, на 1 форме есть stringgrid1,...

Stringgrid закрашивание
Есть 1 стока и 3 стобца. Нужно чтобы если в 3 столбце слово 'on' то тогда вся строка закрашивалась...

Закрашивание ячейки в StringGrid
Возникла такая проблема. Нахожу в StringGrid-е MAX значение записываю его в переменную, затем...

StringGrid: Выделение и закрашивание
Вот задачка появилась на мою голову. Как сделать чтобы при выделении ячеек на Stringgrid и нажатии...


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

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