¿Por qué la línea:
- if (B.IndexOf(FieldByName('Tipo').AsString)= -1) then 
-   
NO TRABAJA IGUAL QUE:
- if (ComboBox1.Items.IndexOf(FieldByName('Tipo').AsString)= -1) then 
-   
yo no conozco delphi 

 tal vez deba venir algun especializta 

 pero creo que seria logico que faltara un indice pues la el atributo se llama 
items   
 <!--xc1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>
XCODE </td></tr><tr><td id='XCODE'><!--exc1-->if (ComboBox1.Items
[indice].IndexOf(FieldByName('Tipo').AsString)= -1) then<!--xc2--></td></tr></table><div class='postcolor'><!--exc2-->
creo yo tal vez estoy mal 
Saludos