![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| NewDima |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 922 Регистрация: 20.2.2006 Где: <?here?> Репутация: 2 Всего: 12 |
Нужно предусмотреть выход из цикла при движении мышью или нажатии на любую клавишу
Repeat ... ... ... Until ???. Как это сделать? |
|||
|
||||
| Ozzя |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 19.7.2004 Репутация: нет Всего: 1 |
Break (procedure)
Terminates a for, while, or repeat statement. Remarks: Causes the innermost enclosing for, while, or repeat statement to be exited immediately. Is similar to a goto statement addressing a label just after the end of the innermost enclosing repetitive statement. The compiler will report an error if a call to Break is not enclosed by a for, while, or repeat statement. |
|||
|
||||
| Dian |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 2.1.2006 Репутация: нет Всего: 1 |
Флаг ставишь по нажатию на кнопку и т.п. Обрати внимание, что поток, выполняющий цикл будет занят. Если он единственный, то некому будет обрабатывать сообщения. Один из вариантов - явно вызывать Application.ProcessMessages в цикле |
|||
|
||||
| Ozzя |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 19.7.2004 Репутация: нет Всего: 1 |
Dian,
Для цикла repeat .. until есть нюанс - сначала выполняется тело цикла, и затем проверяется условие окончания цикла. В данном случае, при выходе по флажку, может случиться так, что в координатах мыши (переменной, в которую будет занесено значение_нажатой_клавиши) окажутся последующие значения. Добавлено @ 10:46 break же приводит к немедленному выходу из цикла. |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
|
|||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
Автору ведь надо обрабатывать движение мыши.
Вот только что за цикл такой, который нужно прерывать при обращении пользователя к графическому интерфейсу. Мне кажется, что такой цикл было бы логичнее вынести в Application.OnIdle. Например:
-------------------- |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
||||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |