Форум: "Начинающим";
Текущий архив: 2009.03.15;
Скачать: [xml.tar.bz2];
ВнизКомпоненты TStringList и TObjectList Найти похожие ветки
← →
postedman (2009-01-20 23:40) [0]Очередной вопрос, связанный с учебой. Вроде бы простой, поэтому очень прошу помощи.
Вопрос вот в чем:
У нас есть списки типа TStringList и TObjectList. Первый - это список пар "строка-объект", второй - список объектов. Так вот, вопрос в том, что мне требуется перенести (скопировать) список объектов из одного списка в другой (списки одинакового типа, либо TStringList либо TObjectList оба.), чтобы не просто скопировать ссылки на эти объекты, а именно скопировать, то есть чтобы при удалении объекта в одном списке в другом он продолжал храниться.
В каком из этих двух классов присутствует подобный метод, как он называется и как его использовать, а то в хелпе я не очень нашел...
То есть можно ли копировать из СтрингЛиста в СтрингЛист или из ОбжектЛиста в ОбжектЛист и как это делать.
Вот такие условия... Просьба помочь.
← →
MsGuns © (2009-01-20 23:44) [1]Вообще-то это очень разные звери.
← →
Медвежонок Пятачок © (2009-01-20 23:46) [2]чтобы не просто скопировать ссылки на эти объекты, а именно скопировать,
сам-то понял что сказал?
в списках ничего кроме ссылок нет
← →
Плохиш © (2009-01-21 01:30) [3]
> postedman (20.01.09 23:40)
>
>
И чем только конференция "начинающим" таким не угодила?
← →
Плохиш © (2009-01-21 01:31) [4]
> В каком из этих двух классов присутствует подобный метод
Ни в каком, см [2]
← →
Германн © (2009-01-21 02:19) [5]
> Плохиш © (21.01.09 01:30) [3]
>
>
> > postedman (20.01.09 23:40)
> >
> >
>
> И чем только конференция "начинающим" таким не угодила?
>
Они о той конференции просто не знают. Ориентируются на гугль.
← →
Юрий Иванов (2009-01-21 09:32) [6]И в TStringList и в TObjectList есть метод Assign (см. справку).
Например, StringList1.Assign(StringList2)
← →
KSergey © (2009-01-21 10:35) [7]> Юрий Иванов (21.01.09 09:32) [6]
> Например, StringList1.Assign(StringList2)
Assign не создаст копию объектов на которые есть ссылки. Правда по вопросу не очень понятно надо ли это автору.
Он бы из методички елси б не поленился полностью переписать, а не своими словами пересказывать.
Впрочем, для этого препод есть.
← →
Правильный$Вася (2009-01-21 11:34) [8]
> чтобы при удалении объекта в одном списке в другом он продолжал
> храниться
в списке нет объектов, там есть только их адреса
манипуляция адресами не меняет объектов
← →
postedman (2009-01-21 18:10) [9]Вопрос мне как раз преподаватель и задал и сказал разберись-ка. Он сам его выдумал, не из какой не методы.
За метод Assign спасибо, в стринглисте - супер. Но:
Возник проблем. Есть:
List1, List2: TObjectList;
Заполнены:
for i:=0 to 5 do
begin
MyObj:=MyObject.Create;
MyObj.Vol:=i;
MyObj.Cnt:=i;
List1.Add(MyObj);
end;
List2.Add(MyObj);
Так вот, при использовании метода:
List2.Assign(List1,laCopy,nil);
Выдает ошибку памяти. Типа EAccessViolation по адресу бла-бла-бла... Что неверно?
← →
Медвежонок Пятачок © (2009-01-21 18:30) [10]а у меня не выдает.
хотя код бессмысленный.
если листы владеют объектами, причем оба содержат ссылки на одни и те же экземпляры MyObj, то как минимум последний экземпляр будет убит.
.....
// on with the show
case AOperator of
// 12345, 346 = 346 : only those in the new list
laCopy:
begin
Clear;
....
← →
postedman (2009-01-21 21:38) [11]А есть какой-нибудь метод, который создаст копии объектов первого листа и ассоциируцет их со вторым листом?
← →
Медвежонок Пятачок © (2009-01-21 21:41) [12]в смысле не написал ли какой-нибудь чудак странных, бессмысленных и никому не нужных методов?
← →
Правильный$Вася (2009-01-22 11:56) [13]
> создаст копии объектов первого листа
ручками-ручками
← →
postedman (2009-01-22 16:54) [14]То есть стандартными методами можно только ассоциировать с объектами другого листа.. Хм.. Ну лан, спасиб.
← →
Ega23 © (2009-01-22 17:18) [15]
> То есть стандартными методами можно только ассоциировать
> с объектами другого листа..
И это очевидно. Я сегодня один класс накатал, завтра - другой, послезавтра - третий, который потомок первого.
Откуда кто-то кроме тебя знает, каким образом делать копии этих объектов?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.03.15;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.045 c