Czy sprawdzałeś w nowym projekcje na prostej testowej aplikacji czy c_str() działa?
ComboBox i Label zawierają wartości typu UnicodeString i ta konwersja jest tam zbędna. Czyli wystarczy tak:
if(Form6->ComboBox1->Items->IndexOf(Label1->Caption)==-1)
Form6->ComboBox1->Items->Add(Label1->Caption);
Kod ci nie działa bo postawiłeś średnik po warunku i program po sprawdzeniu warunku niczego nie robi i wykonuje kolejną instrukcję, czyli dodaje zawartość Label1 niezależnie od tego czy ona już tam jest czy nie.
Na przyszłość używaj nawiasów to unikniesz takich niewidocznych na pierwszy rzut oka błędów.
if( Form6->ComboBox1->Items->IndexOf( Label1->Caption ) == -1 )
{
Form6->ComboBox1->Items->Add(Label1->Caption);
}
Jeżeli chodzi o ignorowanie znaków to funkcja IndexOf nie ma takiej opcji.