C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[19023] Re:Re:Re:[질문] Edit에서 정렬하는 방법에대해서 알고 싶습니다.
유영인.Chris [cuperido] 995 읽음    2002-05-30 22:14
어렵게 한다면 많은 방법이 있습니다.. 공백을 채워준다던가.. 아니면 WM_PAINT를 가로채서 그린다던가 하는 방법들입니다..

대부분의 입력을 받는 컨트롤은 Handle 을 가지고 있는데, 오른쪽 정렬을 하기 위해서는 이 핸들이 가지고 있는 객체의 Style 을 ES_RIGHT 로 설정하는 방법이 있습니다.

하지만, ES_RIGHT는 ES_MULTILINE 과 병행하여 사용하지 않으면 동작이 되지 않는다는 단점이 있습니다. 그래서, 보통 오른쪽 정렬을 하기 위해서는 Memo 컴포넌트를 사용합니다. Memo 컴포넌트는 기본적으로도 오른쪽 정렬을 프로퍼티에서 Alignment 항목을 taRightJustify 로 설정해 줌으로써 간단히 변경하실 수 있습니다.

Memo 컴포넌트를 사용하신다음, 크기를 알맞게 변경하신 뒤, MaxLength 항목을 원하는 글자 크기만큼 받게끔 해주시면 될것 같습니다. 물론 KeyPress 에서 엔터 처리는 해주셔야 하구요..

이건 작은 팁인데요.. 숫자만 입력받게 하시려면, Style에서 ES_NUMBER 을 추가해 주시면, 숫자만 입력받게끔 바뀝니다. 아래처럼요..

__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{

int              itStyle;

itStyle = GetWindowLong(Edit1->Handle, GWL_STYLE);
SetWindowLong(Edit1->Handle, GWL_STYLE, itStyle | ES_NUMBER);

}
//---------------------------------------------------------------------------



이용주 님이 쓰신 글 :
: 김백일 님이 쓰신 글 :
: : 이용주 님이 쓰신 글 :
: : : 안녕하세요.. 또 다시 이렇게 허덥한 질문을 하는군요.. (__)
: : : Edit에서 오른쪽 정렬을 하는 방법에 대해서 알고 싶습니다.
: :
: : 임프님의 FAQ에 올리신 글이 있습니다. 무지 간단한 방법입니다.
: : http://www.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_faq&no=24
: :
: : : 염치불구하고 한가지만더 질문하겠습니다. 빌더 함수중에 HexToBin이라는 함수가 있더군요.
: : : 그 함수의 사용법에 대해서 알고 싶습니다. 제가 바꿀려고 하는것은요
: : : char nv_string = 6A라는 것인데 이것을
: : : binary인 0110 1010으로 바꾸고싶습니다. 이 함수를 사용하면 가능할것 같은데 해봐도 잘 모르겠군요. 답변부탁드릴께요. 그럼 수고하십시요..~~
: :
: : 세가지 방법이 있겠네요.
: :
: : 1) VCL/CLX 를 쓰시려면
: : IntToHex()와 HexToBin()을 같이 쓰면 되겠네요.
: : 주의할 것은 IntToHex()는 AnsiString을 리턴하지만,
: : HexToBin()은 C 식의 char 배열을 인자로 사용합니다.
: :
: : 2) C 식으로 하려면,
: : itoa() 함수를 쓰세요. 2진수에서 36진수까지 원하는 대로 변환하실 수 있습니다.
: :
: : 3) C++ 식으로 하려면
: : bitset 클래스를 쓰세요. 2진수 전용이기 때문에 itoa()보다는 빠를 겁니다.
: :
: : //---------------------------------------------------------------------------
: : #include <iostream>
: : #pragma hdrstop
: : #include <bitset>
: :
: : //---------------------------------------------------------------------------
: : using namespace std;
: : #pragma argsused
: : int main()
: : {
: :     bitset<8> x(0x6A);
: :     cout << x << endl                                                         // 01101010
: :          << x.to_ulong() << endl                                              // 106
: :     << x.to_string<char, char_traits<char>, allocator<char> >() << endl; // 01101010
: :          // string 으로 변환 할 때는 이렇게 써야 합니다. 타이핑이 좀 귀찮죠.
: :     return 0;
: : }
:
: 감사합니다. 2진수로 바꾸는건 해결했습니다.
: 근데 위에서 적어주신 주소로 가서 그 방법으로 하였더니 잘 안되네요..
: 좀더 안정적인 방법이 있나요??
: 참.. 전 이번에 새로 나온 6.0버전으로 작업을 하고 있고요 거기에 labeled edit 박스를 이용해서 edit창을 만들었습니다.
: 정렬하는 다른 방법이 있다면 좀 알려주십시요..
: :
: :

+ -

관련 글 리스트
19011 [질문] Edit에서 정렬하는 방법에대해서 알고 싶습니다. 이용주 829 2002/05/30
19012     Re:[질문] Edit에서 정렬하는 방법에대해서 알고 싶습니다. 김백일 1229 2002/05/30
19017         Re:Re:[질문] Edit에서 정렬하는 방법에대해서 알고 싶습니다. 이용주 891 2002/05/30
19023             Re:Re:Re:[질문] Edit에서 정렬하는 방법에대해서 알고 싶습니다. 유영인.Chris 995 2002/05/30
19026                 Re:Re:Re:Re:[질문] Edit에서 정렬하는 방법에대해서 알고 싶습니다. 이용주 1137 2002/05/31
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.