![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 11.10.2012
Сообщений: 409
|
![]() Код:
Теперь постараюсь рассказать в чем суть ![]() Итак, есть таймер. Заданы координаты. Разрешено задавать по 3 координаты. То есть - 3,6,9.. и т.д. После нажатия на Button начинается первый цикл. Если было задано 3 координаты ( Memo2.Lines.Count = 4, там первая строка "------1-----" так что именно 4 ), то после того как сработает таймер срабатывает Exit из процедуры, если же Memo2.Lines.Count не равно 4, то идет break и переход в другой цикл. Все работает, вот только при случае если Memo2.Lines.Count = 4 первый раз срабатывает все как я хочу. Идет переход по координатам и через интервал выходит из процедуры. Но если я второй раз нажимаю на Button при этом же условии, то мышка устанавливается на первой координате и сразу идет Exit. Почему так? Думаю какая-то переменная не обнуляется, но сколько копал - все правильно, опять таки на мой взгляд. |
![]() |
![]() |
#2 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,926
|
![]()
А где-нибудь в коде есть строка
Код:
|
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 11.10.2012
Сообщений: 409
|
![]() Код:
|
![]() |
![]() |
#4 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,926
|
![]()
Ну так пройдитесь отладчиком по Button1Click и посмотрите почему при повторном нажатии происходит выход из процедуры.
|
![]() |
![]() |
#5 |
Пользователь
Регистрация: 10.08.2013
Сообщений: 67
|
![]()
задание интервала после включения таймера выглядит странным:
Код:
Код:
Код:
|
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 11.10.2012
Сообщений: 409
|
![]()
После второго цикла есть еще 3-ий и 4-ый и т.д поэтому есть смысл включать таймер.
2 northener - если честно я не умею отладчиком пользоваться, не знаю как он работает ![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 11.10.2012
Сообщений: 409
|
![]()
Есть какие-то еще идеи?
|
![]() |
![]() |
#8 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Exit зависит от значений переменных StopCircle, stopminicircle и proverka. Вот и проверь где засунул туда не то что надо. А вообще умиляет код типа
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
#9 | ||
Старожил
Регистрация: 20.04.2008
Сообщений: 5,543
|
![]() Цитата:
2. инициализировать флаги при входе в циклы. 3. выкинуть из цикла ProcessMessage и избавиться от бесконечного запутанного цикла. В программе и так есть этот самый бесконечный цикл. то есть нужен а) ГЛОБАЛЬНЫЙ счетчик проверок. (вместо for i=0 to 2 for i:=3 to 5 б) запуск проверки по таймеру (вместо sleep и ProcessMessage) в) локальные флаги проверок (вместо глобальных) г) разделение проверок на разовую (только при нажатии) таймер запускается только при успехе. и повторную (по таймеру). c контролем по числу попыток или использование контрольного времени. Код:
Код:
3. написать здесь исходную задачу. не Цитата:
ввести в мемо данные при нажатии на кнопку 1. проверить данные 2. если данные корректны, то имитировать нажатие мыши ... иначе ???
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 29.08.2013 в 15:49. |
||
![]() |
![]() |
#10 | |
Форумчанин
Регистрация: 11.10.2012
Сообщений: 409
|
![]() Цитата:
stopminicircle переключается в true, когда заканчивается таймер. Proverka создана для того, чтобы узнавать введено ли в Memo2 4 строки. ( 3 координаты, первая строка "-----1----" ). И если щелкает таймер а в мемо введено 8 строк к примеру, идем по ветке break и перескакиваем в другой цикл, а если 4 строки, идем по ветки exit; |
|
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
запутался с кодировкой | Blad47 | Свободное общение | 6 | 25.08.2011 17:12 |
Запутался с формами | iHikita | Общие вопросы .NET | 6 | 30.07.2010 16:08 |
Запутался с CopyRect | Alex Cones | Общие вопросы Delphi | 2 | 01.12.2009 20:55 |
запутался! | mistertvister | Помощь студентам | 3 | 28.10.2009 14:52 |
запутался в процедурах | world12_tk | Помощь студентам | 6 | 03.03.2009 18:57 |