Q&A

  • 숫자인지 문자인지를 비교 하는 방법..
제가 그냥 간단한 계산기를 만들려고 하는데요
문자인지 숫자인지 판별을 해서 문자 입력시 경고 메세지를 뿌려주고
숫자일경우 계산을 하게 하려고 합니다.
근데 어떻게 숫자인지 문자인지 비교를 해야 하는지를 모르겠네요
좀 알려 주세요..
if문을 사용하려고했었는데.. 아니며 다른 방법이 있다면 좀 알려주세요 ^^
3  COMMENTS
  • Profile
    이중철 2004.09.09 21:07
    소나기 님이 답변하신 내용이 맞습니다. 그러나 좀 보완해서

    Edit1KeyPress 이벤트에서 아래와 같이 처리 해야 합니다.

    0..9 숫자키뿐만 아니라, 하이픈키(-), 소수점(.)키, 델키, 백스페이스, 커서키

    이런것들도 먹혀야 하며 또한, 하이픈키를 누를때 해당 에디터박스에

    첫글자를 체크하여 하이픈키가 있으면 삭제하고 없으면 하이픈키를 넣

    으시고요

    그리고 소수점(.)은 해당 에디터박스에 존재하고 있을때에는 입력이 안되게

    처리하셔야 합니다.

    Edit1Exit 이벤트 때에는 소수점(.)의 위치를 판단하여

    맨앞(하이픈이 있을경우에는 두번째)에 존재할때에는 앞에 0을 추가하고

    맨뒤에 존재할때에는 삭제하는 식으로 하면 어느정도 숫자에디터박스가

    될것입니다.

    그럼 이만 스르르..


  • Profile
    석주현 2004.09.09 20:07
    Edit1KeyPress 이벤트에서 아래와 같이 처리 하는 방법이 있고요.

      if not (Key in ['0'..'9']) then
        begin
          ShowMessage('제대로좀 느셔 -_-;;');
          Key := #0;
        end;

    다른 하나는 마지막 계산할 때나 아니면 OnExit 가 될때
      Try
         StrToInt(Edit1.Text);
      Except
         ShowMessage('아무거나 계산 하는게 아니예요 -_-;;');
      End;

      구문으로 해도 됩니다.

    둘중에 아무거나 골라서 하세요.
  • Profile
    모영철 2004.09.09 19:43
    • 박준철
      2004.09.11 01:53
      function FilterNumber(sNum:string):string; var   i : integer; begin   Resu...
    • 오병주
      2004.09.10 03:36
      폼 Create 설정하는 방법입니다..^^ procedure TForm1.FormCreate(Sender TObject); begin  &n...
    • 석주현
      2004.09.10 07:35
      내용 없어요..
    • 이승민
      2004.09.10 03:10
      procedure Tfrom1.Edit1KeyPress(Sender: TObject; var Key: Char); begin   If Not (Key In [...
    • 김형균
    • 2004.09.09 22:36
    • 7 COMMENTS
    • /
    • 0 LIKES
    • 김형균
      2004.09.10 00:59
    • 김형균
      2004.09.09 23:48
      저가 잘못 써서 의미 전달이 잘 되지 않은것 같습니다..소스를 올려 보겠습니다. 저의 의도는 루프를 돌면...
    • 김춘경
      2004.09.09 23:40
      쿼리문으로 조건에 해당하는 레코드를 추출해서 하면 됩니다. _SQL := 'select * from T1, T2 where T...
    • 이중철
      2004.09.09 23:44
      'select * from T1, T2 where    (T1.field1 <> T2.field1    OR T1.field...
    • 김춘경
      2004.09.09 23:52
      ^^ 온라인상에서 쓰다 보니... 제 의도는 여러 필드중 어느 하나라도 틀리면 셀렉트 하도록 했습니다. ...
    • 파멸의슬픔
      2004.09.09 23:25
      소스만 보고 판단했습니다... 이렇게 한번 바꿔 보세요...   q1.sql.add('select * from test...
    • 이중철
      2004.09.09 23:23
      소스를 봐서는 목적하는것이 무엇인지 잘 모르겠네요 ^^ 먼저 SQL로 해결이 가능하다면 SQL로 하는것이 합...
    • 문의득
    • 2004.09.09 20:58
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 문의득
    • 2004.09.09 20:52
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 일그니
      2004.09.09 22:02
      dbnmpntw.dll와 ntwdblib.dll을 path가 걸린 폴더 system같은 곳에 복사해 넣어주십시요. 중복되있을...
    • 달님
    • 2004.09.09 19:40
    • 3 COMMENTS
    • /
    • 1 LIKES
    • 이중철
      2004.09.09 21:07
      소나기 님이 답변하신 내용이 맞습니다. 그러나 좀 보완해서 Edit1KeyPress 이벤트에서 아래와 같이 처...
    • 석주현
      2004.09.09 20:07
      Edit1KeyPress 이벤트에서 아래와 같이 처리 하는 방법이 있고요.   if not (Key in ['0'..'9...
    • 모영철
      2004.09.09 19:43
    • 김형균
    • 2004.09.09 19:39
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김춘경
      2004.09.10 03:26
      아마도 DB가 작업하는 임시파일이 아닐까요? 님이 의도적으로 만든 파일이 아니라면 지우셔도 무방할 겁...
    • 김용렬
    • 2004.09.09 19:03
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 일그니
      2004.09.09 22:34
      StartTransaction은. 현재 작업중인 테이블을 딴넘들이 쓰지 못하게 하는의미로 알고 잇습니다. 작업이...
    • 석주현
      2004.09.09 14:50
      "MSComm"으로 검색 해 보시면 아래와 같이 나옵니다. 검색을 해보시고 질문을 해주시는게 좋을 것 같네요....
    • 온진욱
      2004.09.09 20:16
      님께서 알려주신 방법을 한번 찾아서 해본적이 있었는데 그때 안되길래 잘못 안건가 하고 지워버렸었는데 ...
    • Galaxy
      2004.09.09 18:50
      안녕하세요 수고 많습니다. 다른 방법은 없을까요? 답변 주신 대로 하니까 . 별 문제는 없는데... 그...
    • 오재열
      2004.09.09 04:47
      짧은 생각인데.. 해당 KeyPress가 끝나면 Key값이 반영 되지 않나요? Apple이 먼저 적용되고 Key값 'A'가 ...
    • Galaxy
      2004.09.09 05:12
    • 메니아
    • 2004.09.08 23:23
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 석주현
      2004.09.09 00:15
      "Process32First" 로 검색해 보세요. Process32First 와 Process32Next 가 같이 쓰이고요. 용...
    • 김형균
    • 2004.09.08 23:00
    • 5 COMMENTS
    • /
    • 0 LIKES
    • 김형균
      2004.09.09 19:58
    • 착한천사
      2004.09.09 03:22
      착한천사 김경록입니다.. 저도 크고 작은 프로젝트를 해 본 적이 있어서.. recordcount의 부정확함을 ...
    • 누렁이
      2004.09.09 01:21
      아래 요부분을   for j := 0 to qry.RecordCount -1 do   begin 요렇게 한번 바...
    • nilriri™
      2004.09.09 00:36
      레코드 카운터에 대한 답변은 아니구요.. 잠깐 소스를
    • 구창민
      2004.09.08 23:15
      안녕하세요.. Query.FetchAll ;  한번 해보시구요.. 그래도 안된다면   COUN...
    • 우용우
    • 2004.09.08 19:19
    • 1 COMMENTS
    • /
    • 0 LIKES
    • ㉳㉥ㅗ㉣ㅐ㉧ㅛ
      2004.09.08 21:05
      근디요 왜 그렇게 쓰실려구... 혹시 아나요 그 이유를 알면 다른 방법이 생각날지
    • 석주현
      2004.09.08 05:52
      onMouseMove 에서 Shift 값을 읽어 보면 알 수 있습니다.   if ssLeft in Shift then &n...
    • 허상무
      2004.09.08 20:51
      답변 감사합니다. 사실 제가 원하는 것은 마우스 상태를 알 수 있는 명령어(System 명령어 포함)를 ...
    • 석주현
      2004.09.08 21:24
      음 보통 드래그엔 드롭을 할때 오토메틱으로 하지 않는것으로 알고 있습니다. 왜냐면 제가 말씀드린 ...
    • 고락춘
    • 2004.09.08 03:30
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 고락춘
      2004.09.08 22:28
      제목처럼 소나기님, 닐리리님 답변감사합니다. 두분께서 알려주신 방법대로 하니 처리가 되네요 원인...
    • 석주현
      2004.09.08 08:00
      복잡하게 하지 마시고   if FindComponent('frm_Delivery') = nil then    &...
    • nilriri™
      2004.09.08 04:53
      Action := caFree;  를 써주신다고 해서 메모리에서 해제가 안됩니다. 해서 If ActiveMDI...
    • 고진중
    • 2004.09.08 03:14
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 바부팅
    • 2004.09.08 00:24
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이중철
      2004.09.08 03:09
      음 제가보기에는 윈속스레드가 계속 생성되었거나 S/W내의 유사 스레드가 계속 생성되어 결국 L4계층이나 ...
    • 파멸의슬픔
      2004.09.08 01:28
      우선 하신 말씀중에 10중 8,9번은 정상적인 재부팅조차 제대로 되지 않는다고 하셨습니다... 정상적으로 ...
    • 김현철
    • 2004.09.08 00:14
    • 1 COMMENTS
    • /
    • 0 LIKES
    • nilriri™
      2004.09.08 01:57
      http://www.qusoft.com/delphilegacy.html http://www.qusoft.com/ordering.html 참고하세요... ...
    • 꿈의대화
      2004.09.08 02:36
      .
    • ㉳㉥ㅗ㉣ㅐ㉧ㅛ
      2004.09.08 18:19
      그럼 ODBC 말구 BDE의 정보는요... 오라클로 alias를 잡은 DB의 IP를 알수는 없을까요?
    • 정찬희
      2004.09.08 00:32
      직접 만드셔야 할듯... function getHostFilePath: string; var   buf: array[1..1024] of ...
    • 이상국
      2004.11.04 16:44
      wind98 에서는 c:\windows 에 위치하므로.. 약간의 추가 라인이 필요할 듯 합니다.
    • 최동석
      2004.09.08 00:50
      답변 감사드립니다. 그런데 아래의 function을 사용하면 windows98에서는 안될것 같습니다. 보통 OS에 ...
    • 정찬희
      2004.09.08 06:38
      답글쓰면서도 좀 찜찜하긴 했어요...^^