| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Рефлекшн (однотипные действия для объектов) |
| Автор: Teoden 2.10.2007, 17:52 | ||||||
| Вобще задача довольно простая. Необходимо спрятать все объекты (картинки, кнопки и т.д) расположенные на форме. Самый простой метод это просто сделать:
Но если объектов много? Второй способ, который значительно укорачивает код это для каждого объекта проверять его принадлежность:
А теперь вопрос к знатокам: Как и можно ли сделать то же самое с помощью рефлекшн в паскале? По идее это выглядело бы примерно так:
Но метод Invoke в паскале в отличии от других языков требует кучу параметров. Хелп по методу Invoke в делфи мне не помог. Помогите разобраться. Или объяните использование Invoke на примере. |
| Автор: maxim1000 2.10.2007, 18:10 |
| Visible - свойство TControl потому достаточно пройтись по компонентам, для каждого проверить, наследуется ли он от TControl и, если да, установить ему Visible в false... |
| Автор: bems 2.10.2007, 19:06 | ||
пройтись по controls[] и ничего не проверять
|
| Автор: Virtuals 3.10.2007, 08:01 |
| а не проще на форму пооложить TPanel и уже на них все остальное потом Panel1.Visible:=false; ЗЫ к тому-же TPanel может быть не один, и выключать их блоками |
| Автор: Alexeis 3.10.2007, 12:46 |
Или поместить все на фрейм, и действовать аналогично. |
| Автор: DonPager 3.10.2007, 18:07 | ||
У меня задача была спрятать много наследников панели и я делал так
+ в том что капшен панели остаётся видимым, а обработчики панели недоступны и компоненты на ней невидимы |