안녕하십니까.
작업 내용은 51에서 100 사이의 정수만 에디터 박스에 입력할수 있도록
할려고 하는데...
keypress 이벤트를 발생시켜 에디터 박스에 입력하는 정수가 유효한지
검사할려고 합니다. 물론 다른 이벤트 프로시져를 사용해도 되는데.
저는 keypress 이벤트를 사용할려고 하거든요..
위의 작업내용에 대해 좋은 방법론을 알고 계시는분 좀 부탁드려요.
제나름대로 해보았는데 예기치 않는 동작을 많이 해 코드 자체가
불안합니다.
아시는 분 가르쳐 주세요..
> 안녕하십니까.
> 작업 내용은 51에서 100 사이의 정수만 에디터 박스에 입력할수 있도록
> 할려고 하는데...
> keypress 이벤트를 발생시켜 에디터 박스에 입력하는 정수가 유효한지
> 검사할려고 합니다. 물론 다른 이벤트 프로시져를 사용해도 되는데.
> 저는 keypress 이벤트를 사용할려고 하거든요..
> 위의 작업내용에 대해 좋은 방법론을 알고 계시는분 좀 부탁드려요.
> 제나름대로 해보았는데 예기치 않는 동작을 많이 해 코드 자체가
> 불안합니다.
> 아시는 분 가르쳐 주세요..
const
backspace = #46;
del = #8;
// Edit1에서 숫자와 백스페이스, 델키외에는 입력을 받지 않는..
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not ((key in [del, backspace, '0'..'9'])) then
key := #0;
end;
// 51에서 100사이의 검사는 포커스의 이동을 감지하거나 다른 이벤트에서
처리하면 됩니다.