Консультация № 176245
23.01.2010, 22:46
0.00 руб.
0 8 2
Возможно ли управлять порядком выполнения секции initialization/finalization
Нужно что бы секция initialization в одном модуле выполнялась всегда первой.

Обсуждение

Неизвестный
23.01.2010, 22:48
общий
это ответ
Здравствуйте, Александр Романов [Alexo]!
Это можно сделать только располагая модули в секции uses в различном порядке. Секция initializtion выполняется раньше в модуле описанном в секции uses раньше.
5
Спасибо, надеялся что есть более интелектуальная система управления этими секциями)
Неизвестный
23.01.2010, 22:58
общий
Или еще посмотрите на файл проекта:
[b]Project -> View source[/b]
давно
Студент
15716
139
23.01.2010, 23:42
общий
Ну понятно что порядок там задаться) Или я ошибаюсь?)
давно
Студент
15716
139
24.01.2010, 00:03
общий
Создал тестовый проект там сделал модуль с классом, создал два модуля в одном только initialization во втором только finalization
они соотвественно первый и последний в uses dpr с init проблем нет первым стоит первым создается, а вот final далеко не последним удаляется или для него это правило не работает?
давно
Студент
15716
139
24.01.2010, 00:23
общий
Походу там просто наоборот) Первый финализируеться последним)
давно
Мастер-Эксперт
425
4118
24.01.2010, 08:31
общий
Александр Романов [Alexo]:
Цитата: Александр Романов [Alexo]
Походу там просто наоборот) Первый финализируеться последним)

Что такое стек знаете?
Представьте себе трубу, у которой один конец запаян, а второй - дырявый. Вы через дырявый конец закидываете в трубу пронумерованые камешки - 1,2,3, и т.д. А потом эти камешки из трубы вытряхиваете. Какой камешек выпадет из трубы первым, как Вы думаете?
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
давно
Студент
15716
139
24.01.2010, 10:35
общий
я думал там очередь, первым пришел первым ушел.
Неизвестный
24.01.2010, 12:00
общий
это ответ
Здравствуйте, Александр Романов [Alexo].
Я думаю, но не увере, что финализатион зависит от того кой из модулей упомянут в другие модилях (в uses, которой в interface или implementation).
ПП
Наверное у вас проблема с уничтожение обектов? Я решаю таких проблем стриктно делайки FreeAndNil (ето obekt.free; obekt:=nil) и везде проверяю <>nil. Ето, к сожалению, не так просто.
Форма ответа