Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.02;
Скачать: CL | DM;

Вниз

Создаю объект в initialization, а в юните его не видно   Найти похожие ветки 

 
Cr@zy-EyE ©   (2004-04-14 15:25) [0]

В юните Unit1:
unit Unit1;
interface
 var X, Y: TMyObject;
...
initialization
 X:=TMyObject.Create;
...

Если в Unit1 пишу Y:=X, то в X присваивается nil.
Однако если Unit2:
unit Unit2;
interface
uses Unit1, ...
...
В нем Y:=X работает. Почему не работает первый вариант? Заранее спасибо.


 
Тимохов ©   (2004-04-14 15:26) [1]

порядок инициализации юнитов играет роль


 
Cr@zy-EyE ©   (2004-04-14 15:33) [2]

X и Y описаны в Unit1, но доступны только в Unit2, хотя X создается в Unit1


 
Amoeba ©   (2004-04-14 15:35) [3]

В каком порядке Unit1 и Unit2 прописаны в Uses того модуля, где они используются?


 
Тимохов ©   (2004-04-14 15:35) [4]


> Если в Unit1 пишу Y:=X, то в X присваивается nil.

Вот это вы где пишете?


 
Cr@zy-EyE ©   (2004-04-14 17:11) [5]

1. Unit2 использует Unit1
2. Пишу Y:=X в процедурах соответствующих юнитов


 
Тимохов ©   (2004-04-14 17:21) [6]


> Если в Unit1 пишу Y:=X, то в X присваивается nil.

почему вообще в x дожно что-то присваиваться.

ничего не остается как требовать хоть и схематического, но все же более полного кода.


 
Cr@zy-EyE ©   (2004-04-14 17:29) [7]

Провел следующий эксперимент. Добавил WATCH на X, пошагово выполняю, зашел в секцию initialization, выполнил
 X:=TMyObject.Create;

Теперь X=$...(адрес), после выхода из initialization X=nil. X становится равным $... только внутри процедуры из Unit2, который первый поюзал Unit1, после выхода и внутри процедур Unit1 X=nil.


 
Тимохов ©   (2004-04-14 17:34) [8]


> Cr@zy-EyE ©   (14.04.04 17:29) [7]

не может быть такого.

у вас другого x того же типа нигде нет? Может он мешатеся...
Вернее даже так - ищите другой X - он есть, это точно...


 
Cr@zy-EyE ©   (2004-04-14 17:43) [9]


>Тимохов ©   (14.04.04 17:34) [8]
> ищите другой X - он есть, это точно...

 Нашел, все прекрасно! Такая глупая ошибка!!! Спасибо всем



Страницы: 1 вся ветка

Текущий архив: 2004.05.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.046 c
1-1082145941
tivispider
2004-04-17 00:05
2004.05.02
Как можно узнать кодировку файла (txt)?


14-1081675876
rams
2004-04-11 13:31
2004.05.02
Turbo Pascal


4-1078054939
Labert
2004-02-29 14:42
2004.05.02
Заменить функцию окна у десктопа


14-1081324648
asm???
2004-04-07 11:57
2004.05.02
Программка на ассемблере


8-1075724226
ctrannik
2004-02-02 15:17
2004.05.02
преобразование звукового файла в тестовой фаил