Не факт, что утечка есть. Просто память может не освобождаться менеджером памяти, поэтому кажется, что утечка есть.
Для начала, в конце добавь строки:
Код:
idoc := Nil;
VarClear(v);
v := Nil;
Это принудительно подскажет COM подсистеме освободить соотв интерфейс и уничтожить соотв. класс.
Далее, если Делфи достаточно свежая, то там по умолчанию используется иенеджер FastMM. В нем можно включить отслеживание утечек и, если они есть, при закрытии программы он, менеджер, выведет соотв. сообщение. Для этого в главном модуде добвть секцию инициалищации с установкой соотв. переменной:
Код:
initialization
ReportMemoryLeaksOnShutdown := True;
Ну а далее надо будет уже смотреть более подробно.