Тема: Помилка у вибірці даних з StringGrid (IDE С++ Builder)
Доброго дня, шановні! Завчасно вибачаюсь за можливо простеньке запитання та не дуже привабливий код, бо я програміст-початківець.
Власне запитання: мені потрібно вибрати з таблиці StringGrid товар, що купують найчастіше та найрідше за заданий проміжок часу. Власне вибірку код проводить правильно, але іноді не враховує останні рядки. Проте якщо зробити вибірку з уже вибраного товару, то все добре.  Дуже сподіваюся на Вашу підказку або будь-яку іншу допомогу.
Код обробника події клацання по кнопці "Пошук":
\
StringList * T = new TStringList;
  T->Clear();
 //Вибір рядків із вказаного діапазону дат
 //запис даних рідків до списку Т
  for(int i=1;i<TabVZak->RowCount;i++)
   {
     if(StrToDate(TabVZak->Cells[4][i])>DateTimePicker1->Date)
      if(StrToDate(TabVZak->Cells[4][i])<DateTimePicker2->Date)
         T->Add(TabVZak->Rows[i]->DelimitedText);
   }
  //Заповнення таблиці данимим зі списку Т
  TabVZak->RowCount=T->Count+1;
  for(int i=1;i<TabVZak->RowCount;i++)
     TabVZak->Rows[i]->DelimitedText=T->Strings[i-1];
 TStringList * K = new TStringList;
  K->Clear();
  //Вибір строк з однаковою назвою товару
  for(int i=0;i<T->Count;i++)
  {
     for(int j=i+1;j<T->Count;j++)
        if(TabVZak->Cells[1][i+1]==TabVZak->Cells[1][j+1]) //порівняння назв
        {
           //запис до першого рядка з такою назвою, суми кількості проданого товару 
           TabVZak->Cells[2][i+1]=StrToInt(TabVZak->Cells[2][i+1]) + StrToInt(TabVZak->Cells[2][j+1]);
           //запис до першого рядка з такою назвою, суми ціни проданого товару 
           TabVZak->Cells[3][i+1]=FloatToStrF(StrToFloat(TabVZak->Cells[3][i+1]) + StrToFloat(TabVZak->Cells[3][j+1]),ffFixed,8,2);
           //заміна першого рядка на змінені дані
           T->Strings[i]=TabVZak->Rows[i+1]->DelimitedText;
           //видалення повторюваного рядка
           T->Delete(j);
        }
   K->Add(T->Strings[i]);
   }
  TabVZak->RowCount=K->Count+1;
 //Вивід у таблицю отримані дані
  for(int i=1;i<TabVZak->RowCount;i++)
     TabVZak->Rows[i]->DelimitedText=K->Strings[i-1];
 //BubbleSort за зменшенням кількості проданого товару
 AnsiString H;
  for(int i=1;i<TabVZak->RowCount;i++)
      for(int j=1;j<TabVZak->RowCount;j++)
         if(TabVZak->Cells[2][i]>TabVZak->Cells[2][j])
             {
                 H=TabVZak->Rows[i]->DelimitedText;
                 TabVZak->Rows[i]=TabVZak->Rows[j];
                 TabVZak->Rows[j]->DelimitedText=H;
             }
     T->Clear();

 :