Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 09.10.2014
Сообщений: 10

Создать массив таймеров

10.06.2015, 16:25. Показов 4301. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день форумчане. Хотел попросить помощи. Суть задачи и проблема такова: есть форма. На ней я создаю 30 лейблов слева вида: 1. 2. 3. и 30 лейблов справа вида: 00:00. Есть 30 человек у которых в свою очередь есть идентификационная карточка со штрих кодом. Данные о пользователях хранятся в БД. Пользователь приходит к оператору у которого есть сканер. Оператор сканирует производиться поиск в базе данных. Берется имя найденного пользователя и записывается !! в свободный лейбл слева + в той же строке в лейбле справа запускается таймер обратного отсчета с интервалом 5 минут. И так далее нужно чтоб для 30 человек была возможность одновременно отсчитывать время. Как отсчитваются чьи либо 5 минут появляется сообщение и чистятся лейбл текста и таймер.
Лейблы динамически уже добавлены. Процедура поиска свободного лейбла написана. А вот с таймерами у меня не ладиться. Как быть посоветуйте. Заранее спасибо за ответы.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.06.2015, 16:25
Ответы с готовыми решениями:

Массив таймеров
Здравствуйте. Подскажите пожалуйста с таким вопросом... В программе создается массив таймеров. Пытаюсь реализовать работу таймеров так,...

Массив таймеров и 1 обработчик события Tick
Подскажите, пожалуйста, как грамотнее сделать. Есть массив, в который я добавляю таймеры(System.Windows.Forms.Timer): public ArrayList...

Если можно создать массив TButton, то как создать массив их событий?
Пишу программу в которой много однообразных Едитов и кнопок. Чтобы "облегчить сбе жизнь" создал MyEdit: array of TEdit. Аналогично...

2
135 / 130 / 60
Регистрация: 16.06.2013
Сообщений: 527
10.06.2015, 17:24
Лучший ответ Сообщение было отмечено Hairu как решение

Решение

Нужно перестать биться лбом в дверь, и увидеть, что стены нет >_<...
Сорри, просто ваше решение УЖАСНО не верное. Не нужно никакого массива таймеров. Нужен один! таймер на форме, и массив значений таймера. В вашем случае можно сделать както так:
Кликните здесь для просмотра всего текста

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
        int[] timers;//Список таймеров, время в секундах
 
        Label[] labels;//Массив лейблов для отсчёта времени, добавлен для демонстрации
        Label[] labels1;//Массив лейблов для текста, добавлен для демонстрации
 
        const int ctP = 30; //Количество человек
        /// <summary>
        /// Процедура инициализации всего кода. Сюда нужно добавить:
        /// </summary>
        private void init()
        {
            timers = new int[ctP];
            for (int i = 0; i < ctP; i++)
                timers[i] = 0;
        }
 
        /// <summary>
        /// Добавление таймера, соответствующее номеру найденного вами лейбла
        /// </summary>
        /// <param name="i">Номер лейбла</param>
        private void addTimer(int i)
        {
            timers[i] = 300;//отсчёт 5 минут
        }
 
        /// <summary>
        /// Перевод секунд в строку вида ММ:СС
        /// </summary>
        /// <param name="time">Время в секундах</param>
        /// <returns>Строка минут и секунд</returns>
        private string secToMin(int time)
        {
            return (time / 60).ToString() + ":" + (time % 60).ToString();
        }
 
        /// <summary>
        /// А это ваш основной таймер. Интервал - 1000
        /// </summary>
        private void timer1_Tick(object sender, EventArgs e)
        {
            for (int i = 0; i < ctP; i++)
            {
                if (timers[i] > 0)
                {
                    labels[i].Text = secToMin(timers[i]);
                    timers[i]--;
                }
                else
                {
                    labels[i].Text = "00:00";
                    labels1[i].Text = "";
                }
            }
        }
0
0 / 0 / 0
Регистрация: 09.10.2014
Сообщений: 10
10.06.2015, 17:48  [ТС]
Так то ужас я теперь увидел)) Спасибо. Постараюсь не биться о стену)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.06.2015, 17:48
Помогаю со студенческими работами здесь

Создать массив из 15 элементов, заполнить его случайными числами. Создать новый массив из отрицательных элементов
Создать массив из 15 элементов, заполнить его с помощью случайных чисел. Создать новый массив из отрицательных элементов массива у.

Несколько таймеров
Добрый день! не ругайте, я только учусь! Delphi 7 На форумах читал что 2 таймера могут свободно работать, на других, что нет.. и вот...

синхронизация таймеров
Нужно оцифровывать данные привязанные ко времени. От RTC не получить нужного мне прерывания, решил взять еще один таймер, т.е. RTC...

Несколько таймеров
Вот код таймера. &lt;script type='text/javascript'&gt; (function(){ var expire = 1380643200000, countDown = function(){ ...

Синхронизация таймеров
Доброго времени суток. Мне необходимо синхронно запустить два таймера которые будут генерировать ШИМ. В дальнейшем понадобится так же...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru