![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
PsiMagistr |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 479 Регистрация: 31.12.2009 Репутация: 1 Всего: 1 |
Ребята, в процессе игроделания возник следующий вопрос:
На форме есть пустой компонент-контейнер класса TPanel Помещаю туда с панели компонентов кнопочку... Чему равен ее ComponentIndex? По наивности я считал 0, поскольку это первый компонент на панели... (Номера начинаются с нуля) Увы это не так. Единица. Я поместил еще одну панель и кнопку сверху у нее индекс вообще оказался 3... Как я понимаю, Дельфи произвольно выбирает эти индексы. А вот если компоненты рождать на панели динамически, (Create) то все выходит строго по порядку... В чем тут заковыка? СПасибо огромное за ответ. -------------------- "Арфы нет? Возьмите бубен! Ребята, будем жить!" (с) "В бой идут одни старики" --- "ИЕ" - один из самых сумасшедших браузеров в нашей галактике. |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 31 Всего: 484 |
ComponentIndex - индекс компонента на форме.
Соответственно у панели 1 -0, кнопка -1, вторая панель - 2, вторая кнопка 3. Контролы считаются от Parent, компоненты от Owner. При создании в рантайм, ты можешь назначить owner'ом любой контрол. В дизайнтайме овнером всегда является форма. Соответственно для перебора контролов на панели нужно использовать свойство Controls панели. |
|||
|
||||
PsiMagistr |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 479 Регистрация: 31.12.2009 Репутация: 1 Всего: 1 |
ComponentIndex - индекс компонента на форме.
Snowy, Выручил... Спасибо. И где мне найти ControlIndex, сколько не искал нет такого... И я то дубина, полагал, что Owner панель а не форма... Это сообщение отредактировал(а) PsiMagistr - 19.1.2012, 15:20 -------------------- "Арфы нет? Возьмите бубен! Ребята, будем жить!" (с) "В бой идут одни старики" --- "ИЕ" - один из самых сумасшедших браузеров в нашей галактике. |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 31 Всего: 484 |
Такого нет.
А в нём есть необходимость? Ты всегда можешь перебрать все контролы на панели и сравнить их с нужным. Или же просто прописать нужный идентификатор в Tag. Зависит от цели. |
|||
|
||||
PsiMagistr |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 479 Регистрация: 31.12.2009 Репутация: 1 Всего: 1 |
Snowy,
А если динамически рождать и делать Ownerom Панель... или лучше не надо? -------------------- "Арфы нет? Возьмите бубен! Ребята, будем жить!" (с) "В бой идут одни старики" --- "ИЕ" - один из самых сумасшедших браузеров в нашей галактике. |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 31 Всего: 484 |
А смысл? Для каких целей тебе понадобился индекс контрола?
Наверняка можно прекрасно обойтись без него. |
|||
|
||||
БелАмор |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 209 Регистрация: 10.6.2010 Где: Россия Репутация: 7 Всего: 17 |
Не на форме, а в списке Components владельца. В большинстве случаев владельцем (Owner) действительно является форма (для помещённых в дизайнере - всегда), но это совершенно не обязательно. Для создаваемых самостоятельно компонентов владелец может быть назначен произвольно, и даже не назначен вовсе: Create(nil). Назначите - будет.
Это не критично, но лучше - форму. По этому поводу я немного писал здесь (02-07-2009 17:33): http://www.delphikingdom.com/asp/answer.asp?IDAnswer=71499 Для исследования тонкостей, связанных с Components и Controls, может оказаться полезным код: Debug_Utils.pas
Где-нибудь в уголке формы помещаете спидбаттоны, по которым вызываете нужную процедуру, указывая в качестве параметра нужную панель или Self для формы, и смотрите что там получилось. Добавлено через 8 минут и 25 секунд На всякий случай: глядя на работу с Result в приведённом коде, думаю нелишним будет привести ссылку на статью: http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1435 |
||||
|
|||||
PsiMagistr |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 479 Регистрация: 31.12.2009 Репутация: 1 Всего: 1 |
Благодарю Вас.
-------------------- "Арфы нет? Возьмите бубен! Ребята, будем жить!" (с) "В бой идут одни старики" --- "ИЕ" - один из самых сумасшедших браузеров в нашей галактике. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |