Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TabOrder в RunTime'е


TStas ©   (2009-03-13 22:46:00) 

Есть форма, на ней некоторые компоненты созданы в DisignTime'е, а некоторые в компоненты в RunTime'е, потому, что я их написал и не стал ставить в среду, т. к. они только для одного проекта. Вот как бы в RunTime'е расставить им TabOrder? Ведь просто циклом ничего хорошего не получится: изменив TabOrder у одного, тем самым я вызову изменение TabOrder'а и у других. Что с этим делать?


MsGuns   (2009-03-16 11:41:00) [1]

Я, кстати, давно сделал подобную процу и теперь не имею никаких проблем при размещении в дизайне визуальных контролов для ввода. По событию OnShow формы просто вызываю эту процедуру, указывая параметром панель (гркпбокс, фрэйм, пайджконтрол и т.д.).

Процедура умеет работать с вложенными контейнерами.


MsGuns   (2009-03-16 11:38:00) [2]

Вероятно, порядок обхода контролов следует сделать слева направо и сверху вниз. Если так, то можно написать процедуру, которая будет перебирать все винконтрольные компоненты, принадлежащие указанному параметром винконтролу-контейнеру, анализировать их "географические" координаты, расставляя в списке ссылки на компоненты в нужном порядке, а затем преребрать список, присваивая табордеру очередного контрола его индекс в списке.
Процедуру есть смысл сделать универсальной для использования в дальнейших проектах


Плохиш   (2009-03-16 10:40:00) [3]


> TStas ©   (15.03.09 15:25) [9]
>  Решение нашёл простейшее - назначать не подряд, а с шагом,
>  например, в 10.

Глупость.
Чем решение из [2] не устроило?


TStas   (2009-03-15 15:25:00) [4]

А вот что было не так: я назначал ТабОрдера подряд, при этом получалось, что они, т. к. такие уже используются, переназначались и у тех компонентов, которым уже назначены. Решение нашёл простейшее - назначать не подряд, а с шагом, например, в 10.


Тын-Дын   (2009-03-14 01:28:00) [5]


> Сова Иа   (14.03.09 01:23) [6]
> > Тын-Дын ©   (14.03.09 01:11) [4]> Хочешь поговорить об
> этом или конкретные вопросы есть?конкретный вопрос в [0]
> в конце, если вы не заметилитак что с этим делать?


Ещё раз не понял, у тебя какой вопрос?

В [2] дан конкретный полный ответ на все вопросы из [0].

Если что непонятно, конкретизируй, а не ссылайся на вопрос автора.


Медвежонок Пятачок   (2009-03-14 01:27:00) [6]

Ведь просто циклом ничего хорошего не получится: изменив TabOrder у одного, тем самым я вызову изменение TabOrder'а и у других. Что с этим делать?

Модифицировать цикл


Сова Иа   (2009-03-14 01:23:00) [7]


> Тын-Дын ©   (14.03.09 01:11) [4]
> Хочешь поговорить об этом или конкретные вопросы есть?

конкретный вопрос в [0] в конце, если вы не заметили
так что с этим делать?


Германн   (2009-03-14 01:15:00) [8]


> TStas ©   (13.03.09 22:46)
>
> Есть форма, на ней некоторые компоненты созданы в DisignTime'е,
>  а некоторые в компоненты в RunTime'е, потому, что я их
> написал и не стал ставить в среду, т. к. они только для
> одного проекта. Вот как бы в RunTime'е расставить им TabOrder?
>  Ведь просто циклом ничего хорошего не получится: изменив
> TabOrder у одного, тем самым я вызову изменение TabOrder'а
> и у других. Что с этим делать?
>

Думать, а не спрашивать в И-нете. :)
Точнее - "уяснить задачу и принять решение"! :)


Тын-Дын   (2009-03-14 01:11:00) [9]


> Сова Иа   (14.03.09 01:09) [3]
> > Тын-Дын ©   (14.03.09 00:09) [2]и что с этим делать?


Хочешь поговорить об этом или конкретные вопросы есть?


Сова Иа   (2009-03-14 01:09:00) [10]


> Тын-Дын ©   (14.03.09 00:09) [2]

и что с этим делать?


Тын-Дын   (2009-03-14 00:09:00) [11]


> Сова Иа   (13.03.09 22:57) [1]
> а в чём проблема?


Нет проблем?


> TStas ©   (13.03.09 22:46) 
> Есть форма, на ней некоторые компоненты созданы в DisignTime'е,
>  а некоторые в компоненты в RunTime'е, потому, что я их
> написал и не стал ставить в среду, т. к. они только для
> одного проекта. Вот как бы в RunTime'е расставить им TabOrder?
>  Ведь просто циклом ничего хорошего не получится: изменив
> TabOrder у одного, тем самым я вызову изменение TabOrder'а
> и у других. Что с этим делать?


Нумеровать в нужном порядке, начиная с 0.
Будут меняться TabOrder только тех компонентов, номер которых больше текущего.


Сова Иа   (2009-03-13 22:57:00) [12]

а в чём проблема?


Наверх

Титульная страница Поиск, карта сайта Написать письмо