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

Вниз

Присвоение объектов   Найти похожие ветки 

 
Lamka   (2005-09-12 15:59) [0]

Есть некая коллекция
TmyCollect = class(TCollection)
...
myC : TmyCollect;

есть некий объект
TmyObj = class
FmyCollect : TmyCollect
...
myObj : TmyObj;

можно ли присвоить все значения из myC в FmyCollect таким образом?:

myObj.FmyCollect := myC;

что будет в данном случае, FmyCollect будет присвоена ссылка на myC или значения из myC будут записаны в FmyCollect, и последующее удаление myC не затронет FmyCollect?


 
Digitman ©   (2005-09-12 16:08) [1]


> FmyCollect будет присвоена ссылка на myC или значения из
> myC будут записаны в FmyCollect


1-е


> последующее удаление myC не затронет FmyCollect?


что значит "удаление myC" ?


 
Lamka   (2005-09-12 16:20) [2]


var
myC : TmyCollect;
myObj : TmyObj;
begin

myC := TmyCollect.Create;
/* заполняем myC */

myObj := TmyObj.Create;
myObj.FmyCollect := myC;

myC.Free; // после этого значения в FmyCollect не изменятся?  (IMHO) если FmyCollect хранит ссылку на myC то полсе удаления myC, FmyCollect будет непонятно куда ссылаться
...

end;


 
Digitman ©   (2005-09-12 16:27) [3]


> (IMHO) если FmyCollect хранит ссылку на myC то полсе удаления
> myC, FmyCollect будет непонятно куда ссылаться


так точно, сэр.
в дан.случае именно так.
только не "после удаления", а после разрушения объекта.

после

myObj.FmyCollect := myC

поле myObj.FmyCollect становится хранителем ссылки на тот же объект, на который в этот момент ссылается myC

после myC.Free объект , на который ссылается myC, будет разрушен, в то время как поле myObj.FmyCollect по-прежнему продолжает сылаться на якобы существующий объект.


 
Lamka   (2005-09-12 17:06) [4]

а если явного myC.Free; не будет, но myC объявлена как локальная переменная, после выхода из области видимости где она была объявленна, данные в myObj.FmyCollect останутся рабочими?


 
Digitman ©   (2005-09-12 17:08) [5]


> Lamka   (12.09.05 17:06) [4]


по идее - да.


 
ananax   (2005-09-12 17:13) [6]

попробуй myObj.Assign(MyC); вроде в этом случае будет создана копия объекта....



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

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

Наверх




Память: 0.48 MB
Время: 0.03 c
14-1126679907
boriskb
2005-09-14 10:38
2005.10.02
Как вам украшения? :)


8-1106828582
Eraser
2005-01-27 15:23
2005.10.02
Сжатие RLE или HEX для bmp


6-1117787605
Gromada
2005-06-03 12:33
2005.10.02
Как я могу с помощью дельфи узнать IP моего компа??


14-1125997277
Udaff
2005-09-06 13:01
2005.10.02
Электронные книги


4-1123585206
chili
2005-08-09 15:00
2005.10.02
Подскажите как перехватить Ctrl-Alt-Del