Q&A

  • Modal폼에서 Enter,Esc로 폼 종료하기

안녕 하세요.

폼에 Modal로 폼을 하나 띄웁니다 .

거기에 Edit 컨트롤을 붙여 놓구요..

Edit 상에서 Enter, Esc를 눌렸을 경우..

폼을 종료하게 할려구 합니다.

물론.. Enter를 눌렸을 경우는  ModalResult가 mrOk , Esc는 mrCancel을 반환하도록

할려구 합니다.

어떻게 하면될까요 ..

현재

Edit1KeyPress()
begin
  //이 함수에서..
  if key=#27 then     //Esc 일 경우, Button1을 Click한것 처럼 한다.
  Begin
     key := #0;
     Button1.Click;
  End
  Else if key = #13 Then  //Enter 일 경우, Button2를 Click 한것 처럼 한다.
  Begin
      //key := #0;
      Button2.Click;
   End;
End;


여기서, Button1에 ModalResult를 mrCancel로, Button2의 ModalResult를 mrOk로 한 상태입니다.


procedure TForm2.Button1Click(Sender: TObject);
begin
  close;
end;

이렇게 하니. ESC는 제가 생각하는대로 동작을 하는것 같습니다.

그런데.. Enter는 제대로 동작을 하지 않네요..

Button1과 마찬가지로 Close를 시키면. Modal의 반환값이 mrCancel이 나오는것 같습니다.

어떻게 하면.. Edit에서 Enter를 누르면.. mrOk로 폼 종료, Esc를 누르면 mrCancel로 폼을

종료할 수 있을 까요...

그럼.. 답변 부탁 드리며.. 좋은 하루 보내세요..
2  COMMENTS
  • Profile
    이중철 2005.06.20 20:19
    한가지 팁입니다.
    버튼의 Property를 찾아보시면 Cancel 이라는 옵션이 있습니다.
    이 것은 폼에서 ESC를 사용할시 해당 버튼을 실행하여 주는 옵션입니다.

    Enter는 다시 한번 확인 해보세요

    그럼 이만..

  • Profile
    nilriri™ 2005.06.20 18:36
    Button2의 클릭이벤트의 스크립트가 잘못된거 아닐까요?

    이상없어 보이는데요..

    self.modalresult := mrok;

    이거 말고 다른 코드들이 해당 클릭이벤트에 코딩이 되어잇는건 아닌가요?

    디버깅 모드에서 한번 확인해 보시길..