Q&A

  • 스트링 그리드에서 숫자 입력시 발생하는 에러
스트링 그리드에서 하나의 컬럼에는 숫자만 입력되도록 코드를 작성했습니다.

처음에 폼이 떠서 데이터를 입력하는데는 아무런 문제가 발생하지 않는데

폼이 떠 있는 상태에서 다른 폼을 띄우고 다시 돌아오면 문제가 발생합니다.

숫자를 입력해도 숫자가 아니라는 에러 메시지가 발생하는데

아무래도 1-바이트와 2-바이트 차이인것 같은데

스트링 그리드에서 어떻게 체크할 수 있으며 1-바이트로 입력받을 수 있는 방법을 알고 싶습니다.

알고 계신 분들은 아무쪼록 빠른 조언 부탁드립니다.

2  COMMENTS
  • Profile
    술친구 2000.02.29 22:39
    송미정 wrote:

    > 스트링 그리드에서 하나의 컬럼에는 숫자만 입력되도록 코드를 작성했습니다.

    > 처음에 폼이 떠서 데이터를 입력하는데는 아무런 문제가 발생하지 않는데

    > 폼이 떠 있는 상태에서 다른 폼을 띄우고 다시 돌아오면 문제가 발생합니다.

    > 숫자를 입력해도 숫자가 아니라는 에러 메시지가 발생하는데

    > 아무래도 1-바이트와 2-바이트 차이인것 같은데

    > 스트링 그리드에서 어떻게 체크할 수 있으며 1-바이트로 입력받을 수 있는 방법을 알고 싶습니다.

    > 알고 계신 분들은 아무쪼록 빠른 조언 부탁드립니다.



    안녕하세요.. 술친굽니다.

    사실 질문의 요지를 잘 모르겠지만 스트링그리드에서 키 입력시 숫자만 입력하려면

    다음을 이용해보세요.. 이것이 아니면 다시 질문 올려주시구요...



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

    begin

    if Key in ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'] then

    begin

    showmessage('숫자');

    end

    else

    begin

    showmessage('숫자아님');

    Key := #0; //여기는 넘겨진 키값을 바꾸는 곳

    end;

    end;



    고수님들의 조언을 부탁드립니다.

    술친구였슴돠...

  • Profile
    송미정 2000.03.01 00:49
    답변은 감사합니다.

    그런데 숫자를 입력 받는 루틴은 저도 작성을 해서 잘 사용하는데

    한번씩 숫자를 문자로 인식해서 에러가 발생하는 문제거든요

    그래서 주신 코드를 실행하더라도 숫자를 제대로 인식하지 못해요

    전에는 ImeMode를 변경해서 수정했는데 스트링 그리드에서는

    ImeMode를 수정하는 부분이 없더라구요

    혹시나 다른 방법이 있다면 알려주시면 감사하겠습니다.





    술친구 wrote:

    > 송미정 wrote:

    > > 스트링 그리드에서 하나의 컬럼에는 숫자만 입력되도록 코드를 작성했습니다.

    > > 처음에 폼이 떠서 데이터를 입력하는데는 아무런 문제가 발생하지 않는데

    > > 폼이 떠 있는 상태에서 다른 폼을 띄우고 다시 돌아오면 문제가 발생합니다.

    > > 숫자를 입력해도 숫자가 아니라는 에러 메시지가 발생하는데

    > > 아무래도 1-바이트와 2-바이트 차이인것 같은데

    > > 스트링 그리드에서 어떻게 체크할 수 있으며 1-바이트로 입력받을 수 있는 방법을 알고 싶습니다.

    > > 알고 계신 분들은 아무쪼록 빠른 조언 부탁드립니다.

    >

    > 안녕하세요.. 술친굽니다.

    > 사실 질문의 요지를 잘 모르겠지만 스트링그리드에서 키 입력시 숫자만 입력하려면

    > 다음을 이용해보세요.. 이것이 아니면 다시 질문 올려주시구요...

    >

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

    > begin

    > if Key in ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'] then

    > begin

    > showmessage('숫자');

    > end

    > else

    > begin

    > showmessage('숫자아님');

    > Key := #0; //여기는 넘겨진 키값을 바꾸는 곳

    > end;

    > end;

    >

    > 고수님들의 조언을 부탁드립니다.

    > 술친구였슴돠...