![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| omickron |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 12.2.2009 Репутация: нет Всего: 1 |
Допустим, имеется свой класс
И компонент TComboBox на форме. В какой-то момент компонент заполняется набором значений:
А в другой момент компонент очищается от значений.
Фишка в том, что при очищении компонента TComboBox элементам, которые хранятся в его Items:TStrings, не вызывается Free. Таким образом, они остаются висеть в памяти. Спрашивается: как освободить эту память, не создавая своего наследника TComboBox? |
||||||
|
|||||||
| ~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 13 Всего: 68 |
||||
|
||||
| omickron |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 12.2.2009 Репутация: нет Всего: 1 |
Нифига это не правильно. Тот же ObjectList умеет разрушать свои дочерние элементы. Я покопался в VCL, но, правда, не нашёл ничего, что может мне помочь. Пока прихожу к выводу, что наследник - единственный выход. Например, перекрыть в нём BeforeDestruction. |
|||
|
||||
| volvo877 |
|
||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 14 Всего: 116 |
Это сообщение отредактировал(а) volvo877 - 4.9.2011, 12:15 |
||||||||
|
|||||||||
| omickron |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 12.2.2009 Репутация: нет Всего: 1 |
Да ну, товарищ "эксперт" volvo877 ...
А про свойство TObjectList.OwnsObjects ты слышал? Это я к тому, что не для всех списков актуальна фраза "Ты создал N количества объектов, так что будь добр уничтожить их самостоятельно...". Неужели "TForm1.Button2Click" - это один из методов предка TComboBox? Спасиб, посмеялся от души |
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: 20 Всего: 58 |
Речь шла о ComboBox, а не о каких-то там еще списках. Подобное освобождение объектов есть в упомянутым тобой же TObjectList. А что ты видишь из готового для тебя примера только Button2Click действительно смешно |
|||
|
||||
| omickron |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 97 Регистрация: 12.2.2009 Репутация: нет Всего: 1 |
Спасибо, я в курсе, как освобождать объекты. Только вот TObjectList как-то не относится к VCL (Visual Component Library) Я спрашивал, может быть, в коде ComboBox или его наследников (тоже в VCL) уже есть возможность освобождать прикреплённые объекты автоматически, но я подобного не нашёл. Думал, может, кто знает. Дык в самом начале темы я и спрашиваю, может быть, ComboBox сам умеет освобождать прикреплённые объекты, например, как это умеет делать TObjectList? Ведь это гораздо удобнее - взвёл флажок OwnsObjects и не заботишься о памяти. А вместо того, чтобы рисовать какие-то "Button2Click" проще сделать наследника с перекрытым Clear. Собственно, об этом и тема - я полагал, что ComboBox сам должен это уметь, поэтому не хотел дублировать код. Ну и напоследок, Это "Button2Click"-то - "готовый для меня пример"? Товарищ volvo877 сказал, что я плохо копался в VCL и привёл код, который, очевидно, я в VCL найти не смог. Думаю, подобную чушь никто в VCL не найдёт. Наверно, по замыслу автора, его должен вызывать сам пользователь? Перед каждым закрытием формы или обновлением списка? __________________________________________________________________ Ладно, короче. Пустые дебаты. Я уже понял, что ComboBox сам не заботится о своих объектах. Похоже, аналогично ListBox. Придётся делать наследников. Всем спасибо, тема закрыта. |
|||
|
||||
| bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 31 Всего: 88 |
Ну закрыта так закрыта. Заодно и ТС отправлен в читальный зал учиться общению. -------------------- Обижено школьников: 8 |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |