Edit에 수치값만 입력 가능하게(소수, 음수입력 가능) 자리수 제한 > Visual Basic, C & C++

본문 바로가기
사이트 내 전체검색


회원로그인

오늘 49
어제 326
최대 618
전체 411,225
마음을 나누는 인터넷 일기장 - 통플 다이어리
Visual Basic, C & C++

Delphi | Edit에 수치값만 입력 가능하게(소수, 음수입력 가능) 자리수 제한

페이지 정보

작성자 nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일13-11-19 15:20 조회11,320회 댓글0건

본문

Edit컨트롤에 정수, 소수, 음수만을 입력할 수 있게 한다.
숫자의 자릿수를 설정하여 자릿수만큼만 입력할 수 있게 한다.



procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
  iKey : Integer;
  iPos : Integer;
  iLen : integer;
  iSel : integer;
  iAfterPointDigit :integer;
  iBeforePointDigit :integer;
  sText : string;
begin
  sText := Edit1.text;
  iKey := ord(Key);
  iLen := Length(trim(sText));
  iSel := Edit1.SelStart;
  iAfterPointDigit := 3;
  iBeforePointDigit := 3;

  if iKey = $08 then exit;  // Back space

  // 수치와 소숫점과 마이너스만 입력 가능하게
  if not(iKey in [$2E, $2D, $30..$39]) then begin Key := #0; exit; end;

  iPos :=  Pos('-', sText);
  // 마이너스가 두개 입력되지 않게
  if (iPos > 0) and (iKey = $2D) then begin Key := #0; exit; end
  else if (iPos = 0) and (iKey = $2D) and (iSel > 0) then
    begin Key := #0; exit; end;

  iPos :=  Pos('.', sText);
  // 소숫점 두개 안들어가게
  if (iPos <> 0) and (iKey = $2E) then begin Key := #0; exit;  end
  // 숫자가 입력되지 않았을 때, 소수점 입력 안되게
  else if (iPos = 0) and (iKey = $2E) and (iLen = 0) then
    begin Key := #0; exit; end;

  // 소수점 있을 때 소수점 앞의 자릿수 제한
  if (iPos > 0 ) then
  begin
    if ((iLen - iPos - 1) > (iBeforePointDigit - 1)) then
      begin Key := #0; exit; end;
  end
  // 소수점 없을 때 소수점 앞의 자릿수 제한
  else
  begin
    if (iLen > iBeforePointDigit - 1) and (iKey <> $2E) then
      begin Key := #0; exit; end;
  end;

  // 소숫점 뒤의 자리수 제한
  if (iPos > 0 ) and ((iPos + iAfterPointDigit - 1) < iLen) then
    if iSel > iPos then begin Key := #0; exit; end;
end;

추천 0

댓글목록

등록된 댓글이 없습니다.

Visual Basic, C & C++ 목록

Total 90건 1 페이지
Visual Basic, C & C++ 목록
번호 제목 글쓴이 날짜 조회 추천
90 Visual Basic Windows 10에서 Visual Basic 6 (VB6)을 설치하는 방법 nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 12-22 1049 0
89 C & C++ Dev-C++ 에서 C++ 11/14 사용하기 최고관리자 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11-10 1120 0
88 Delphi [델파이] Frame의 속성 nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 06-01 1461 0
87 Delphi 델파이 날짜구현 함수 모음들 nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 09-06 3251 0
86 Delphi 델파이 팁들 nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 09-06 4543 0
85 Delphi [radstudio] 배포시 독립 실행 파일 만들기 nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 09-04 3806 0
84 Delphi Delphi 2007 Debug running 중 "bordbk105N.dll"오류 nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 02-18 5143 0
83 기타/참고 헷갈려! 당황스러운 프로그래밍 언어 11가지 특징 Read more: http://www… nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 01-28 4954 0
82 Delphi 윈도+델파이 환경에서 리눅스용 실행파일을 만들 수 있다는 CrossKylix nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 04-02 8847 0
81 기타/참고 S/W 개발방법론 nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 08-26 10034 29
80 Delphi [펌] 델파이 객체지향프로그래밍을 위한 20가지 규칙 nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 12-26 12521 0
79 Delphi Rad XE2 ~ XE4 에서 mysql 5.5 ~ 5.6 libmysql nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 12-04 10056 0
78 Delphi 델파이에서 날짜 더하고 빼기 예제 nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11-20 10937 0
77 Delphi EDIT 컴포넌트 숫자만 입력, 오른쪽 정렬 등등 nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11-20 13125 0
열람중 Delphi Edit에 수치값만 입력 가능하게(소수, 음수입력 가능) 자리수 제한 nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11-19 11321 0
75 Delphi [펌] TChart 기본정보 및 사용팁 nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11-18 10648 0
74 Delphi [펌] 폼 크기에 맞게 자동으로 컴포넌트 크기 조절하기 nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11-18 10607 0
73 Delphi [펌] 델파이 기본 컴포넌트2 nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11-18 11856 0
72 Delphi [펌] 델파이 기본 컴포넌트1 nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11-18 11712 0
71 Delphi 델파이에서 ie 창 띄우기 nuno 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11-13 11223 0
게시물 검색

Copyright © nuno21.net All rights reserved. 상단으로
모바일 버전으로 보기