Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 27.07.2017
Сообщений: 17
1

Опрос checkbox

12.11.2018, 10:41. Показов 1466. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго дня, уважаемые форумчане. У меня следующий вопрос. Пишу программу на Delphi, суть которой, опрос 116 датчиков с интервалом 1 сек. Состояние датчиков на панели отображается в виде стандартных checkbox'ов. Если датчик в работе, то checkboxв состоянии истина, если нет, то ложь. Так вот, как собственно организовать проверку состояний самих checkbox'ов в цикле. Проверять по условию, типа
Delphi Скопировано
1
If sost=1 then checkbox1.Checked=True else checkbox1.Checked=False
Очень утомительно. Тем более, данные checkbox'ы используются не один раз.
Заранее всем спасибо за советы и помощь.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.11.2018, 10:41
Ответы с готовыми решениями:

Опрос CheckBox на Checked и дальнейшие действия
Здравствуйте. Подскажите, пожалуйста, как решить такую задачу. На форме 16 CheckBox, каждый соответствует каналу устройства. Включаются они...

Как при нажатии на CheckBox передавать в DbEdit определенное слово или Caption CheckBox'а?
Народ у меня сложилась такая ситуация. Пишу БД. У меня на форме есть 2 компонента DBEdit и несколько CheckBox. И у меня возник такой...

Опрос ip
Добрый день!!! Написал программу которая пингует принтеры в сети. Хочется реализовать так чтобы был список принтеров и если они в сети...

8
Почетный модератор
 Аватар для Puporev
64306 / 47603 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
12.11.2018, 10:46 2
А где у Вас хранится состояние датчиков? Вероятно какой-то массив?
0
0 / 0 / 0
Регистрация: 27.07.2017
Сообщений: 17
12.11.2018, 10:55  [ТС] 3
Нет массива нет. Идёт ежесекундный опрос состояния. Проверяется какие каналы сейчас открыты, какие закрыты. Там автоматика работает. А визуального контроля нет. Вот и стоит задача его организовать.
0
Почетный модератор
 Аватар для Puporev
64306 / 47603 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
12.11.2018, 11:01 4
Ну как-то же результат проверки канала передается в программу, типа номер канала+состояние?
0
0 / 0 / 0
Регистрация: 27.07.2017
Сообщений: 17
12.11.2018, 11:12  [ТС] 5
Если Вас интересует полностью процесс, то на каждом канале стоит электроклапан. Ему просто подаётся +5В. Я в цикле проверяю, если напряжение на клапана идёт, то он открыт, если не идёт, то закрыт. Фактически, организован цикл от 1 до 116 и снимаю состояние с линии питания клапана. Это я реализовал. Но вот теперь как это отобразить на экране????
0
Почетный модератор
 Аватар для Puporev
64306 / 47603 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
12.11.2018, 12:08 6
Лучший ответ Сообщение было отмечено FenixKenig как решение

Решение

Как я понял, примерно так.
Delphi Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//присвоить значения Tag всем CheckBox
procedure TForm1.FormCreate(Sender: TObject);
var i:integer;
begin
for i := 0 to ControlCount - 1 do
if Controls[i] is TCheckBox then
TCheckBox(Controls[i]).Tag:=i+1;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var i,j,a:integer;
begin
randomize;
for i:=1 to 116 do
 begin
  a:=random(2); //получаем сигнал 0 или 1
  for j:=0 to ControlCount-1 do
   begin
    if (Controls[j] is TCheckBox)and(TCheckBox(Controls[j]).Tag=i)then
    if a=1 then  TCheckBox(Controls[j]).Checked:=true
    else TCheckBox(Controls[j]).Checked:=false;
   end; 
 end;
end;
1
 Аватар для krapotkin
5896 / 4620 / 1453
Регистрация: 14.04.2014
Сообщений: 20,476
Записей в блоге: 20
12.11.2018, 12:48 7
я настоятельно рекомендую прямо сейчас, пока процесс не зашел слишком далеко
сделать так как намекается в #2
завести хотя бы массив для хранения информации
а отображение делать из массива
потому что неизбежно вы захотите сделать с этими данными что-то еще и еще...

а еще, моя практика показывает, что впоследствии всегда приходится эти "индикаторные" чекбоксы заменять на что-то другое, например разного цвета TShape
это в отличие от первого абзаца - просто совет
0
0 / 0 / 0
Регистрация: 27.07.2017
Сообщений: 17
12.11.2018, 13:27  [ТС] 8
Цитата Сообщение от krapotkin Посмотреть сообщение
я настоятельно рекомендую прямо сейчас, пока процесс не зашел слишком далеко
сделать так как намекается в #2
завести хотя бы массив для хранения информации
а отображение делать из массива
потому что неизбежно вы захотите сделать с этими данными что-то еще и еще...

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

Добавлено через 1 минуту
Большое спасибо за помощь в написании кода. Всё работает. Кое-что изменил, но идея полностью Ваша.
0
12.11.2018, 16:39 9

Не по теме:

Цитата Сообщение от krapotkin Посмотреть сообщение
"индикаторные" чекбоксы заменять на что-то другое
Это первым делом необходимо!!! Самый дурацкий (наряду с RadioButton) компонент...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.11.2018, 16:39
Помогаю со студенческими работами здесь

Опрос движок браузера
На каком движке (компоненте) сейчас будет перспективнее всего писать браузер ? знаю gecko,tchromium но они уже давненько не...

Опрос. Как лучше делать проверку корректности ввода?
Суть вопроса в том, что на каком этапе лучше проводить проверку корректности ввода данных. Ну предположим есть Edit который предполагает...

Одновременный опрос выбранных портов ПК, синхронизация в режиме реального времени
Написать программу. Одновременный опрос выбранных портов пк. Синхронизация в режиме реального времени

Написать код имитирующий опрос датчиков реактора в реальном времени
Всем привет! Нужно написать код имитирующий опрос датчиков реактора в реальном времени и не знаю как это реализовать На форме при...

Опрос состояния порта принтера
Помогите выполнить сабж


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Django или Flask: что выбрать для веб-разработки на Python
py-thonny 13.03.2025
Django – это высокоуровневый фреймворк, который придерживается философии "всё включено". Он предоставляет разработчику готовые решения для большинства типичных задач веб-разработки: от аутентификации. . .
Непрерывное развертывание в Java с Kubernetes
Javaican 13.03.2025
Чем так привлекателен Kubernetes для развертывания Java-приложений? Этот оркестратор контейнеров позволяет автоматизировать развертывание, масштабирование и управление контейнеризированными. . .
Предотвращение XSS, CSRF и SQL-инъекций в JavaScript
run.dev 13.03.2025
JavaScript занимает первые позиции среди языков веб-разработки, но его распространенность делает его привлекательной целью для злоумышленников. Межсайтовый скриптинг (XSS), межсайтовая подделка. . .
PHP 8: JIT-компиляция и улучшение производительно­сти
Jason-Webb 13.03.2025
PHP никогда не славился своей скоростью. Многие сталкивались с проблемами производительности при работе со сложными вычислениями или обработкой больших объемов данных. Традиционная модель выполнения. . .
Сериализация данных с Apache Avro в Kafka
Javaican 12.03.2025
Apache Kafka стала одним из ключевых решений для работы с большими потоками данных. Однако с ростом объемов передаваемых данных возникает проблема: как эффективно сериализовать и десериализовать. . .
Создание потребителей Kafka с помощью Reactor Kafka
Javaican 12.03.2025
Reactor Kafka — это библиотека, объединяющая Apache Kafka с реактивным программированием на базе Project Reactor. Такое сочетание позволяет строить неблокирующие, асинхронные приложения с контролем. . .
Ключевые слова Python
py-thonny 12.03.2025
Ключевые слова — не просто часть синтаксиса, а настоящий каркас языка, определяющий его возможности и ограничения. В Python существует 35 ключевых слов и 4 так называемых "мягких ключевых слова" —. . .
Сортировка в Python: Подробный обзор sorted() и .sort()
py-thonny 12.03.2025
В Python для решения задач сортировки предусмотрены два основных инструмента: функция sorted() и метод . sort(). На первый взгляд, различия между ними могут показаться незначительными, но когда дело. . .
Автоматизация задач в HCL Notes
Mr. Docker 12.03.2025
Если вы когда-нибудь работали с HCL Notes (раньше известным как Lotus Notes), то наверняка испытали смешанные чувства. С одной стороны, это мощная платформа для корпоративных приложений, с другой —. . .
Установка и настройка HCL Notes
Mr. Docker 12.03.2025
HCL Notes (ранее известный как IBM Notes и Lotus Notes) — это не просто почтовый клиент, а целая корпоративная платформа для коллективной работы. Если вы когда-нибудь попадали в компанию, где все. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер