Topic: ошибка в чем может быть

помогите в чем может быть стала ошибка вылетать такая https://i.postimg.cc/3NkG2KZS/image.jpg

ссылается на код 

  Timer.OnTimer := @OnTimer; 

procedure OnTimer;
begin
     Form1.Label2.Caption := FormatDateTime('c', Now);
end;

вставил код и за чего начала выскакивать

begin
     z := Form1.TableGrid1.RowCount - 1;
     for i := 0 to z do
begin
         if Form1.TableGrid1.Cells[9,i] = 'Да' then Form1.TableGrid1.Cell[0,i].Color := $F0CAA6
          else if Form1.TableGrid1.Cells[9,i] = '' then Form1.TableGrid1.Cell[0,i].Color := $00E3F2F2;
     end;
end;

Re: ошибка в чем может быть

На момент проверки условия не существует 9 колонки Form1.TableGrid1.Cells[9,i]

Re: ошибка в чем может быть

https://i.postimg.cc/85tLZRTC/image.jpg

правильно 9 колонок

Re: ошибка в чем может быть

А ничего что отсчет начинается с 0 ?

Re: ошибка в чем может быть

так вроде ошибки нет но не подсвечивает цветом

begin
     z := Form1.TableGrid1.RowCount - 1;
     for i := 0 to z do
begin
         if Form1.TableGrid1.Cells[8,i] = 'Да' then Form1.TableGrid1.Cell[0,i].Color := $F0CAA6
          else if Form1.TableGrid1.Cells[8,i] = '' then Form1.TableGrid1.Cell[0,i].Color := $00E3F2F2;
     end;
end;

если так то ошибка

begin
     z := Form1.TableGrid1.RowCount - 1;
     for i := 0 to z do
begin
         if Form1.TableGrid1.Cells[10,i] = 'Да' then Form1.TableGrid1.Cell[0,i].Color := $F0CAA6
          else if Form1.TableGrid1.Cells[10,i] = '' then Form1.TableGrid1.Cell[0,i].Color := $00E3F2F2;
     end;
end;

Re: ошибка в чем может быть

Вариант с 8 правильный


У вас не проходит проверка if Form1.TableGrid1.Cells[8,i] = 'Да'

Вы уверены что у вас только 'Да', без пробелов и других символов.

Измените на if Form1.TableGrid1.Cells[8,i] <> '' и убедитесь что так закрашивается где ячейка не пустая

Re: ошибка в чем может быть

Как всегда, если вы можете прикрепить весь проект (а не фрагменты кода), вам будет намного проще увидеть, где может возникнуть какая-либо проблема.
В остальном это догадки и предположения

Re: ошибка в чем может быть

в таком виде все ячейки подсвечены даже когда меняешь да или нет все равно тоже самое

begin
     c := Form1.TableGrid1.RowCount -1;
     for i := 0 to c do  // вычисляет разбиение каждого значения на указанную выше сумму
begin
          if Form1.TableGrid1.Cells[8,i] = 'Да' then Form1.TableGrid1.Cell[0,i].Color :=  $00E3F2F2
             else
          if Form1.TableGrid1.Cells[8,i] = ' ' then Form1.TableGrid1.Cell[0,i].Color := clGradientActiveCaption;
     end;
end;

Re: ошибка в чем может быть

procedure Form1_TableGrid1_OnChange (Sender: TObject);
var
i:integer;
begin
  for i := 0 to Form1.TableGrid1.RowCount-1 do
    if Form1.TableGrid1.Cells[1,i] = 'Да' then Form1.TableGrid1.Cell[0,i].Color :=  $00E3F2F2  else
      if Form1.TableGrid1.Cells[1,i] = ' ' then Form1.TableGrid1.Cell[0,i].Color := clGradientActiveCaption;
end;
Post's attachments

Attachment icon test.rar 3.75 kb, 44 downloads since 2023-11-03 

Re: ошибка в чем может быть

огромное спасибо работает

Re: ошибка в чем может быть

такой вопрос а можно вместо цвета  что бы текст становился жирным ?

Re: ошибка в чем может быть

6katran6 wrote:

такой вопрос а можно вместо цвета  что бы текст становился жирным ?


Ну если прочитаете https://myvisualdatabase.com/help_ru/pr … TCell.html то можно