![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Bokul |
![]()
Сообщение
#1
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: ![]() ![]() ![]() |
Как правильно уничтожить экземпляр PStringCollection, каждый элемент которого есть указателем на строку (создаётся с помощью newstr)?
Сообщение отредактировано: Bokul - 21.11.2006 7:46 -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
![]() ![]() |
klem4 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Это в каком из 16б паскалей такое есть ?
![]() -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
volvo |
![]()
Сообщение
#3
|
Гость ![]() |
В Турбо Паскале есть... TurboVision вообще на коллекциях построен...
Bokul, Dispose(my_collection_ptr, Done); Все содержимое удаляет сам деструктор... |
Bokul |
![]() ![]()
Сообщение
#4
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: ![]() ![]() ![]() |
Спасибо.
А как быть с TCollection? Также само просто вызвать деструктор или же сначала надо пробежаться по коллекции, чтобы "вручную" вернуть занятую ее элементами память назад в кучу, и только потом уничтожать сам экземпляр TCollection? Сообщение отредактировано: Bokul - 22.11.2006 7:08 -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
Переопредели FreeItem так, чтобы он мог удалить айтемы твоего типа (если они - НЕ наследники TObject). Вот что об этом говорится в Help-е:
Цитата(TP Help) TCollection.FreeItem method: Descendant collection objects that don't use descendants of TObject as their items, such as string collections, must override FreeItem to dispose of the given Item. |
Bokul |
![]()
Сообщение
#6
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: ![]() ![]() ![]() |
Цитата such as string collections Так я не понял для коллекции строк надо переопределять FreeItem или нет? Вот исходник этого метода:
Он же вроде сам все что нужно делает... -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
А я не понял, о чем ты спрашиваешь... Выше был вопрос о TCollection... Это - абстрактная коллекция, элементы которой удаляются самостоятельно ТОЛЬКО тогда, когда они - наследники TObject... Теперь ты вдруг говоришь о TStringCollection, которая в принципе предназначена для работы со строками, было бы странно, если бы она эти строки не удаляла сама...
|
Bokul |
![]()
Сообщение
#8
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: ![]() ![]() ![]() |
Цитата TStringCollection, которая в принципе предназначена для работы со строками, было бы странно, если бы она эти строки не удаляла сама... Ну да, я так и думал. Меня запутала цитата из справки, которою ты привел - such as string collections , я думал тут имеется ввиду TStringCollection... -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 6:34 |