Q&A

  • 키보드에서 delete키만 작동하게 하려면?
다른 키들은 눌러도 아무런 작동을 하지 않게 하고



단지 delete키만 작동하게 하려고 합니다.



어떻게 해야 되는지....?



감사합니다.





3  COMMENTS
  • Profile
    류종택 2000.03.28 04:58
    우선 Form의 KeyPreview를 Ture로 하시고..

    OnKeyDown 이벤트에서

    아래와 같이 하세요..





    From 류..



    ---------



    procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;

    Shift: TShiftState);

    begin

    If Key <> 46 then Key:= 0;

    end;









    김진호 wrote:

    > 다른 키들은 눌러도 아무런 작동을 하지 않게 하고

    >

    > 단지 delete키만 작동하게 하려고 합니다.

    >

    > 어떻게 해야 되는지....?

    >

    > 감사합니다.

    >

    >

  • Profile
    김진호 2000.03.28 19:44
    다시한번 질문 드립니다.



    폼에 edit를 배치하고 말씀하신대로 해보았지만 그냥 입력이 됩니다.



    폼의 keydown에도 edit의 keydown에도 ....



    그래서 keypress이벤트에 다름과 같이 했습니다.



    if key <> '46' then key := '0';



    그러니까 다른 키를 누르면 0이 들어가도 Delete키만 작동합니다.



    0 이 들어가지 않고 아예 아무런 작동을 안하게 하려면 어떻게 해야 되나요?



    그리고 키보드의 key값은 어떻게 알수가 있나요?



    답변 감사합니다.

  • Profile
    류종택 2000.03.28 22:24
    다시 올립니다..

    그리고 키값은 KeyDown이벤트에서 Key의 값을 읽어보시면 되겠지요..



    procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;

    Shift: TShiftState);

    begin

    If Key <> 46 then Key:= 0;

    end;



    procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);

    begin

    Key:= #0;

    end;







    김진호 wrote:

    > 다시한번 질문 드립니다.

    >

    > 폼에 edit를 배치하고 말씀하신대로 해보았지만 그냥 입력이 됩니다.

    >

    > 폼의 keydown에도 edit의 keydown에도 ....

    >

    > 그래서 keypress이벤트에 다름과 같이 했습니다.

    >

    > if key <> '46' then key := '0';

    >

    > 그러니까 다른 키를 누르면 0이 들어가도 Delete키만 작동합니다.

    >

    > 0 이 들어가지 않고 아예 아무런 작동을 안하게 하려면 어떻게 해야 되나요?

    >

    > 그리고 키보드의 key값은 어떻게 알수가 있나요?

    >

    > 답변 감사합니다.