Форум пользователей ПО АСКОН

Профессиональные вопросы => Программирование приложений => Delphi => Тема начата: PAV57 от 26.08.08, 13:14:50

Название: закрытие KGAZ
Отправлено: PAV57 от 26.08.08, 13:14:50
После закрыети программы содержащей компонент KGAZ, например,  демонстрационная программа kgActiveX, созданный процесс KOMPAS.EXE не уничтожается и остается видимым в диспетчере задач. Повторный запуск программы создает второй процесс KOMPAS.EXE и программа прерывается по ошибке и второй процесс удаляется.

Среда программирования Delphi 2007, OS Wista-64.

Такое поведение следствие работы КОМПАС в конкретной системе или в других конфигурациях наблюдается аналогичная ситуация?
Название: Re:закрытие KGAZ
Отправлено: Lito 2 от 26.08.08, 15:40:57
Необходимо на закрытие формы написать, например следующий код:
begin
           KGAX1.CloseAll;
           iDoc:= nil;
           if iKompas <> nil then
             begin
                iKompas.Quit;
                iKompas := nil;
             end;
        end;
Название: Re:закрытие KGAZ
Отправлено: PAV57 от 27.08.08, 16:53:51
Lito 2

Спасибо за оперативный ответ, я предполагал что-то побное, но искал  Close, Release... и т.д., а про Quit забыл.
Кстати, объектам при закрытии присваивать nil (null) обязательно, или это просто хороший тон?
Кодов то нет и по названию Quit догадываюсь, что проиходит освобождение памяти (кстати надо проверить отсутсвие утечек).