Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
키보드의 키값을 구분해서 받고 싶습니다.
평안하신지요..
다름이 아니라 텍스트박스에서 값을 숫자만 받고 싶어서 그러는데 도무지 할수가 없군요.
아시는 분들 쫌 알려 주세요..
그니까~~
텍스트 박스에는 숫자만 써지고 다른 문자는 써지지 않는것 처럼 말이죠..
하하
넘 쉬운건가?
저한테는 어렵습니다.
알려주세요~`
프리즈
2
COMMENTS
이헌재
•
2000.02.08 08:37
돌맹이 wrote:
> 평안하신지요..
>
> 다름이 아니라 텍스트박스에서 값을 숫자만 받고 싶어서 그러는데 도무지 할수가 없군요.
>
> 아시는 분들 쫌 알려 주세요..
>
> 그니까~~
>
> 텍스트 박스에는 숫자만 써지고 다른 문자는 써지지 않는것 처럼 말이죠..
>
> 하하
>
> 넘 쉬운건가?
>
> 저한테는 어렵습니다.
>
> 알려주세요~`
>
> 프리즈
>
제가 즐겨쓰는 방법입니다..
event : onkeypress or onkeydown 에서
다음과 같은 함수를 이용하면 됨
procedure Tform1.edit1keypress(Tobject:sender);
begin
chkinputkey(key,1);//이건 숫자만 들어가기..
chkinputkey(key,2);//이건 알파벳만 들어가기..
end;
function chkInputKey(key:char; ichkType:integer):char;
var ikeyInput:integer;
begin
ikeyInput:=Ord(key);
result:=key;
case ichktype of
1: case ikeyInput of
46,48..57,8,13: ; //숫자
else result:=#0;
end;
2:case ikeyInput of
97..122,8,13,65..90: ; //소문자,대문자
else result:=#0;
end;
end;
end;
도움이되길 바랍니다...
0
0
삭제
수정
댓글
도움받은이
•
2000.02.08 07:25
다른 분이 컴포넌트에 사용한 부분이지만 이 부분의 소스가
하시고자 하는 일에 도움을 줄 수 있을것 같군요...
//=============== KeyPress ==========================
procedure TValEdit.KeyPress(var Key: Char);
var
posOf : longint;
pos1, pos2 : word;
ok : Boolean;
val : string;
toinsert : string[1];
begin
pos1 := 0;
pos2 := 0;
if Scale > 0 then
ok := Key in ['0'..'9','.','-', #8, #127]
else
ok := key in ['0'..'9','-', #8, #127];
if Not ok Then
Key := #0
else if ( MaxLength > 0 ) AND
( length(text) - length(SelText) = MaxLength + 3 ) then
Key := #0
else
begin (* both of the following if's need it *)
posOf := SendMessage( Self.Handle, EM_GETSEL, 0, 0 );
pos1 := posOf AND $FFFF; // 시작에 관계없이 앞위치
pos2 := posOf SHR 16; // 시작에 관계없이 뒤위치
end;
if (Key = '-') or (Key = '.') then
begin
if (Key = '-') and ( pos1 <> 0 ) then (* '-' 부호가 중간에 들어가면 *)
Key := #0
else if ( Key = '.' ) then (* '.'이 눌렸을 때 *)
begin
if pos('.', Text) > 0 then (* '.'이 이미 있을때 *)
begin
if pos1 <> pos2 then (* 반전시켰을 때*)
begin (* 반전시킨 부분에 '.'이 없을 때*)
if pos('.', SelText) = 0 then Key := #0;
end
else Key := #0; (* 반전시키지 않았을 때*)
end
else (* '.'이 없을때 *)
if pos1 = pos2 then (* 반전시키지 않았을 때 *)
begin (* '.'뒤의 자리수가 Scale보다 크면*)
if ( length(text) - pos1 ) > Scale then Key := #0;
end
else
if ( length(text) - pos2 ) > Scale then Key := #0
end
end
else if ok and (Key <> #8) and (Key <> #127) then
begin
if pos('-', SelText) = 0 then (* 반전시킨 부분에 '-'가 없고 *)
if (pos1 = 0) and (Text <> '') then
if (Text[1] = '-') then (* '-'부호 앞에 숫자를 쓰려고 할 때 *)
Key := #0;
if pos('.', Text) > 0 then (* '.'이 이미 있을때 *)
if pos('.', Text) < pos1 + 1 then (* '.'보다 뒤에서 쓸때 *)
if pos1 = pos2 then (* 반전시키지 않았을 때 *)
if ( length(text) - pos('.', Text) ) = Scale then
(* Scale만큼 찼으면 *)
Key := #0;
(*=======================================================*)
if key <> #0 then
begin
val := Text;
toinsert[0] := #1;
toinsert[1] := Key;
if pos1 <> pos2 then (* something was selected *)
begin
Delete( val, pos1 + 1, pos2 - pos1 );
end;
Insert( toinsert, val, pos1 + 1 );
end;
end;
inherited KeyPress(Key);
end;
돌맹이 wrote:
> 평안하신지요..
>
> 다름이 아니라 텍스트박스에서 값을 숫자만 받고 싶어서 그러는데 도무지 할수가 없군요.
>
> 아시는 분들 쫌 알려 주세요..
>
> 그니까~~
>
> 텍스트 박스에는 숫자만 써지고 다른 문자는 써지지 않는것 처럼 말이죠..
>
> 하하
>
> 넘 쉬운건가?
>
> 저한테는 어렵습니다.
>
> 알려주세요~`
>
> 프리즈
>
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
강민주
•
2000.02.08 21:16
2
COMMENTS
/
0
LIKES
DBEdit에서 DataField지정 방법?
최원실
•
2000.02.08 22:10
강민주 wrote: > 안녕하세요 > 하나에 폼를 두번사용할려고 하는데.. > 폼위에 DBEdit가 놓여있는데.. ...
윤진화
•
2000.02.08 21:41
강민주 wrote: > 안녕하세요 > 하나에 폼를 두번사용할려고 하는데.. 폼위에 DBEdit가 놓여있는데.. 폼...
장철희
•
2000.02.08 20:51
2
COMMENTS
/
0
LIKES
ms sql 쿼리부분에서 문자열 처리.....
이런
•
2000.02.09 03:12
장철희 wrote: > > > DB테이블에 int 형으로 잡은곳에 int형을 넣으면 에러없이 잘 들어가는데요 > D...
장철희
•
2000.02.09 03:31
답변 감사합니다. 많은 도움이 됐습니다. 항상 행복하세요 이런 wrote: > 장철희 wrote: > > > > ...
김영택
•
2000.02.08 20:43
1
COMMENTS
/
0
LIKES
Oracle에서 각각 다른 table space에 있는...
김지희
•
2000.02.08 23:36
우선 오라클에 connect할때의 유저(a일수도 있고 b일수도 있겠죠..아님 다른 유저이던가...)가... 접근할...
홍용희
•
2000.02.08 20:40
1
COMMENTS
/
0
LIKES
인스톨쉴드에서 파일또는 그룹추가할때 임의의 디렉토리에 인스톨되게 할려면 어떻게 하나요...
윤진화
•
2000.02.08 21:26
먼저 Application information 메뉴에서 App Info 탭의 Default Destination Directory에다가 "c:orawin9...
김동근
2000.02.08 20:16
0
COMMENTS
/
0
LIKES
Delphi쓰시는분.........
정이영
2000.02.08 19:59
0
COMMENTS
/
0
LIKES
db를 treeview로 표현하고 싶습니다.
소방관
•
2000.02.08 19:55
2
COMMENTS
/
0
LIKES
알고싶당.........
윤진화
•
2000.02.08 21:30
일반적인 방법이 제가 알고있기로는 Refresh가 있습니다. 그런데 이건 파라독스나 일반 데이터베이스 파일...
소방관
•
2000.02.08 22:59
select * from table명 이렇케 하는 것은 같은 방법 아닌가요....쿼리를 비활성화 시켰다가 다시 actice...
아스크림
2000.02.08 19:44
0
COMMENTS
/
0
LIKES
[s.o.s][RS-232]통신
박정태
2000.02.08 19:35
0
COMMENTS
/
0
LIKES
virtual 과 override에 대한 질문
한웅
•
2000.02.08 19:07
1
COMMENTS
/
0
LIKES
error creating cursor handling
김종운
•
2000.02.08 19:58
한웅 wrote: > 업데이트하거나 input 할때 매번 이게 뜨는데 그리고 > 실행이 안되요. 어떻게 해야 하나...
허진
2000.02.08 18:48
0
COMMENTS
/
0
LIKES
데이터베이스와 퀵리포트에서 에러메시지
pascal
2000.02.08 14:45
0
COMMENTS
/
0
LIKES
BMP 파일들을 AVI 파일로 만들려면????
초짜
2000.02.08 13:41
0
COMMENTS
/
0
LIKES
ADO에 대한 질문.
Bean
2000.02.08 11:17
0
COMMENTS
/
0
LIKES
퀵리포트에서 계산된 소계를 사용하려면?
정종구
•
2000.02.08 10:31
3
COMMENTS
/
0
LIKES
for 루프안에서 아주 이상하네여
최원실
•
2000.02.08 20:31
정종구 wrote: > 아래의 코드인데요. > 이코드땜시 잘못된 연산수행한다고 나오면서 종료되거든요. > fo...
배불뚝
•
2000.02.08 20:28
정종구 wrote: > 아래의 코드인데요. > 이코드땜시 잘못된 연산수행한다고 나오면서 종료되거든요. > fo...
정종구
•
2000.02.08 23:27
> 정종구 wrote: > > 아래의 코드인데요. > > 이코드땜시 잘못된 연산수행한다고 나오면서 종료되거든요....
예쁜이
2000.02.08 10:17
0
COMMENTS
/
0
LIKES
사진을 저장하고 싶은데요
구니
•
2000.02.08 07:20
2
COMMENTS
/
0
LIKES
소켓과DOM,WEBCONNECTION비교..?
갱수
•
2000.02.08 17:35
구니 wrote: > 안녕하세요.. 구니입니다. > 먼저 새해 복 마니마니 받으시구요..? > 웹으로 개발하는데 ...
갱수
•
2000.02.08 20:57
갱수 wrote: > 구니 wrote: > > 안녕하세요.. 구니입니다. > > 먼저 새해 복 마니마니 받으시구요..? >...
돌맹이
•
2000.02.08 06:25
2
COMMENTS
/
0
LIKES
키보드의 키값을 구분해서 받고 싶습니다.
평안하신지요.. 다름이 아니라 텍스트박스에서 값을 숫자만 받고 싶어서 그러는데 도무지 할수가 없군요. 아시는 분들 쫌 알려 주세요.. 그니까~~ 텍스트 박스에는 숫자만 써지고 다른 문자는 써지지 않는것 처럼 말이죠.. 하하 넘 쉬운건...
이헌재
•
2000.02.08 08:37
돌맹이 wrote: > 평안하신지요.. > > 다름이 아니라 텍스트박스에서 값을 숫자만 받고 싶어서 그러는데...
도움받은이
•
2000.02.08 07:25
다른 분이 컴포넌트에 사용한 부분이지만 이 부분의 소스가 하시고자 하는 일에 도움을 줄 수 있을것 같군...
류한규
2000.02.08 06:11
0
COMMENTS
/
0
LIKES
TreeView Item Text를 여러줄로 표시???
초짜
•
2000.02.08 05:59
2
COMMENTS
/
0
LIKES
고수님들 도와주세요. (insert 수행시...)
도움받은이
•
2000.02.08 07:27
어떤 에러 메시지가 났는지 명시하여 다시 올려 주시면 좀더 자세한 답변을 받을 수 있을텐데... 이 질...
김진호
•
2000.02.08 21:04
도움받은이 wrote: > 어떤 에러 메시지가 났는지 명시하여 다시 올려 주시면 > 좀더 자세한 답변을 받을 ...
돌맹이
2000/02/08 06:25
Views
156
Likes
0
Comments
2
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> 평안하신지요..
>
> 다름이 아니라 텍스트박스에서 값을 숫자만 받고 싶어서 그러는데 도무지 할수가 없군요.
>
> 아시는 분들 쫌 알려 주세요..
>
> 그니까~~
>
> 텍스트 박스에는 숫자만 써지고 다른 문자는 써지지 않는것 처럼 말이죠..
>
> 하하
>
> 넘 쉬운건가?
>
> 저한테는 어렵습니다.
>
> 알려주세요~`
>
> 프리즈
>
제가 즐겨쓰는 방법입니다..
event : onkeypress or onkeydown 에서
다음과 같은 함수를 이용하면 됨
procedure Tform1.edit1keypress(Tobject:sender);
begin
chkinputkey(key,1);//이건 숫자만 들어가기..
chkinputkey(key,2);//이건 알파벳만 들어가기..
end;
function chkInputKey(key:char; ichkType:integer):char;
var ikeyInput:integer;
begin
ikeyInput:=Ord(key);
result:=key;
case ichktype of
1: case ikeyInput of
46,48..57,8,13: ; //숫자
else result:=#0;
end;
2:case ikeyInput of
97..122,8,13,65..90: ; //소문자,대문자
else result:=#0;
end;
end;
end;
도움이되길 바랍니다...