Форум: "Основная";
Текущий архив: 2003.02.27;
Скачать: [xml.tar.bz2];
ВнизДобавление объектов в TStringList Найти похожие ветки
← →
orion_st (2003-02-17 11:51) [0]Help!!!
В цикле добавляю объекты через
events.AddObject(IntToStr(event.id),TObject(event));
При этом добавлении у меня не только добавляется новый объект, но и почему-то перезаписываются ранее добавленные объекты новым.
Т.е. добавляю первый объект в итоге получаю
TEvent(events.Objects[0]).id=1
Добавляю второй объект, получаю:
TEvent(events.Objects[0]).id=2
TEvent(events.Objects[1]).id=2
и так далее. Как от этого избавиться?
← →
Digitman (2003-02-17 12:08) [1]как формируется event непосредственно перед очередным добавлением ?
← →
orion_st (2003-02-17 12:20) [2]Из текстового файла считываю построчно, разбираю строку, из нее формирую значения полей event-а. Потом добавляю.
event имеет тип TEvent:
Tevent = class
id: integer;
<...>
end;
← →
Anatoly Podgoretsky (2003-02-17 12:25) [3]Наверно ошибка в коде
← →
Digitman (2003-02-17 12:28) [4]если перед каждым AddObject() выполняется
event := TEvent.Create,
этого быть не должно
← →
orion_st (2003-02-17 12:34) [5]А зачем каждый раз креатить event? Я его один раз создаю, затем просто изменяю поля и новый вариант добавляю в events, который TStringList. Или так не корректно?
← →
Reindeer Moss Eater (2003-02-17 12:36) [6]Гы Гы Гы :)
Некорректно канешна!
← →
Reindeer Moss Eater (2003-02-17 12:38) [7]Ситуация как в той поговорке:
"Кто последний - тот и папа"
Единственный экзепляр объекта и многократное его модифицирование
← →
Digitman (2003-02-17 12:42) [8]
> Я его один раз создаю, затем просто изменяю поля и новый
> вариант добавляю в events, который TStringList
В этом случае всякий раз при при чтении св-ва Id ты будешь обращаться к одному и тому же объекту и получать, соответственно, одно и то же зн-е св-ва. Что ты и наблюдаешь)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.02.27;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c