![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Гость_Drizhenko |
|
|||
Unregistered |
Помогите пожалуйста. Возникает задача создать цикл, который будет выполняться пока не нажата кнопка button2. То есть, что нужно поставить вместо точек? Или может организовать другой цикл, не while.
На форме две кнопки (button1 и button2). Первая запускает цикл, вторая остонавливает + memo1 для вывода на экран. Код у меня не на C++, а не Delphi. |
|||
|
||||
Zero |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 8 Всего: 24 |
А может, тогда тебе на форму кинуть таймер, и когда нажмёш кнопку, значение Enable присваивай false, и цикл остановится.
В Билдере всё как в Delphi, поэтому разницы нету. Добавлено @ 07:46 Вот пример:
Это сообщение отредактировал(а) Zero - 18.10.2005, 07:50 |
||||||
|
|||||||
Zero |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 8 Всего: 24 |
А-а-а... блин, перепутал.... Если на делфи то, так:
А из за такой строки будут глюки:
|
||||
|
|||||
Drizhenko |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 13.1.2005 Репутация: нет Всего: нет |
Интересное решение, но есть одно но. Когда я нажимаю кнопку, то таймер начинает работу, и в мемо вписываюся цифры и пока они не напишутся до 50 таймер не остнавится даже если я буду нажимать кнопку. А это неприемлимо, работа должна прикращаться ни когда выполнится цикл в любое время.
А вообще, спасибо за помощь. Добавлено @ 09:31 Извиняюсь за граматические ошибки. работа должна прикращаться ни тогда когда выполнится цикл, а в любое время. |
|||
|
||||
Zero |
|
||||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 8 Всего: 24 |
Млин, ты же сам написал что должен прекращатся вот этот цикл:
А этот:
Из-за вот этой строки:
Но если тебе нужно, просто выводить цифры от 1 до 50, периодически, а в нужное время останавливать, тогда можно сделать так: Интервал таймера ставь 200 и коды такие:
Единственный недостаток, это то что тут переменная i обявлена как глобальная... |
||||||||||
|
|||||||||||
Drizhenko |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 13.1.2005 Репутация: нет Всего: нет |
Спасибо, работает.
А что означает функция inc(i). Я в Дельфи новичок. |
|||
|
||||
Alexeis |
|
||||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
попробуй
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
||||
|
|||||
Zero |
|
||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 8 Всего: 24 |
Это альтенатива:
Только
При инк, типа такого получается:
Это сообщение отредактировал(а) Zero - 18.10.2005, 10:17 |
||||||||
|
|||||||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
inc(i); => i := i + 1;
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
YurikGL |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 196 Регистрация: 5.7.2005 Где: Уфа Репутация: нет Всего: 2 |
Держи рабочий код
Это сообщение отредактировал(а) YurikGL - 18.10.2005, 22:03 --------------------
|
|||
|
||||
FRAGNATIC |
|
|||
![]() ..::Свирепый Кодер::.. ![]() ![]() Профиль Группа: Участник Сообщений: 901 Регистрация: 17.10.2004 Где: ICQ Репутация: 6 Всего: 11 |
да зачем таймеры то?
самый номаный вариант как уже предложил alexeis1
Это сообщение отредактировал(а) Girder - 19.10.2005, 15:37 |
|||
|
||||
Drizhenko |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 13.1.2005 Репутация: нет Всего: нет |
Получается, что при нажатии кнопки f1 призваивается значение true, а цикл while начинает работу когда f1 ложно. То есть цикл никогда ни начнет работу. Если сделать так:
то все работает, но опять же цикл прекращает свою работу когда он переберёт все значения. НЕ ТО !!!! Спасибо всем, остальное еще не попробовал. |
||||
|
|||||
Albinos_x |
|
||||||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
попробуй так:
Конечно будет перебирать все значения у тебя.... у тебя нет проверки внутри цикла на выполнение условия останова, т.е. правильнее так:
Это сообщение отредактировал(а) Albinos_x - 19.10.2005, 06:55 -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
||||||
|
|||||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Вероятено
код будет работать если эту процедуру запустить отдельным потоком, тогда реакция будет незамедлительной
Поправлено 13.00 Это сообщение отредактировал(а) alexeis1 - 19.10.2005, 12:45 -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Albinos_x |
|
||||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
повторяете предыдущую ошибку, этот код не остановит цикл, я же писал:
-------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |