Главная страница
    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.004 c
1-1126619099
Дмитрий_05
2005-09-13 17:44
2005.10.02
Активный - неактивный компонент


1-1126704034
Maverick
2005-09-14 17:20
2005.10.02
Получить из массива байт строку с HEX-текстом


1-1126443042
kolya.nn
2005-09-11 16:50
2005.10.02
Звук в Windows


1-1126701910
Jolik
2005-09-14 16:45
2005.10.02
Как узнать дополнительные сведения о файле?


1-1126098905
avsam
2005-09-07 17:15
2005.10.02
Конвертация JPEG в Bitmap





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский