Q&A

  • 질문여....edit박스에서 입력값에 제한을 주려고 하는데....
잘 안됩니다.

에디터박스에서 1~9까지 입력받을경우......

if (strtoint(edit1.text) >=10) or (strtoint(edit1.text) <= 0) then

begin

showmessage('한자리 정수만 입력가능합니다.');

edit1.setfocus;

exit;

end;

이렇게 했더니 영문자나 문자가 들어오면 에러가 납니다.

해결방법좀...^^;

ascii값을 비교해보고 싶은데.....키값을 변환하는 방법이 생각이 안나서........

또하나.....

1~99 의 경우도 있습니다.

if (strtoint(edit3.text) >= 100) or (strtoint(edit3.text) <= 0) then

begin

showmessage('1시간에서 99시간 까지 입력가능합니다.');

edit3.SetFocus;

exit;

end;

이건 어떻게 해야할지 조언을 주시면 저의 앞길에 큰 등불이 될것입니다.^^

즐코하세여...

3  COMMENTS
  • Profile
    최용일 2001.06.23 21:23
    안녕하세요. 최용일입니다.



    에디트박스의 OnKeyPress이벤트에서 아래와 같이 코딩하세요...



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

    begin

    if Key in ['1'..'9', #9] then

    begin

    if Length(TEdit(Sender).Text) >= 1 then

    // 0-9까지... 0-99까지는 2를 넣으시면 되겠죠...

    begin

    Key := #0;

    ShowMessage('한자리 정수만 입력가능합니다.');

    end

    end

    else

    begin

    Key := #0;

    ShowMessage('한자리 정수만 입력가능합니다.');

    end;

    end;



    ^^ 항상 즐코하세요...



    김동수 wrote:

    > 잘 안됩니다.

    > 에디터박스에서 1~9까지 입력받을경우......

    > if (strtoint(edit1.text) >=10) or (strtoint(edit1.text) <= 0) then

    > begin

    > showmessage('한자리 정수만 입력가능합니다.');

    > edit1.setfocus;

    > exit;

    > end;

    > 이렇게 했더니 영문자나 문자가 들어오면 에러가 납니다.

    > 해결방법좀...^^;

    > ascii값을 비교해보고 싶은데.....키값을 변환하는 방법이 생각이 안나서........

    > 또하나.....

    > 1~99 의 경우도 있습니다.

    > if (strtoint(edit3.text) >= 100) or (strtoint(edit3.text) <= 0) then

    > begin

    > showmessage('1시간에서 99시간 까지 입력가능합니다.');

    > edit3.SetFocus;

    > exit;

    > end;

    > 이건 어떻게 해야할지 조언을 주시면 저의 앞길에 큰 등불이 될것입니다.^^

    > 즐코하세여...

  • Profile
    김동수 2001.06.23 22:37
    와우....^^

    대단히 감사합니다.

    근데.....이 코딩을 백퍼센트 이해하지 못햇습니다.

    if Key in ['1'..'9', #9] then

    위의 것과 if Length(TEdit(Sender).Text) >= 1 then 이녀석이 왜 이렇게 쓰였는지 해석좀 부탁드리면 넘 염치 없나여...?

    sender가 쓰인이유와 역할이 궁금합니다.

    key값이라는게 ascii값을 말하는게...아닌가여?

    ascii 1~9는 실제로 숫자 1~9를 말하는게 아닌가여? 그리고 끝의 #9는 뭘 의미하나여?

    답변감사합니다.

    이것도 답변좀 해주시면.....^^; 감사...





    최용일 wrote:

    > 안녕하세요. 최용일입니다.

    >

    > 에디트박스의 OnKeyPress이벤트에서 아래와 같이 코딩하세요...

    >

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

    > begin

    > if Key in ['1'..'9', #9] then

    > begin

    > if Length(TEdit(Sender).Text) >= 1 then

    > // 0-9까지... 0-99까지는 2를 넣으시면 되겠죠...

    > begin

    > Key := #0;

    > ShowMessage('한자리 정수만 입력가능합니다.');

    > end

    > end

    > else

    > begin

    > Key := #0;

    > ShowMessage('한자리 정수만 입력가능합니다.');

    > end;

    > end;

    >

    > ^^ 항상 즐코하세요...

    >

    > 김동수 wrote:

    > > 잘 안됩니다.

    > > 에디터박스에서 1~9까지 입력받을경우......

    > > if (strtoint(edit1.text) >=10) or (strtoint(edit1.text) <= 0) then

    > > begin

    > > showmessage('한자리 정수만 입력가능합니다.');

    > > edit1.setfocus;

    > > exit;

    > > end;

    > > 이렇게 했더니 영문자나 문자가 들어오면 에러가 납니다.

    > > 해결방법좀...^^;

    > > ascii값을 비교해보고 싶은데.....키값을 변환하는 방법이 생각이 안나서........

    > > 또하나.....

    > > 1~99 의 경우도 있습니다.

    > > if (strtoint(edit3.text) >= 100) or (strtoint(edit3.text) <= 0) then

    > > begin

    > > showmessage('1시간에서 99시간 까지 입력가능합니다.');

    > > edit3.SetFocus;

    > > exit;

    > > end;

    > > 이건 어떻게 해야할지 조언을 주시면 저의 앞길에 큰 등불이 될것입니다.^^

    > > 즐코하세여...

  • Profile
    최용일 2001.06.23 23:05
    Sender는 이벤트를 발생시키는 넘... 예를 들어 에디트 박스에서 이벤트가 발생했다면 Sender는 에디트박스 객체가 들어오게 됩니다. 여러개의 객체에서 같은 이벤트를 공유할때는 이 Sender객체로 이벤트를 발생시키는 넘이 누군가를 판단하게 됩니다...



    Sender는 TObject형으로 들어오게 되므로 에디트박스로 형변환해야 에디트박스의 여러가지 속성,메소드들을 사용할 수 있겠죠...



    TEdit(Sender) ==> Sender( TObject 형)를 TEdit형으로 간주해서 처리한다는 말입니다.



    OnKeyPress에서 Key값은 아스키코드문자입니다. 키보드의 1을 눌르면 숫자 1이 아니라 문자 '1'이 들어오게 됩니다. '1'-'9'까지의 숫자키만 들어오게 하구 나머지는 무시해버리시면 됩니다. (Key := #0), 또한 탭키(#9)도 처리를 해주셔야지 탭을 눌렀을때 다른 컨트롤로 이동이 됩니다. 이거를 처리안해주시면 포커스이동은 마우스로 밖에 할 수가 없습니다...



    Length함수는 문자열의 크기를 리턴해주는 함수이구요...



    ^^ 항상 즐코하세요...



    김동수 wrote:

    > 와우....^^

    > 대단히 감사합니다.

    > 근데.....이 코딩을 백퍼센트 이해하지 못햇습니다.

    > if Key in ['1'..'9', #9] then

    > 위의 것과 if Length(TEdit(Sender).Text) >= 1 then 이녀석이 왜 이렇게 쓰였는지 해석좀 부탁드리면 넘 염치 없나여...?

    > sender가 쓰인이유와 역할이 궁금합니다.

    > key값이라는게 ascii값을 말하는게...아닌가여?

    > ascii 1~9는 실제로 숫자 1~9를 말하는게 아닌가여? 그리고 끝의 #9는 뭘 의미하나여?

    > 답변감사합니다.

    > 이것도 답변좀 해주시면.....^^; 감사...

    >

    >

    > 최용일 wrote:

    > > 안녕하세요. 최용일입니다.

    > >

    > > 에디트박스의 OnKeyPress이벤트에서 아래와 같이 코딩하세요...

    > >

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

    > > begin

    > > if Key in ['1'..'9', #9] then

    > > begin

    > > if Length(TEdit(Sender).Text) >= 1 then

    > > // 0-9까지... 0-99까지는 2를 넣으시면 되겠죠...

    > > begin

    > > Key := #0;

    > > ShowMessage('한자리 정수만 입력가능합니다.');

    > > end

    > > end

    > > else

    > > begin

    > > Key := #0;

    > > ShowMessage('한자리 정수만 입력가능합니다.');

    > > end;

    > > end;

    > >

    > > ^^ 항상 즐코하세요...

    > >

    > > 김동수 wrote:

    > > > 잘 안됩니다.

    > > > 에디터박스에서 1~9까지 입력받을경우......

    > > > if (strtoint(edit1.text) >=10) or (strtoint(edit1.text) <= 0) then

    > > > begin

    > > > showmessage('한자리 정수만 입력가능합니다.');

    > > > edit1.setfocus;

    > > > exit;

    > > > end;

    > > > 이렇게 했더니 영문자나 문자가 들어오면 에러가 납니다.

    > > > 해결방법좀...^^;

    > > > ascii값을 비교해보고 싶은데.....키값을 변환하는 방법이 생각이 안나서........

    > > > 또하나.....

    > > > 1~99 의 경우도 있습니다.

    > > > if (strtoint(edit3.text) >= 100) or (strtoint(edit3.text) <= 0) then

    > > > begin

    > > > showmessage('1시간에서 99시간 까지 입력가능합니다.');

    > > > edit3.SetFocus;

    > > > exit;

    > > > end;

    > > > 이건 어떻게 해야할지 조언을 주시면 저의 앞길에 큰 등불이 될것입니다.^^

    > > > 즐코하세여...

    • loke
      2001.06.24 08:58
      쿼리 컴포넌트를 더블 클릭하면 쿼리 필드 정의 창이 나오져... 그곳에서 calculated 로 필드를 만드셨다면...
    • 김동수
    • 2001.06.23 21:13
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2001.06.23 21:23
      안녕하세요. 최용일입니다. 에디트박스의 OnKeyPress이벤트에서 아래와 같이 코딩하세요... procedur...
    • 김동수
      2001.06.23 22:37
      와우....^^ 대단히 감사합니다. 근데.....이 코딩을 백퍼센트 이해하지 못햇습니다. if Key in ['1'..'9...
    • 최용일
      2001.06.23 23:05
      Sender는 이벤트를 발생시키는 넘... 예를 들어 에디트 박스에서 이벤트가 발생했다면 Sender는 에디트박스...
    • 강대구
      2001.06.25 09:25
      FinalData라는 프로그램이 있습니다. 포멧된 데이터를 살려내는 기능입니당.. 잘만하면(?) 데이터를 100%...
    • 알 수 없어
      2001.06.23 20:25
      미스터킴 wrote: > 안녕하세요 > 컴에익숙하지 않은 놈인데요 > > 메일을 받았던것을 백업 받지 않고...
    • 김동수
      2001.06.23 21:18
      하드포맷했으면 살릴수 없을겁니다.(아웃룩을 쓰신다면...) 메일을 전송받는방식에는 크게 두가지가 있습...
    • 백승환
    • 2001.06.23 19:28
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2001.06.23 19:42
      안녕하세요. 최용일입니다. > Result := -lstrcmp(PChar(str1), PChar(str2)); 위코드에서 값들을 ...
    • 백승환
      2001.06.23 21:13
      에궁.. 답변 감사한데요... 제 질문은 왜 Sort하면 두개값만 비교하는게 아니고 치환하고 그런 작업이 ...
    • 최용일
      2001.06.23 23:07
      네. CustomSort에서 API함수를 호출해서 API함수내부에서 합니다. 백승환 wrote: > 에궁.. 답변 감사한...
    • 주삼식
      2001.07.18 19:01
      안녕하세요. 메타파일과 비트맵은 구조적으로 그림을 처리하는 방법이 다릅니다. 메타파일은 엠에스에...
    • 최혜정
      2001.07.18 19:26
      먼저 답변 감사합니다. 그런데, 제가 비트맵으로 자료를 저장한 후 윈도우의 이미징 프로그램을 띄운 후 ...
    • 주삼식
      2001.07.18 20:52
      안녕하세요. 제가 테스트 해본 것은 아니라서 확신은 할 수 없지만 될 것 같습니다. 먼저 메타 그림을 ...
    • loke
      2001.06.24 09:15
      procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if key = #43 then beg...
    • 김태용
      2001.06.23 18:04
      파이파이 wrote: > " + "키를 눌렀을때 " 000 "을 넣는 방법이 없는지요.??? > Edit 컴포넌트에서 숫자뒤...
    • 정성훈
      2001.06.23 18:15
      김태용 wrote: > 파이파이 wrote: > > " + "키를 눌렀을때 " 000 "을 넣는 방법이 없는지요.??? > > Edi...
    • 김델초
    • 2001.06.23 04:23
    • 3 COMMENTS
    • /
    • 0 LIKES
    • loke
      2001.06.24 09:19
      TMemo 는 size 의 한계가 있습니다. TRichEdit 를 사용하심이.... 김델초 wrote: > rs232c를 통해...
    • 정성훈
      2001.06.23 18:17
      김델초 wrote: > rs232c를 통해 메모장으로 문자열을 출력받슴니다 > 메모장에 출력되는 line수가 한계치...
    • 김델초
      2001.06.25 18:29
      정성훈 wrote: > 김델초 wrote: > > rs232c를 통해 메모장으로 문자열을 출력받슴니다 > > 메모장에...
    • 김동기
    • 2001.06.23 03:41
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 강호규
      2001.06.25 18:44
      연결외 되지 않는다면 그 때 발생하는 에러메시지를 올려주시기 바랍니다. 오라클은 정상적으로 설치가...
    • hobakpa
    • 2001.06.23 03:20
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이경문
      2001.06.23 04:26
      Image1.Picture := nil; 요렇게 하면 되지여... Image1.Picture.Assign(nil); 요렇게 해도 되구여... ...
    • hobakpa
      2001.06.23 19:04
      .
    • 델초보
    • 2001.06.23 03:00
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 갱민이
      2001.06.23 05:42
      폼에 올려진 컴포넌트를 헬프에서 찾아 보세요.. 여기 추가되는 unit명이 있으니까.. 이만.. 델초보...
    • 강호규
      2001.06.25 18:45
      이곳에서 검색을 해보세요. 관련 자료가 많이 있습니다. 자료실에도 좋은 콤포넌트가 올라와 있구요......
    • 김기환
    • 2001.06.23 02:12
    • 1 COMMENTS
    • /
    • 0 LIKES
    • .
      2001.06.26 01:34
      김기환 wrote: > 흠..잘 모르겠어서 이렇게 질문 드립니다. > 현재 ms-sql7.0을 구매해서 사용하고 있는...
    • 백승환
    • 2001.06.23 02:08
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이경문
      2001.06.23 02:13
      ListView1.Font.Charset = DEFAULT_CHARSET; 백승환 wrote: > 글씨가 깨지는데 왜 그렇죠? > > 아시...
    • 초보
    • 2001.06.23 03:16
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 짱아
    • 2001.06.23 01:31
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 지니
      2001.06.26 01:40
      델파이에서 기본 재공되는 쿼리 컴포넌트와 업데이트 컴포넌트를 사용하셨다면..... 쿼리컴포넌트(Q...
    • 갱민이
      2001.06.23 05:45
      DB가 Read only라서 수정, 삭제등이 안돼는 것 같습니다.. 그럼 이만.. 짱아 wrote: > 이에러의 정체...
    • blackjewel
      2001.06.23 02:17
      짱아 wrote: > 이에러의 정체는 무엇인지... ^^;; 갈켜주세염~ > > > Project Korm03pe.exe raised ...