Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2010, 11:03   #1
myprog
Пользователь
 
Регистрация: 11.09.2010
Сообщений: 33
По умолчанию Как организовать перебор объектов формы?

Добрый день ВСЕМ!!!

Вопрос:
Есть форма, на ней объекты

(в данном случае прямоугольники,
но могут быть вообще разные)

с именами: об_01, об_02 ... об_80

как организовать перебор объектов в цикле
for i=1 to 80

с целью изменения цвета фона объекта BackColor

цвет фона зависит от условия.

Заранее СПАСИБО!!!!
myprog вне форума Ответить с цитированием
Старый 13.12.2010, 13:33   #2
LittleFatCat
Пользователь
 
Регистрация: 14.09.2010
Сообщений: 68
По умолчанию

Доброго времени суток!

Думаю, что здесь можно использовать коллекцию объектов формы:

Dim MyControl As Control
For Each MyControl In Me.Controls
If MyControl.Name = "об_01" Then
MyControl.BackColor = <Нужный цвет>
End If
If MyControl.Name = "об_02" Then
...
Next

Вместо IF можно использовать SELECT CASE ... END SELECT
LittleFatCat вне форума Ответить с цитированием
Старый 13.12.2010, 14:36   #3
myprog
Пользователь
 
Регистрация: 11.09.2010
Сообщений: 33
По умолчанию

For Each MyControl In Me.Controls

Это хорошо, но тогда придется использовать цикл в цикле что нехорошо:

Код:
for i=1 to 80
txtName=Cstr("об_" & i)
For Each MyControl In Me.Controls
If MyControl.Name = txtName Then
MyControl.BackColor = <Нужный цвет>
Как просто сформировать обращение к элементу формы:
Form_фрмФОРМА1.ОБ_01.BackColor
???????????????????????????????????
myprog вне форума Ответить с цитированием
Старый 13.12.2010, 15:10   #4
myprog
Пользователь
 
Регистрация: 11.09.2010
Сообщений: 33
По умолчанию

ЭВРИКА!!!!

Код:
for i=1 to 80
txtName=Cstr("об_" & i)
Form_фрмФОРМА1.Controls(txtName).BackColor
ВСЕМ СПАСИБО!!!
myprog вне форума Ответить с цитированием
Старый 13.12.2010, 21:09   #5
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте myprog.
учитывая что:
Цитата:
с именами: об_01, об_02 ... об_80
подобная конструкция более приемлема:
Код:
txtName = "об_" + Right("0" & i, 2)
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 15.12.2010, 12:33   #6
myprog
Пользователь
 
Регистрация: 11.09.2010
Сообщений: 33
По умолчанию

Доброго здравия Teslenko_EA!

Спасибо за предложенный Вами код.
Он избавляет от необходимости проверки длины i
myprog вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление динамических объектов / полная очистка формы 095 Общие вопросы Delphi 3 23.04.2012 16:09
Коллекции объектов формы YouKnowNow Microsoft Office Excel 2 31.05.2010 15:56
Генератор паролей. Прямой перебор.Как ускорить? ProgDel Общие вопросы Delphi 1 16.02.2010 21:34
Как лучше организовать базу данных типо как в ICQ Руслантус БД в Delphi 3 09.08.2008 23:57
как сделать перебор ??? akasex Общие вопросы Delphi 2 13.06.2008 09:27