1. Form의 KeyPreview를 true로 한다.
2. 전역변수나 Form1의 멤버로 ESCKey를 선언한다.
var
  ESCKey: Boolean;
3. FormCreate에서 ESCKey := false로 한다.
procedure TForm1.FormCreate(Sender: TObject);
begin
  ESCKey := false;
end;
4. ESC를 쳤을 때 ESCKey에 true로 변경한다.
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if Key = 27 then
    ESCKey := true;
end;
5. while문을 돌릴 때 Application.ProcessMessage를 넣는다.
begin
  while not ESCKey do
  begin
    // 필요한 작업
    Application.ProcessMessages;
  end
end;
최민서 wrote:
>  while문을 도는도중 ESC키 값이 들어왔을때 빠져나가는 방법좀 알려주세요.
> 
>