Q&A

  • FormKeyDown 이벤트에서 ESC키가..안먹히네요..
안녕하세요..

FormKeyDown 이벤트에서 ESC키가..안먹히네요..

Form 프라퍼티에서 keyfreeView에는 당근 True로 주구요.. 그리고.. 취소 버튼에도 Cancel = True로 주었습니다...

뭐가 문제일까요..  

-------------------------------------

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   Case Key of

      VK_F2 :
         BtnCloseClick(Sender);   // F2를 누르면 종료를 한다.

      VK_ESCAPE :
            BtnEscClick(Sender);  // ESC키를 누르면 화면 취소를 한다..
   end;
end;


-------------------------------------

이렇게 했는데..디버그를 해보니까.. ESC키를 눌렀을때.. F2값은 키로 인식을 하던데.. ESC키는 인식을 못하더라구요.. 왜그럴까요.. 디버깅도. 안되고..

질문이 많이 횡설수설하네요..

답변 부탁드립니다..

5  COMMENTS
  • Profile
    이윤도 2004.01.29 21:32

    저는 아직 초보라서 정확은 답변은 드릴수가 없지만...어제 저도 같은 경우로

    ESC키를 누르면 바로 폼이 종료되게 할려고 했었거든요...

    근데 ESC키가 않먹히는 겁니다... 이유를 알고보니...폼이 생성될때...포커스

    가 컴포넌트에 가있었기 때문이었습니다...그래서...폼에선 ESC키가 먹히지

    않았던 것입니다...그부분을 잘 봐보세요...포커스가 컴포넌트에 가있다면...그

    컴포넌트의 키다운 이벤트가 발생하지 폼에 키다운 이벤트가 발생하진 않으니

    깐요... 그럼 포커스를 폼으로 날린뒤에 하시면 되겠죠? 허접생각이었습니다.^^


  • Profile
    Galaxy 2004.01.28 19:12
    저도 그런 경우를 경험한 적이 있습니다.
    저 같은 경우에는 작업에 필요해서 Keypress와 KeyDown을 동시에 하게 된적이 있죠. 이렇게 하니까 님과 같은 일이 발생을 하더라고요.
    디버깅에서 Key값이 얼마나오는지 확인해보세요 F2=? and Esc =?
    만약에 0값이 나오면 어디서 값을 사용을해서 Clear된것일것입니다.
    순전히 제생각과 경험 입니다.
    한번 체크해보세요

  • Profile
    곽경래 2004.01.28 03:49
    re)
    안녕하세요..
    ESC키는 keypress에서 사용하시면 됩니다
    If key = #27 then
      begin
         {실행 명령.....}
      end;

    FormKeyDown 이벤트에서는 특수키 값들 F1~F11 까지으 값을 사용할때 쓰던군요...  ^^
    즐코하시구요...
    평안하세요....
  • Profile
    채태숙 2004.01.28 06:19


    답변 감사합니다..

    곽경래님.. 가르쳐주신대로 FormKeyPress 이벤트에 적용을 시켜봤는데 여전히 Key값으로 인식을 못하더라구요... ㅠ.ㅠ

    어딘가에 옵션이 있을 듯 한데.. 몰랐는데 이때까지 제가 만든 모든 폼들에서 같은 버그들이 발생했습니다.. 제가 폼 생성시 무언가를 빠뜨렸다던지.. 아니면 잘 못 선택했다던지 했을것 같은데.. 못찾겠네요.. 휴..

    님도 즐코하세요~
  • Profile
    석주현 2004.01.28 02:15
    저는 잘되던 데요.. ^^

    다시 다른 곳을 체크 해보심이..

    즐프 하세요..

    • sallyslaw
      2004.01.31 04:02
      이벤트에 보시면 onGetCellColor라는 것이 있습니다. 이 이벤트내에서..처리하시면 됩니다. argume...
    • Galaxy
      2004.02.04 20:43
      감사 합니다.
    • 윤민규
    • 2004.01.28 23:32
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 최수림
    • 2004.01.28 23:31
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 성더기
      2004.01.29 01:22
      ListItem에 값을 뿌리기전에 ListItem.Caption에 해당 아이피가 있는지 먼저 검사하고 있으면 거기에 ...
    • 최수림
      2004.01.29 01:51
      리스트 뷰에 뿌릴때는 리스트뷰에 아무것도 들어가 있지 않은 상태입니다. 해당 레코드를 리스트 뷰에 ...
    • 최용일
      2004.01.29 10:56
      안녕하세요. 최용일입니다. 데이터를 입력하기 전에 그 데이터가 이미 있는가 검색하세요. 이미 존재...
    • 김민웅
    • 2004.01.28 20:52
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 김혜진
    • 2004.01.28 20:02
    • 3 COMMENTS
    • /
    • 0 LIKES
    • sallyslaw
      2004.01.28 20:18
      해당 소스폴더 내에 보시면 Project명.dof 와 project명.cfg 파일이 있습니다. 열어서 에러가 생긴 pas...
    • 김혜진
      2004.01.28 23:01
      먼저 답변해 주셔서 감사합니다. 제 해당 소스폴더의 dof file과 cfg file 에는 pas 파일명이 전혀 없...
    • 김혜진
      2004.01.28 23:41
      해결했습니다. 원인은 제가 JRO_TLB Library 를 import 하지 않아서 이더군요. *^^* 부끄럽습니다. 그...
    • 박정순
    • 2004.01.28 18:23
    • 5 COMMENTS
    • /
    • 0 LIKES
    • Galaxy
      2004.01.28 19:26
      안녕하세요 수고 하십니다. 수전히 제생각을 적은것입니다. 이렇게 하면 되지 않을까요 1.배열, 포인터...
    • Galaxy
      2004.01.28 19:28
    • 박정순
      2004.01.28 22:00
      예를들어서요.. var         i : integer; begin  &nbs...
    • Galaxy
      2004.01.29 00:37
      middle 버튼을 누르면 볼륨값이 중간에 오고 reset 버튼을 누르면 볼륨값이 middle버튼 누루기 이전의 값...
    • Galaxy
      2004.01.29 01:23
      아래 내용되로 됩니다. ------------------------------------------------------------- middle 버튼을 ...
    • 이원진
      2004.01.28 23:05
      아하. 글로벌변수를 이용해야 겠군요. 예제까지 보여주시고, 초보라서 모르는게 너무 많습니다. 음, 이거...
    • 남양원
      2004.01.28 19:58
      program TEST; uses   Forms,   Controls,   Login in 'Login.pas' {...
    • 박진수
      2004.01.28 18:13
      가장 간단한 방법은.. 넘겨줄 폼의 public 부분에.. Argument 역할을 대신할 변수를 선언한후.. 호...
    • 이추형
      2004.01.28 18:08
      글로벌 변수로 사용자 정보를 값으로 갖게하여 공유하는 방법이 있구요 Form to Form을 고집해야 한다면...
    • 델초보
    • 2004.01.28 06:56
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김대혁
      2004.01.28 22:57
      OpenDialog1 를 이용한면 하면 되겠고 파일 rename 시키면 될것 같은데요.
    • 최수림
    • 2004.01.28 06:38
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 서정협
      2004.01.28 20:07
      SetLength 구문을 for 문 안에다 쓰시려면 SetLength(ToTalChannelList, i); ==> SetLength(ToTalChann...
    • Crazy
      2004.01.28 06:58
      setlength 를 처음으로 빼주세요.. setlength 는 동적배열생성시 2번째 인자의 갯수만큼 만듭니다. try...
    • 최수림
      2004.01.28 09:17
      답변 잘받았습니다. 테스트 해봤구요..너무너무감사합니다..^^ 아까에 이어서 질문 다시 하나 해두될까...
    • Crazy
      2004.01.28 18:16
      안녕하세욤~ 초기화를 말하심은 들어있는 값만 초기화인가요? 아님 선언된 배열을 해제해는 건지요.. 여...
    • 최수림
      2004.01.28 20:23
    • 엄장섭
    • 2004.01.28 05:56
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 김운필
      2004.01.28 20:02
      TDatetimeField  에 보면 DisplayFomat 이라는 Property가 있습니다. 적용하는 방법은 아...
    • Crazy
      2004.01.28 06:26
      var     sDate : Tdate; begin      sDate := StrToDateTime(...
    • 엄장섭
      2004.01.28 07:01
      제가 궁굼해 했던 것은 엑세스에서는 08:00이라는 값으로 시간이 저장 되어있는데 디비 그리드에서 그 ...
    • Crazy
      2004.01.28 08:04
      안녕하세요. 디비그리드는 데이타소스에 연결된 디스플레이용 컴퍼넌트일뿐이라서 컨트롤을 직접 할수가 ...
    • LDS
      2004.01.28 20:26
      비프음 없애는 방법 입니다. Application.OnActicate Var temp: BOOL; Begin Systemparameter...
    • 빠블로
    • 2004.01.28 03:36
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 이정은
    • 2004.01.28 01:44
    • 2 COMMENTS
    • /
    • 0 LIKES
    • Crazy
      2004.01.28 06:33
      1. 프린터 설정에서 하셧다고 하는데 출력하는 프린터, 또는 1개이상의 프린터라면 기본프린터 (셋업하지...
    • 곽경래
      2004.01.28 03:46
      re) 프린트가 인쇄되는 사양인지요... 제가 해봤는데 별이상 없이 잘나오군요...
    • 이원진
    • 2004.01.27 23:23
    • 6 COMMENTS
    • /
    • 0 LIKES
    • 채태숙
      2004.01.27 23:32
      아마도.. edti_id.Text와 edit_Pass.Text 를 문자열로 받아서 그런듯... 저 값을 파라미터로 넘겨...
    • 이원진
      2004.01.27 23:54
      답변감사드립니다. 그런데 제가 워낙 초보라 알려주신 내용 가지고도 아직 해결을 못했습니다. 주문한 책...
    • 유동기
      2004.01.28 01:32
        -----> 코딩 오류로 보입니다          ...
    • 채태숙
      2004.01.28 00:36
      값을 넘기는 방법은 여러가지가 있는데 아까전의 방법은 파라미터를 설정해서 파라미터에 값을 넘기는 방식...
    • 이원진
      2004.01.28 01:01
      네 고맙습니다 성공했습니다. 안그래도 게시물 검색해서 해보았는데 되었구요.. 님께서 알려주신 방법과 ...
    • 채태숙
      2004.01.28 01:51
    • 채태숙
    • 2004.01.27 23:16
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 이윤도
      2004.01.29 21:32
      저는 아직 초보라서 정확은 답변은 드릴수가 없지만...어제 저도 같은 경우로 ESC키를 누르면 바로 ...
    • Galaxy
      2004.01.28 19:12
      저도 그런 경우를 경험한 적이 있습니다. 저 같은 경우에는 작업에 필요해서 Keypress와 KeyDown을 동시에...
    • 곽경래
      2004.01.28 03:49
      re) 안녕하세요.. ESC키는 keypress에서 사용하시면 됩니다 If key = #27 then   begin &nb...
    • 채태숙
      2004.01.28 06:19
      답변 감사합니다.. 곽경래님.. 가르쳐주신대로 FormKeyPress 이벤트에 적용을 시켜봤는데 여전히 K...
    • 석주현
      2004.01.28 02:15
      저는 잘되던 데요.. ^^ 다시 다른 곳을 체크 해보심이.. 즐프 하세요..
    • 석주현
      2004.01.28 02:10
      단순하게 정수형 몫을 구하는걸 원한다면 trunc(a / b) 이렇게 하면 정수형 몫이 나오긴 하겠죠.. 근...
    • 석주현
      2004.01.27 23:09
      질문 내용이 이상하군요.. 소수점 이하 자리 까지 있는 나눗셈에서 왜 어째서 나머지가 나오는지 ? 음 ...
    • 이기재
      2004.01.27 23:45
      예를 들어 설명한거구요 소숫점은 10자리까지지만 있을수도 없을수도있어요 그리고 a div b에서 b는 ...
    • 곽경래
    • 2004.01.27 22:42
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 채태숙
      2004.01.27 23:04
      DrawCell 이벤트에서 구현가능합니다.. ACol에 따라서 Canvas.Font.Color를 다르게 적용시키시면 될...