Вниз
Скачать: 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
14-1080761044
dilvish
2004-03-31 23:24
2004.05.02
Как написать веб-приложение для локальной сети???


14-1081343604
geg
2004-04-07 17:13
2004.05.02
Помогите найти работу в Питере


1-1082264464
garry79
2004-04-18 09:01
2004.05.02
Как правильно сделать форму-заставку в отдельном потоке?


6-1078175716
ser_ega
2004-03-02 00:15
2004.05.02
Explorer


1-1082206330
Viktor
2004-04-17 16:52
2004.05.02
Проверить объект на существование




   Наверх