NTFS писал(а):то вы рискуете огрести неизвестные неотслеживаемые ошибки, особенно у конечного пользователя.
Спасибо. Возможно именно с этим я и столкнулся, т.к. подопытный мне unit начал функционировать после внесения в его функцию
Create строчки
inherited Create; из этого можно предположить что initialization - действительно работает криво, т.к. у разработчика - функция работала. Но не факт, try finally end идентично решат проблему...
Ради чистоты эксперимента - попробую заменить на try finally end...
Я это не использую в коде, я просто пытаюсь восстановить дееспособность ряда функций в GLScene и там столкнулся с неизвестными мне
функциями. Кстати GLScene - очень хороший продукт, но судя по всему некоторый код там устарел. Но зато, то что работает - выполняет свои функции на 100++1% и довольно надёжно (
надеюсь).
alexs писал(а):Как и всякий инструмент, его надо использовать продумано. для объявления и очистки переменных, которые 100% не видны из других модулей.
Похоже на правду... Выше описан эксперимент - попробую, о результате расскажу. Если NTFS - прав, то код заработает (либо сбой был в другом месте).
absdjfh писал(а):Представьте, что к вашему совету прислушались разработчики FPC. И теперь вам в каждой программе нужно вызывать такой код:
Лично я не вызываю в каждой программе функцию
initialization - соответственно Ваш пример нечестный. Хотя сам подход использования
initialization и finalization - по идее более правильный и я также априори не могу согласиться с NTFS в том что
try finally end... работают корректнее нежели
initialization и finalization...
Истину - можно проверить только на чистом эксперименте.
Кто может привести пример некорректности работы:
initialization и finalization ?!
.