Q&A

  • KeyDown, KeyUp, KeyPress에서 한글처리
KeyDown(Sender: TObject; var Key: Word;  Shift: TShiftState);
KeyDown에서 영문은 값이 맞게 넘어 오는데..
한글은 무조건 229로 찍히네요...

이곳에서 입력되는 값을 메모리에 저장해두었다가
다른 컴포넌트에 한글자씩 출력해야 하는데.
한글이 모두 229로 찍히니 방법이 없네요..

KeyPress는 아무값도 나오지 않고요..

아시는 분은 제발 좀 가르쳐주세요..
한글처리가 참 힘드네요..
1  COMMENTS
  • Profile
    LuckyBoy 2003.12.29 19:32
    한글과 영문의 차이 때문에 발생하는 문제인것 같습니다.
    영문은 한자 한자 구분되어진 글자의 모임이지만
    한글은 글자의 모임이 아니고 조합으로 이루어진 글자이므로
    이러한 문제가 발생하는 것 같습니다.

    그렇지만 님이 하시고자 하는 방법이 전혀 없는 것은 아닌것 같은데요..
    일단 KeyDown 의 Key 값을 가지고 작업을 하려고 하면 위의 문제때문에
    불가능 한것 같습니다.

    한글은 Text 단위로 작업을 해야 할 것 같습니다.

    KeyDown 보다 KeyUp에서 작업을 하시는것이 나을 것 같군요.
    일단 전역 변수를 String으로 선언을 하시구요..

    var StringTemp: String;

    procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      StringTemp := Edit1.Text;
    end;

    위와 같이 해보세요..
    그리고 원하는 글자를 원하는곳에 Copy해서 넣으시면 되지 않을까요??

    원하는 답변이 되었으면 좋겠는데..
    그럼 즐프하세요..