알고리즘이 있습니다. 어떤 시점에서 일시 중지 한 다음 사용자가 버튼을 누르면 계속 진행하고 싶습니다. 어떻게해야합니까? 나는 문서를 열람하고 인터넷을 검색했지만 아직 행운은 없다. (pauza, 그냥 상수 세르비아어 일시 정지를 의미) 내가 잠을 사용 지금버튼을 누를 때까지 프로그램 실행을 일시 중지하는 방법?
if A[i]>A[i+1]
then
begin
Zameni(i,i+1);
done:=true;
sleep(pauza);
br:=br+1;
end;
:
여기에 관련 코드 싹둑입니다. 이상적으로, 그 라인을 그 간격 동안 잠들 수있는 절차로 바꾸거나 구성 설정에 따라 버튼을 누를 때까지 기다리는 것이 좋습니다.
EDIT1 : 아 그래, 명확하지 않은 경우 - 그래픽 응용 프로그램이지 콘솔이 아니므로 "readln"을 두드리는 것은 (슬프게도) 작동하지 않습니다.
Sleep() 호출은 사용자가 방금 만든 버튼을 누를 수 없으므로 방금 무한 루프를 만들었습니다. 최소한 Application.ProcessMessages() 호출을 추가하십시오. 그럼에도 불구하고 그것은 끔찍한 해결책이 될 것입니다. – mghie
Application.ProcessMessages를 포함하도록 답장을 업데이트했습니다. –
mghie와 동의해야 할까봐 두려워합니다.이 솔루션의 문제점은이 루프 중에 앱이 CPU 사이클의 거의 100 %를 사용한다는 것을 알 수 있다는 것입니다. –