Вниз
Скачать: 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.024 c
9-1068621377
Леприкон
2003-11-12 10:16
2004.05.02
Поверхность вращения


7-1078487387
Kft
2004-03-05 14:49
2004.05.02
Количество процессоров


3-1080896123
Balkon
2004-04-02 12:55
2004.05.02
Вопрос по SQL.


3-1081168666
AOH
2004-04-05 16:37
2004.05.02
проверка isNull в кобмбобоксе ACCESS


1-1081844252
Dimerol
2004-04-13 12:17
2004.05.02
Management памяти.




   Наверх