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

Вниз

TObjectList.Assign   Найти похожие ветки 

 
Iriss   (2009-02-09 13:00) [0]

хочу сделать полную копию объекта
var ContainerData: TObjectList;
var InitData    : TObjectList;
var CopiedList  : TObjectList;
var Data: TMyType;
var CopiedData: TMyType;

   ContainerData := TObjectList.Create();
   InitData         := TObjectList.Create();
//  CopiedList      := TObjectList.Create();

   InitData.Add( Data );

   ContainerData.Assign( InitData , laCopy, CopiedList);

   CopiedData := CopiedList.First;


Выкидывает ошибку и копию не создает.
Подскажите, что не так делаю


 
Ega23 ©   (2009-02-09 13:07) [1]

А создавать CopiedList Пушкин будет?


 
Сергей М. ©   (2009-02-09 13:07) [2]

Не читаешь текст ошибки.


 
Iriss   (2009-02-09 13:40) [3]

Теперь ошибку не кидает, но и копию объекта при таком коде не создает

var ContainerData: TObjectList;
var InitData    : TObjectList;
var CopiedList  : TObjectList;
var Data: TMyType;
var CopiedData: TMyType;
var K: Double;
var K2: Double;
begin
  ContainerData := TObjectList.Create();
  InitData         := TObjectList.Create();
  CopiedList      := TObjectList.Create();

  InitData.Add( Data );

   K := CopiedList.Count; //=0
   K2 := InitData.Count;  //=1

  ContainerData.Assign( InitData , laCopy, CopiedList);

   K := CopiedList.Count; //=0
   K2 := InitData.Count;  //=1

  CopiedData := CopiedList.First;


 
Сергей М. ©   (2009-02-09 13:51) [4]

Копию именно объекта и не создаст - TObjectList не перекрывает ни Assign ни AssignTo.
Максимум что можно получить - копию списка указателей на объекты, но не копии самих объектов.
Объекты сами должны заботиться о методах своего клонирования, контейнеры объектов за это не отвечают.

Удивись:
ShowMessage(IntToStr(ContainerData.Count));



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

Форум: "Начинающим";
Текущий архив: 2009.03.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.044 c
15-1233240162
@!!ex
2009-01-29 17:42
2009.03.29
Самый лучший фильм 2


2-1233741002
AlexDan
2009-02-04 12:50
2009.03.29
О операторе if


1-1208548334
KIRILL_FR
2008-04-18 23:52
2009.03.29
Ошибка компилятора?


1-1208785374
abhtr
2008-04-21 17:42
2009.03.29
Как "задержать" Hint?


15-1232916784
Piter
2009-01-25 23:53
2009.03.29
Miranda IM: моя сборка (Mirapit)





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