Topic: [Скрипт] Изменить цвет ячейки компонента TableGrid при условии

Изменение цвета ячеек компонента TableGrid, в зависимости от его содержимого.


procedure Form1_GridEmployees_OnChange (Sender: string);
var
   i,c: integer;
begin
     c := Form1.GridEmployees.RowCount - 1;
     for i := 0 to c do
     begin
         if Form1.GridEmployees.Cells[3,i] = 'Yes' then Form1.GridEmployees.Cell[3,i].Color := clRed
             else Form1.GridEmployees.Cell[3,i].Color := clGreen;
     end;
end;

begin

end.

Проект с примером:

Post's attachments

Attachment icon Color Grid.zip 5.49 kb, 429 downloads since 2015-02-20 

Dmitry.

2 (edited by LexaKlim 2015-02-22 23:18:05)

Re: [Скрипт] Изменить цвет ячейки компонента TableGrid при условии

Приветствую!

При обоих значениях, цвет ячеек зелёный.

Re: [Скрипт] Изменить цвет ячейки компонента TableGrid при условии

Здравствуйте,


замените строчку в скрипте

Form1.GridEmployees.Cells[3,i] = 'Yes'

на

Form1.GridEmployees.Cells[3,i] = 'Да'
Dmitry.

Re: [Скрипт] Изменить цвет ячейки компонента TableGrid при условии

а если в этом же столбце имеется несколько значений , и каждому присвоить нужно цвет? например если "да" то зеленый а если "может быть" то голубой (claqua) ?? а если нет то так и остаётся белый ???

Re: [Скрипт] Изменить цвет ячейки компонента TableGrid при условии

Sergey wrote:

а если в этом же столбце имеется несколько значений , и каждому присвоить нужно цвет? например если "да" то зеленый а если "может быть" то голубой (claqua) ?? а если нет то так и остаётся белый ???

procedure Form1_GridEmployees_OnChange (Sender: string);
var
   i,c: integer;
begin
     c := Form1.GridEmployees.RowCount - 1;
     for i := 0 to c do
     begin
         if Form1.GridEmployees.Cells[3,i] = 'Да' then Form1.GridEmployees.Cell[3,i].Color := clGreen
             else if Form1.GridEmployees.Cells[3,i] = 'Может быть' then Form1.GridEmployees.Cell[3,i].Color := claqua;
     end;
end;
Dmitry.

Re: [Скрипт] Изменить цвет ячейки компонента TableGrid при условии

у меня вопрос такой  я использовал этот скрипт у себя в проекте и у меня такая проблема где слово  'Да' на проекте он показывает а слово нет просто чистая грофа  как можно тут прописать также слово только НЕТ ?????

procedure Form1_GridEmployees_OnChange (Sender: string);
var
   i,c: integer;
begin
     c := Form1.GridEmployees.RowCount - 1;
     for i := 0 to c do
     begin
         if Form1.GridEmployees.Cells[3,i] = 'Да' then Form1.GridEmployees.Cell[3,i].Color := clGreen
             else if Form1.GridEmployees.Cells[3,i] = 'Может быть' then Form1.GridEmployees.Cell[3,i].Color := claqua;
     end;
end;

Re: [Скрипт] Изменить цвет ячейки компонента TableGrid при условии

6katran6
В данном скрипте заменить слово 'Может быть'  на  'Нет'

Dmitry.

Re: [Скрипт] Изменить цвет ячейки компонента TableGrid при условии

http://s019.radikal.ru/i600/1608/57/e56181948000.jpg

слова нет как можно  прописать ? мне нужна что бы было ДА и НЕТ

Re: [Скрипт] Изменить цвет ячейки компонента TableGrid при условии

6katran6 wrote:

http://s019.radikal.ru/i600/1608/57/e56181948000.jpg

слова нет как можно  прописать ? мне нужна что бы было ДА и НЕТ

Как правило прописывать это в ручную нет необходимости, при создании записи CheckBox должен быть без галочки (пустым) тогда в базу данных попадет значение Нет.

Dmitry.

Re: [Скрипт] Изменить цвет ячейки компонента TableGrid при условии

спасибо

11 (edited by legerman 2017-03-22 17:15:42)

Re: [Скрипт] Изменить цвет ячейки компонента TableGrid при условии

Здравствуйте!


procedure Form1_TableGrid1_OnChange (Sender: string);
 var
    i,c: integer;
begin
 c := Form1.TableGrid1.RowCount - 1;
    for i := 0 to c do
    begin           
       if StrToDate(Form1.TableGrid1.Cells[1,i]) < Now() then Form1.TableGrid1.Cell[1,i].Color := clRed;
    end;
end;

В моем случае  пишет "20.03.2017 0:28:20" is not a valid date. Эта колонка из таблицы с форматом Дата/время, в старой версии проекта с форматом Дата это работало.
Подскажите, как исправить?

Re: [Скрипт] Изменить цвет ячейки компонента TableGrid при условии

legerman
Здравствуйте.


Вместо функции StrToDate используйте StrToDateTime

Dmitry.

Re: [Скрипт] Изменить цвет ячейки компонента TableGrid при условии

Спасибо!