Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.10.02;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.005 c
3-1124268309
PP
2005-08-17 12:45
2005.10.02
Групировка в dxDBGrid1


3-1124258621
PChI
2005-08-17 10:03
2005.10.02
Описание dxdbgrid


1-1126172991
ashnurov
2005-09-08 13:49
2005.10.02
XComDrv


1-1126019229
Relaxxx
2005-09-06 19:07
2005.10.02
2 вопроса:разделитель дробной части и popupMenu не закрывать по


1-1126460659
Shrike
2005-09-11 21:44
2005.10.02
Рисование на ScrollBar





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский