![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]а в чём проблема?