Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
2 / 2 / 1
Регистрация: 19.07.2015
Сообщений: 37
1

Изменение свойств компонента по Tag

27.07.2015, 15:26. Показов 2087. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго времени суток.
Нужна помощь в решении вот какой задачи. Как изменить/прочитать значения свойств компонента зная только его Tag?

Я использую вот какой метод, но почему то обращение происходит ко всем компонентам не зависимо от значения Tag.

C++
1
2
3
4
5
6
7
8
9
10
11
12
//---------------------------------------------------------------------------------------------------------------------
for(int i=1; i<(Form1->ComponentCount-1); i++)
                    {
                         if(Form1->Components[i]->ClassNameIs("TsCheckBox"))
                           {
                              if((4>=(Form1->Components[i]->Tag))||((Form1->Components[i]->Tag)<=8))
                              {
                                 ((TsCheckBox *)Form1->Components[i])->Checked = true;
                              }
                          }
                    }
//---------------------------------------------------------------------------------------------------------------------
Заранее благодарю за конструктивные ответы.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.07.2015, 15:26
Ответы с готовыми решениями:

IBDatabase - изменение свойств компонента из программы и как результат - не выводит данные
Подскажите пожалуйста, где я не прав, задача такая, есть БД, запускаем программу, ввобдим адрес до...

Изменение свойств новосозданного компонента
Здравствуйте! Мне нужно в компоненте на основе комбобокса заполнить содержимое выпадающего списка...

Изменение свойств динамически созданного компонента
Здравствуйте! Из подключенного DLL файла динамически создаю форму, также динамически размещаю на...

Изменение свойств компонента из дополнительного модуля
Здравствуйте. У меня в программе имеется дополнительный модуль, который я прописал в &quot;uses&quot;....

14
Модератор
3401 / 2172 / 353
Регистрация: 13.01.2012
Сообщений: 8,410
27.07.2015, 16:08 2
если вы присвоили компоненту Tag то безусловно вы можете перебрать все компоненты и найти компонент с заданным Tag. ваш код модифицирует все компоненты с Tag больше 4 или меньше 8. то есть на самом деле - компоненты с любым значением Tag
0
случайный прохожий
3021 / 2045 / 623
Регистрация: 20.07.2013
Сообщений: 5,491
27.07.2015, 16:10 3
Странное условие - если Tag <= 4 или <= 8. Получается, если Tag <= 8, на чекбоксах ставится галка.
0
2 / 2 / 1
Регистрация: 19.07.2015
Сообщений: 37
27.07.2015, 16:24  [ТС] 4
Ну вообще то от 4 до 8.....
0
случайный прохожий
3021 / 2045 / 623
Регистрация: 20.07.2013
Сообщений: 5,491
27.07.2015, 16:26 5
Неужели. От 4 до 8 это
C++
1
if((4<=(Form1->Components[i]->Tag))&&((Form1->Components[i]->Tag)<=8))
Найти пару отличий.
2
2 / 2 / 1
Регистрация: 19.07.2015
Сообщений: 37
27.07.2015, 16:36  [ТС] 6
Согласен. Мой косяк.
Есть ли возможность без перебора обратиться к компоненту, только по тагу ?
0
Модератор
3401 / 2172 / 353
Регистрация: 13.01.2012
Сообщений: 8,410
27.07.2015, 16:40 7
Цитата Сообщение от bad_luck_ho_ho Посмотреть сообщение
Есть ли возможность без перебора обратиться к компоненту, только по тагу ?
если вы сделаете тагом указатель на этот же самый объект то да)
0
2 / 2 / 1
Регистрация: 19.07.2015
Сообщений: 37
27.07.2015, 17:02  [ТС] 8
Цитата Сообщение от vxg Посмотреть сообщение
если вы сделаете тагом указатель на этот же самый объект то да)
С этого момента по подробнее пожалста !
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32950 / 21270 / 8166
Регистрация: 22.10.2011
Сообщений: 36,538
Записей в блоге: 8
28.07.2015, 09:36 9
Цитата Сообщение от bad_luck_ho_ho Посмотреть сообщение
Есть ли возможность без перебора обратиться к компоненту, только по тагу ?
Нет. В любом случае будет перебор, хоть по тегу, хоть по имени компонента - все равно перебираются все компоненты (FindComponent - это тоже перебор, только скрытый от глаз в модуле Classes)
0
2 / 2 / 1
Регистрация: 19.07.2015
Сообщений: 37
28.07.2015, 13:41  [ТС] 10
Ну раз нельзя без перебора, буду по старинке в for'e делать обращение.
Всем огромное спасибо за ответы.
0
Модератор
3401 / 2172 / 353
Регистрация: 13.01.2012
Сообщений: 8,410
28.07.2015, 16:29 11
Цитата Сообщение от bad_luck_ho_ho Посмотреть сообщение
С этого момента по подробнее пожалста !
тег это число. указатель на компонент тоже число. если вы присвоите тегу это число то потом сможете вызывать его) правда это ничем не отличается от ситуации когда вы просто имеете указатель на компонент
0
управление сложностью
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
29.07.2015, 13:43 12
Цитата Сообщение от vxg Посмотреть сообщение
тег это число. указатель на компонент тоже число. если вы присвоите тегу это число то потом сможете вызывать его) правда это ничем не отличается от ситуации когда вы просто имеете указатель на компонент
А для чего тэг используется ? Сори за отклонение
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32950 / 21270 / 8166
Регистрация: 22.10.2011
Сообщений: 36,538
Записей в блоге: 8
29.07.2015, 14:01 13
TComponent.Tag
Tag has no predefined meaning. The Tag property can store any additional integer value for the convenience of developers
1
управление сложностью
1693 / 1306 / 259
Регистрация: 22.03.2015
Сообщений: 7,545
Записей в блоге: 5
29.07.2015, 14:03 14
Спасибо большое, теперь понял
0
BRcr
29.07.2015, 22:13     Изменение свойств компонента по Tag
  #15

Не по теме:

Цэ лычка. Вот у меня тут летехи в кнопках за выслугу, а тут капитаны-групбоксы. Ну, и правит балом генерал application. :D

0
29.07.2015, 22:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.07.2015, 22:13
Помогаю со студенческими работами здесь

Изменение свойств компонента из класса в котором не был создан этот компонент
Требуется изменить текст на кнопке с помощью вызова процедуры из другого класса в новом потоке. ...

Поиск компонента по Tag'y
Можно выполнить поиск компонента зная его Tag? Добавлено через 37 секунд Компоненты разные ...

Редактор свойств компонента
Подскажите, как возможно реализовать вызов редактора свойства в собственном компоненте (например,...

Odd tag in Exec! Odd tag in Cleanup! Odd tag in CreateGroup! UnityEditor.DockArea:OnGUI()
Здравствуйте, столкнулся с такими ошибками Odd tag in Exec! Odd tag in Cleanup! Odd tag in...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru