|
5 / 5 / 0
Регистрация: 29.06.2011
Сообщений: 78
|
||||||
Перебор элементов управления в цикле08.07.2014, 14:28. Показов 7574. Ответов 10
Метки нет (Все метки)
Добрый день!
Подскажите каким образом перебрать поля на форме на предмет заполнения и формирования фильтра. У меня настраиваемый фильтр по 12 критериям, которые заполняются в полях (Edit). Хочу сформировать строку для фильтра типа
Поэтому решил в цикле ... а то много строк получается. Заранее благодарен за помощь.
0
|
||||||
| 08.07.2014, 14:28 | |
|
Ответы с готовыми решениями:
10
Перебор названий элементов в цикле Перебор элементов управления на форме Как происходит перебор элементов в цикле for? |
|
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,670
|
|||||||
| 08.07.2014, 16:37 | |||||||
|
типа как вы предлагаете - не получится
можно попробывать так
0
|
|||||||
|
5 / 5 / 0
Регистрация: 29.06.2011
Сообщений: 78
|
|||||||||||
| 08.07.2014, 17:15 [ТС] | |||||||||||
|
Да, конечно, предполагается, что
Возможно все сделать в одном цикле? Может использовать какое- Свойство типа Tag для элемента управления. Я знаю в С++Builder такое есть. Есть еще маленькая проблемка, если будут пустые некоторые поля, как сформируется фильтр (см. стр.10). У меня в ручном режиме сейчас так пока для 3-х критериев:
0
|
|||||||||||
|
1181 / 632 / 39
Регистрация: 30.05.2010
Сообщений: 715
|
||||||
| 08.07.2014, 20:54 | ||||||
Сообщение было отмечено capup как решение
Решение
Здравствуйте capup.
Если имена контролов (полей ввода формы) и имена полей набора данных поместить в равно-размерные массивы конструкция сборки строки фильтра, не зависимо от количества полей, может быть подобной:
1
|
||||||
|
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,670
|
||||||
| 09.07.2014, 10:21 | ||||||
|
capup,
а зачем вам обходить все контролы формы вы знаете имена полей по которым надо пробежать причем тут надписи кнопки и другие контролы? ну если конечно это так принципиально то цикл для обхода ВСЕХ контролов формы будет такой
гораздо проще создать массив с именами нужных контролов и другой нужной инфой и дергать в нужный момент нужную информацию (вам предложили для реализации 2 варианта)
2
|
||||||
|
5 / 5 / 0
Регистрация: 29.06.2011
Сообщений: 78
|
|
| 09.07.2014, 10:50 [ТС] | |
|
Да, спасибо, snipe!
Я думал, что есть возможность ограничить пробежку по всем элементам, как я уже говорил свойством типа Tag (ярлычок для элементов управления). Кстати говоря есть такое свойство в VBA? Огромное спасибо за код!
0
|
|
|
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,670
|
||||||
| 09.07.2014, 10:50 | ||||||
|
и еще
смотрите что вы пытаетесь сделать есть набор неких переменных если поле1 заполнено то переменной1 присваивается значение если нет то не присваивается и так 12 раз потом определяется нужно ставить and или не нужно вопрос - где цикл? (так конечно можно сделать - но не продуктивно) в предложенных вам вариантах производится обход нужных контролов(еще раз повторюсь не всех а именно нужных) и собирается строчка фильтра т.е. сначала если строчка фильтра пустая и найденное первое не пустое поле то вносится инфа без and в последующих случаях с and есть конечно еще более хитрый вариант выглядеть он будет так (покажу для 3 полей)
0
|
||||||
|
5 / 5 / 0
Регистрация: 29.06.2011
Сообщений: 78
|
|
| 09.07.2014, 10:54 [ТС] | |
|
Teslenko_EA, Ваш код очень красивый и умный!
Не знаю что там проценты и доллары делают, но код работает и удоборасширяем! Спасибо за оперативность!
0
|
|
|
4089 / 1469 / 401
Регистрация: 07.08.2013
Сообщений: 3,670
|
|
| 09.07.2014, 11:05 | |
|
проценты и доллары - это тип переменных
integer и string соответственно
0
|
|
|
5 / 5 / 0
Регистрация: 29.06.2011
Сообщений: 78
|
|
| 09.07.2014, 11:24 [ТС] | |
|
snipe, да, бомба!
Спасибо! Четно не знаю все способы хороши!
0
|
|
|
58 / 1 / 1
Регистрация: 12.01.2015
Сообщений: 10
|
||||||
| 06.09.2017, 23:09 | ||||||
|
А я так ещё делал, в названия контролов добавил - П59
0
|
||||||
| 06.09.2017, 23:09 | |
|
Помогаю со студенческими работами здесь
11
Перебор элементов поимённо в цикле с помощью итератора Обновление формы при изменении в цикле свойств элементов управления Перебор в цикле
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|