powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / остоновить работы цикла
20 сообщений из 20, страница 1 из 1
остоновить работы цикла
    #33744054
fuad11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть цикл:

for i=1 to 1000
.....
endfor

Как можно остоновить работы этого цикла с помощи нажатие какой то кнопки
над формой?
...
Рейтинг: 0 / 0
остоновить работы цикла
    #33744060
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, например, так:
1. Добавть свойство на форму THSFORM.Cancel_FOR
2. Пусть кнопка по нажатию меняет это свойство:
THSFORM.Cancel_FOR = .T.
2. Изменить немного сам цикл:
....
THSFORM.Cancel_FOR = .F.
for i=1 to 1000
...
DOEVENTS
IF THSFORM.Cancel_FOR
EXIT
ENDIF
.....
endfor
С уважением, Алексей
P.S. Вместо EXIT можно спросить пользователя о подтверждения выхода из цикла (IF MESSAGEBOX().....)
...
Рейтинг: 0 / 0
остоновить работы цикла
    #33744074
fuad11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"Property Cancel_for is not found"

Как добавить свойство на форму THSFORM.Cancel_FOR?
У меня VFP6.
...
Рейтинг: 0 / 0
остоновить работы цикла
    #33744082
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да.. не помню уже как это делается в VFP 6.0 (у меня VFP 9.0).
Поищите что-нибудь в меню Form при редактировании формы.
И, кстати, не уверен, что DOEVENTS была в VFP 6.0
С уважением, Алексей
...
Рейтинг: 0 / 0
остоновить работы цикла
    #33744084
fuad11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DOEVENTS есть VFP6.
Мне надо первый раз при нажатие кнопку цикл начал работать,
при нажатие второй раз этот же кнопку цикл остоновил свою работу.
...
Рейтинг: 0 / 0
остоновить работы цикла
    #33744136
Maltsev Max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Положи две кнопки друг на дружку. В первой запускай цикл и пряч ее, а во второй останавливай.

Создать метод: Form->New Method ... или Form-> Edit Property/Method

Меню появляется при открытой форме
...
Рейтинг: 0 / 0
остоновить работы цикла
    #33744173
AleksMed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fuad11DOEVENTS есть VFP6.
Мне надо первый раз при нажатие кнопку цикл начал работать,
при нажатие второй раз этот же кнопку цикл остоновил свою работу.

Чекер в графическом виде на форме и проверка его значения в цикле тебе помогут.
...
Рейтинг: 0 / 0
остоновить работы цикла
    #33744387
fuad11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет, у меня не получается.
Мй код:

THISFORM.COMMAND2.CAPTION="begin"
for i=1 to 10
r=rand()
K=1000000
r0="00000000"
THISFORM.COMMAND2.CAPTION="stop"
thisform.COMMAND1.caption=RIGHT((r0+allt(str(r*K))),8)
inkey(0.1)
doevents
endf


Мне надо первый раз при нажатие кнопку (ommand2) цикл начал работать и цифры менятся над кнопкой (command1),при нажатие второй раз этот же кнопку (command2) цикл остоновил свою работу и над кнопкой остоватся последная цифра.
...
Рейтинг: 0 / 0
остоновить работы цикла
    #33744480
Проходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fuad11Мй код:

THISFORM.COMMAND2.CAPTION="begin"
for i=1 to 10
r=rand()
K=1000000
r0="00000000"
THISFORM.COMMAND2.CAPTION="stop"
thisform.COMMAND1.caption=RIGHT((r0+allt(str(r*K))),8)
inkey(0.1)
doevents
endf


Зачем
Код: plaintext
THISFORM.COMMAND2.CAPTION="stop"
входит в цикл for? Ее надо поставить перед циклом и сразу после нее поставить
Код: plaintext
THISFORM.COMMAND2.REFRESH()
Не вижу необходимости в inkey(0.1)
...
Рейтинг: 0 / 0
остоновить работы цикла
    #33744528
fuad11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, согласен с Вами.
Но, как быть 2-й частями (при нажатие второй раз этот же кнопку (command2) цикл остоновил свою работу и над кнопкой остоватся последная цифра)программы ?
...
Рейтинг: 0 / 0
остоновить работы цикла
    #33744552
Проходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то вроде этого:
Код: plaintext
1.
2.
3.
4.
5.
6.
If THISFORM.COMMAND2.CAPTION="begin"
  THISFORM.COMMAND2.CAPTION="stop"
  ...
else
  THISFORM.COMMAND2.CAPTION="begin"
  ...
endif
Че тут трудного то?
...
Рейтинг: 0 / 0
остоновить работы цикла
    #33744614
fuad11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня не получается при 2-й раз нажатие кнопку остоновить цикл.
...
Рейтинг: 0 / 0
остоновить работы цикла
    #33744659
прох
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что не получается? Как не получается? Что говорит? На какой строке? Где код? У себя на мониторе я ничего из спрошенного не вижу.
...
Рейтинг: 0 / 0
остоновить работы цикла
    #33744785
Maltsev Max
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И никогда не получится !!!
Еще раз повторяю
Maltsev MaxПоложи две кнопки друг на дружку. В первой запускай цикл и пряч ее, а во второй останавливай.


Вот тебе код первой кнопки:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
i= 0 
ON KEY LABEL ESC ThisForm.Tag=""
This.Visible= .F.
ThisForm.Command2.Visible= .T.
ThisForm.Tag="Start"
DO WHILE !EMPTY(ThisForm.Tag)
  I=I+ 1 
  ThisForm.Command2.Caption="Stop "+ALLTRIM(STR(i))
  DOEVENTS
ENDDO
ON KEY LABEL ESC

А вот тебе код второй:
Код: plaintext
1.
2.
ThisForm.Tag=""
ON KEY LABEL ESC 

Наслаждайся
...
Рейтинг: 0 / 0
остоновить работы цикла
    #33745183
fuad11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, то что надо.
...
Рейтинг: 0 / 0
остоновить работы цикла
    #33755673
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Maltsev Max!

В принципе можно и с одной кнопкой - главное чтоб её Click не "зависал" -
т.е. не из него вызывать цикл, а например из таймера по флагу...

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
остоновить работы цикла
    #33768308
fuad11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет, Maltsev Max.
У меня этот код нормально работаеть. Но, я заметил что при движение mouse
над формой, цифры над кнопкой еще быстрее меняется. Незнаю какие связи между ними, но, я хотел именно так (быстрее) но без движение mouse.
...
Рейтинг: 0 / 0
остоновить работы цикла
    #33770244
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi fuad11!

Так работает DOEVENTS. В некоторых ранних версиях фокса применение DOEVENTS
вообще сильно замедляло раболту программы (т.к. она "подвешивала" процесс до
тех пор пока в очереди сообщений не появлялось хотя-бы одно сообщение -
например от движения той-же мыши). Но насколько я в курсе под VFP8/9 это не
должно быть существенной проблемой...
С другой стороны В ЛЮБОМ случае добавление возможности остановить цикл никак
не может пройти безболезненно с токи зрения падения производительности.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
остоновить работы цикла
    #33770335
fuad11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Я еще слыщал что в VFP9 есть много отличие, напирмер цветныы кнорки, это правильно?
...
Рейтинг: 0 / 0
остоновить работы цикла
    #33773873
fuad11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, я пробоваль VFP9, работает быстрые и несколько полезные вещи нащел который не было в VFP6. Но, если мне надо остоновить цикл по случайным порядке и по какой то интервалы, тоесть сначало остоновить на 3-м кнопке, потом 5-м, потом 13-м и т.д. (по случайном порядке и между остановками какой то интервал было) тогда что можно делать? меня ничего не получился.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / остоновить работы цикла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]