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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.01.2012, 12:45   #1
utro35
Пользователь
 
Регистрация: 25.02.2011
Сообщений: 26
По умолчанию Поочередной вывод значений цикла

Здравствуйте.
Помогите пож.
Нужно чтобы по клику от одного до ста выводился в label или в Edit: сначала 1, через секунду 2, потом 3 и так далее.
Спасибо.
utro35 вне форума Ответить с цитированием
Старый 03.01.2012, 13:37   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

вообще не вижу никаких проблем.
кидайте на форму таймер. На срабатывание таймер код, который будет увеличивать на единичку значение (я бы завёл переменную, которую и увеличивал). При достижении 100 таймер выключается. Интервал таймера - 1 секунда.
всё.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.01.2012, 14:17   #3
utro35
Пользователь
 
Регистрация: 25.02.2011
Сообщений: 26
По умолчанию

Ну хорошо, а что я тогда должен присвоить label.caption.
Я понимаю, что ерунда, но никак не получается
utro35 вне форума Ответить с цитированием
Старый 03.01.2012, 14:48   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Код:
for i:=1 to 100 do //i надо обьявить как Integer
begin
  Label1.Caption:=IntToStr(i);
  Slepp(1000); //Спим 1000 милисекунд(1 секунда)
end;
вот так всо просто. Какие-то странные нынче студенты пошли. Накурились чего... Дайте мне покурить =)
Человек_Борща вне форума Ответить с цитированием
Старый 03.01.2012, 14:51   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
вот так всо просто.
данный код выведет 100 через 100секунд.
а в течении ста секунд форма будет висеть.

вы забыли про Application.ProcessMessages;
(хотя я предпочитаю иной метод)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.01.2012, 14:59   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
Подмигивание

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
данный код выведет 100 через 100секунд.
а в течении ста секунд форма будет висеть.

вы забыли про Application.ProcessMessages;
(хотя я предпочитаю иной метод)
Там ещё и очипятка Я дал очевидное
Человек_Борща вне форума Ответить с цитированием
Старый 03.01.2012, 15:00   #7
impulsgraw
Верховный Судья
Пользователь
 
Аватар для impulsgraw
 
Регистрация: 23.11.2010
Сообщений: 82
По умолчанию

Код:
for i := 1 to 100 do begin
label1.caption := inttostr(i);
application.ProcessMessages;
application.HookSynchronizeWakeup;
sleep(1000);
end;
impulsgraw вне форума Ответить с цитированием
Старый 03.01.2012, 15:21   #8
utro35
Пользователь
 
Регистрация: 25.02.2011
Сообщений: 26
По умолчанию

Спасибо, скажите а как остановить это процесс по клику. Т.е. дошло например до 55, всё, нам больше не надо: стоп, останавливаем.
Ага еще одна фигня: при любых действиях(клик в меню, открытие дочерней формы и т.д.) этот секундомер приостанавливается.

Последний раз редактировалось utro35; 03.01.2012 в 15:44.
utro35 вне форума Ответить с цитированием
Старый 03.01.2012, 16:48   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

utro35, чем Вас решение с таймером (мой пост #2) не устраивает?!!
Если уж речь идёт о секундомере, то воспользуйтесь секундомером. Плюс показывайте не абстрактный счётчик, а число секунд, прошедших с момента запуска. Тогда Вы не будете зависеть от степени загрузки ОС.

И останавливать цикл можно либо заведя переменную флаг, которой присваивать значение, когда нужно цикл остановить (тогда эту переменную надо проверять в цикле, где Вы крутите счётчик).
Либо, в случае таймера - банально остановив таймер.

ещё раз повторю - в чём у Вас проблемы с использованием TTImer ?!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.01.2012, 16:52   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

http://programmersforum.ru/showthrea...704#post886704
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод значений Stormvvv Помощь студентам 4 19.02.2011 13:22
Вывод всех значений.. ZveRN JavaScript, Ajax 0 06.11.2010 12:26
Таймер и вывод значений Tekkonkinkreet Помощь студентам 2 29.10.2010 13:01
Вывод новых сообщений цикла с верху. Андрейкин PHP 5 28.08.2010 19:23
вывод значений в файл Егорнапример Помощь студентам 1 08.06.2010 22:10