[Controls] EDIT에 숫자만 입력받기
TEdit를 비롯하여 EDIT 컨트롤에 숫자만 입력받도록 하는 방법은?
여러가지가 있겠지만
간단히 GWL_STYLE을 변경해주므로 가능합니다.
가끔 필요한데 생각이 나지 않아서 찾아야 하는데.. 찾는 수고를 덜기 위해서 여기에 ....
@C++Builder에서
void __fastcall TDLG_MANAGE::FormCreate(TObject *Sender)
{
SetWindowLong(Edit1->Handle,GWL_STYLE,GetWindowLong(Edit1->Handle,GWL_STYLE)|ES_NUMBER);
}
@ Delphi 에서
procedure TForm1.FormCreate(Sender: TObject);
begin
SetWindowLong(Edit1.Handle,GWL_STYLE,GetWindowLong(Edit1.Handle,GWL_STYLE) or ES_NUMBER);
end;
@기타 Edit Style
ES_AUTOHSCROLL
에디트 컨트롤 내에 텍스트를 입력할 때 에디트 영역의 크기를 넘기면 자동으로 수평 스크롤된다.
ES_AUTOVSCROLL
여러 줄의 에디트 컨트롤 내에 텍스트를 입력할 때 자동으로 수직스크롤된다.
ES_CENTER
여러 줄의 에디트 컨트롤에서 텍스트를 가운데로 정령한다.
ES_LEFT
텍스트를 좌측으로 정렬한다.
ES_LOWERCASE
에디트 컨트롤에 소문자의 입력만을 허용한다. 대문자가 입력되면 자동으로 소문자로 바뀐다.
ES_MULTILINE
여러 줄의 에디트 컨트롤을 만든다. 엔터키를 개행 문자(Carriage Return)로
인식시키려면 ES_WANTRETURN 스타일을
이용해야 한다.
ES_NOHIDESEL
에디트 컨트롤에 입력 초점을 가지고 있지 않더라도 선택 영역 표시가 없어지지 않도록 한다.
ES_NUMBER
에디트 컨트롤에 숫자만이 입력될 수 있도록 한다.
ES_OEMCONVERT
입력된 텍스트는 Windows 문자셋에서 OEM 문자 세트로 변환되며 다시 Windows 세트로 되돌려진다.
이는 CharToOem 함수를 사용했을 때 변환이 정확히 일어나게 해준다.
(OEM - See original equipment manufacturer.)
ES_PASSWORD
입력되는 각 문자를 암호 문자로 표시한다. 디폴트 암호 문자는 애스터리스크(*)이다.
암호문자를 변경 하려면 ES_SETPASSWORDCHAR 메시지를 이용한다.
ES_READONLY
읽기 전용 컨트롤을 생성하여 사용자가 컨트롤 내에 텍스트를 입력하거나 편집할 수 없도록 한다.
ES_RIGHT
여러 줄의 에디트 컨트롤에서 텍스트를 오른쪽으로 정렬한다.
ES_UPPERCASE
에디트 컨트롤에 대문자의 입력만을 허용한다. 소문자가 입력되면 자동으로 대문자로 바뀐다.
ES_WANTRETURN
엔터키를 여러 줄의 에디트 컨트롤에서 개행 문자로 인식하도록 한다.
디폴트는 엔터키를 주르면 대화 상자 내의 디폴트 버튼을 선택하게 되며
이 때에는 ctrl-enter 키가 개행 문자 역할을 한다.
'Delphi Tip > 컴포넌트' 카테고리의 다른 글
델파이 TChart 마커 이동하기 (0) | 2021.11.04 |
---|---|
델파이 TChart 설명 (0) | 2021.11.03 |
TXMLDocument를 이용한 XML로딩방법 (0) | 2021.11.01 |
TList 활용하기 (0) | 2021.10.29 |
TEdit 다음 포커스 이동하기 (0) | 2021.10.28 |
댓글