Galkov писал(а):
Рекомендации коллеги Netspirit-а придают некоторую уверенность.Я понимаю так. Контейнер FTCG_Tools создаёт один модуль с одним классом. В этом классе есть один блок переменных класса (BLK_PRIV_VAR). На каждый входной метод контейнера создаётся один метод в этом классе. В каждом методе делается доступным свой блок локальных переменных (LOC_VARS).
Проблема заключается в следующем. Компонент не может прописать локальную переменную метода во время своего Init(), потому что блок LOC_VARS во время Init() может быть один, а во время выполнения методов компонента - совсем другой.
Значит локальную переменную он должен писать в блок только при выполнении методов компонента, которые эту переменную используют. А раз так, то при вызове такого метода компонента несколько раз он запишет эту переменную столько же раз. Значит, компоненту каждый раз нужно знать писал ли он уже эту переменную в данный конкретный блок LOC_VARS или нет. Тогда предложенное мной решение подходит - функция создания локальной переменной проверяет её наличие. Пока что не вижу каких-то проблем.
Возможным другим способом решения будет необходимость в каждом компоненте для каждой локальной переменной вести массив имен блоков LOC_VARS, в которые он уже записал эту переменную, и искать в этом списке текущий блок LOC_VARS. Это очень накладно.