Q&A

  • 숫자입력여부와 특수문자(')삽입을 차단하는 방법좀 알려주세요...
첫번째 edit 박스로 데이터를 입력받을때 데이터형이 int형인데 문자를 입력하면 바로
에러메시지가 뜹니다.

입력값을 숫자로 입력하지 않았을때 확인하고 경고를 보내는 방법좀 알려주세요.

다시 말하면 입력값이 숫자인지 문자인지 판단을 어떻게 하는지 좀 알려주세요

또하나는 입력시 실수로라도 특수문자(')사용을 막을수 있는 방법도 좀 알려주세요. ASP경우 (') 입력시 다른형태로 바꾸어서 저장하던데 델파이에도 그런방법이 있는지요....

오늘 두번째 질문도 첫번째 질문처럼 친절히 답변해주시기 바래요^^

좋은 하루 되세요~
3  COMMENTS
  • Profile
    김철홍 2004.05.19 02:20
    이렇게 하시면 도움이 될듯 싶네요.

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
       // 숫자와 BackSpace 이외의 문자가 들어오면 무시
       if not (((key >= '0') and (key <='9')) or (key = #8) or (Key = #13)
       or (Key = '.')) then begin
            key := #0;
       end
       // 특수문자
       else if (Key = ',') or (Key = '.') or (key = '"') or  (Key = '''') then begin
                Key:=#0;
       end;
    end;

    물론 특수문자들은 더 많지만, 이정도면 님께서 다른 것들도 하실수 있으실듯..
    그럼 좋은 하루 보내세요

  • Profile
    하병준 2004.05.19 02:06
    edit박스에 입력하면 생기는 이벤트를 이용해서

    48 ~ 57 ( 0 ~ 9 )

    넘어오는 key 를 아스키코드로 해서 48  ~ 57 이외의 것은 모두 에러로 처리하는 방법을 쓰세요...

    int := ord(key);


  • Profile
    남양원 2004.05.19 02:04
    Edit1 의 KeyPress 이벤트에서 다음과 같이 처리합니다.

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if Key in ['A'..'z'] then begin
        Key := #0;
        Exit;
      end;
    end;

    하시면 숫자만 입력받습니다. 제경우에는 경고 메시지 보이는 건 불필요했었습니다. 숫자만 입력 되니깐여.

    그럼, 즐프 하세요....