Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.021 c
1-1082046811
white dove
2004-04-15 20:33
2004.05.02
Подключение к AutoCAD по OLEAutomation


3-1080727303
Goida
2004-03-31 14:01
2004.05.02
Проблемы с ADO...


1-1082111343
Tornado
2004-04-16 14:29
2004.05.02
PageControl


9-1068327019
DDS
2003-11-09 00:30
2004.05.02
OpenGL: Задаю рисовать POLIGON последовательно по точкам, а он...


7-1078889162
Graf
2004-03-10 06:26
2004.05.02
Программная перезагрузка/выключение




   Наверх