| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Удаление компонентов с формы |
| Автор: zzmeyz 17.11.2006, 10:45 |
| Есть форма с компонентом PageControl с тремя закладками. Как можно программно удалить все компоненты расположенные на второй закладке? Проще говоря, нужно отчистить содержимое закладки. |
| Автор: popolzen 17.11.2006, 11:00 | ||
|
| Автор: digs 17.11.2006, 11:02 |
| PageControl.Pages[1].DestroyComponents |
| Автор: zzmeyz 17.11.2006, 12:19 |
| Еще вопрос: можно ли выбирать компоненты, которые удалять не нужно? Если точнее, нужно чтоб остались две кнопки. |
| Автор: popolzen 17.11.2006, 13:00 | ||
| digs, ты проверял этот код? Попробуй в Form Designer'е создать небольшой примерчик и проверить свой код для начала. Form Designer для всех созданных в нем компонентов выставляет свойство Owner в имя формы, а метод DestroyComponents использует как раз это свойство. PageControl.Pages[1].DestroyComponents не найдет ни одного компонента, принадлежащего ему, и поэтому не освободит ничего (не путай Owner с Parent). zzmeyz, да, это можно сделать, написав что-то типа
|
| Автор: Sunvas 17.11.2006, 13:01 | ||
У каждого компонента есть свойство tag те кнопки, которые на надо удалять присвой tag = 1 и при удалении проверяй. Вот те пример:
|
| Автор: Rennigth 17.11.2006, 13:04 | ||||||
Объявляешь массив контролов которые не надо удалять, аля:
в него добавляешь свои кнопки которые не надо удалять:
При удалении проверяешь что-бы их не удалять:
|
| Автор: Alexeis 17.11.2006, 14:34 |
Не нужно в методе Free уже имеется такая проверка. |
| Автор: digs 17.11.2006, 18:15 |
| popolzen Ну да, извиняюсь не подумал. Я просто привык удалять лишь то, что сам руками создаю |