Форум: "Начинающим";
Текущий архив: 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