Я пытаюсь сделать простое приложение FoxPro с двумя кнопками. Первая кнопка запускает цикл while и работает корректно. Вторая кнопка должна разорвать этот цикл. Но я не могу найти корректно работающее решение. Есть код цикла:
DO WHILE !thisForm.cancelpressed
IF thisForm.cancelpressed
EXIT
ENDIF
randNum=VAL(TRIM(STR(ROUND( 3*RAND(), 1))))
&&oneVar=VAL("1")
IF randNum = VAL("1")
ThisForm.shape1.BackColor = greenColor
ThisForm.shape2.BackColor = orangeColor
ThisForm.shape3.BackColor = redColor
ENDIF
cs = seconds()
IF abs(cs - seconds()) >= 15
doevents
cs = seconds()
ENDIF
IF thisForm.cancelpressed
EXIT
ENDIF
DOEVENTS
WAIT TIMEOUT 1
ENDDO
Этот код находится в методе Click первой кнопки. Объект формы имеет определяемое пользователем свойство «cancelpressed». Во втором методе нажатия кнопки я поставил это:
thisForm.cancelpressed = .T.
Thisform.Release()
Clear Events
Но это не работает. Когда цикл запущен, он не хочет слушать никаких команд и щелчков, и не дает закрыть программу. Пожалуйста, помоги, если можешь
thisForm.cancelpressed = .T.
сMouseEnter
событием для моей кнопки выхода, то это работает хорошо. Но это не щелчок, он просто зависает над моей кнопкой выхода - person Operator   schedule 22.04.2017