Если вы используете многопоточное приложение то ActiveX(например ADO компоненты) даже созданные в отдельном потоке могут не хотеть работать корректно, из-за неправильной инициализации. Надо чуть-чуть видоизменить DPR файл - в uses добавить модуль ComObj, а самой первой строкой кода в проэкте должно идти:
CoInitFlags:=0; Application.Initialize;
Что означает инициализацию COM в каждом потоке
Автор ответа Vit Взято с Vingrad.ru http://forum.vingrad.ru