Главная страница
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.055 c
14-1126639093
Anton_K
2005-09-13 23:18
2005.10.02
Глюк Windows?


1-1126273329
pupkin
2005-09-09 17:42
2005.10.02
как в объекте dhtmledit отформатировать кусок текста


3-1124724845
max_12345
2005-08-22 19:34
2005.10.02
Необходимо сравнить 2 dbf


2-1124861621
ALEKCEY
2005-08-24 09:33
2005.10.02
отправка почты с прикреплёнными файлами


1-1126431177
The Only
2005-09-11 13:32
2005.10.02
Status Bar на меню