Индекс списка вне границ с помощью TListView

Я запутался, когда я пытаюсь вставить строку в TListView, используя insert(int,String),

Вот мой код:

void __fastcall TFrmNewPeta::showDefaultRute()
{
    std::string line;
    std::ifstream ifs;
    wisata.savedefaultT4Awal("DefaultDataAwal");
    wisata.savedefaultT4Jarak("DefaultDataJarak");
    wisata.savedefaultT4Tujuan("DefaultDataTujuan");
    ifs.open("DefaultDataAwal"); 
    try{
         if(ifs.is_open())
         {
             for(int indexfile=0;std::getline(ifs,line);++indexfile)
             {
                ListItemnew = ListView1->Items->Add();
                ListItemnew->Caption = String(IntToStr(indexfile+1));
                ListItemnew->SubItems->Insert(indexfile,line.c_str());
                //cbxtest->Items->Insert(indexfile,line.c_str()); //successfull

             }
         }
    }__finally{
        ifs.close();
    }
}

С этим компилятор говорит "List Index out of bounds (1)"Меня много раз пытались найти выход, но я получил тот же результат.

Но это заставило меня задуматься, потому что, когда я пытаюсь протестировать с ComboBox, он работает хорошо.

cbxtest->Items->Insert(indexfile,line.c_str());

Если что-то не так с моим кодом?

1 ответ

Решение

Попробуй это

void __fastcall TFrmNewPeta::showDefaultRute()
{
    std::string line;
    std::ifstream ifs;
    wisata.savedefaultT4Awal("DefaultDataAwal");
    wisata.savedefaultT4Jarak("DefaultDataJarak");
    wisata.savedefaultT4Tujuan("DefaultDataTujuan");
    ifs.open("DefaultDataAwal"); 
    try{
         if(ifs.is_open())
         {
             for(int indexfile=0;std::getline(ifs,line);++indexfile)
             {
                ListItemnew = ListView1->Items->Add();
                ListItemnew->Caption = String(IntToStr(indexfile+1));
                ListItemnew->SubItems->Add(line.c_str());
                //cbxtest->Items->Insert(indexfile,line.c_str()); //successfull

             }
         }
    }__finally{
        ifs.close();
    }
}

Я надеюсь, что это поможет вашим проблемам

Другие вопросы по тегам