C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[13466] [버그리포트] TEdit에 우측정렬에서 문자열을 더해갈경우.
Lyn [tohnokanna] 2690 읽음    2007-10-22 15:45
터치스크린으로 암호체크하는 프로그램에서 키패드 부분만 빼 낸건데..

TEdit 하나를 올려놓고
여러개의 버튼을 둔 다음에...

Self.NumberWindow.Text := Self.NumberWindow.Text + SenderButton.Charector;

와같은 Simple 한 코드로 문자열을 더해가고 있습니다

예를들어 12*3 을 순서대로 누르면

1 -> 12 -> 12* -> 12*3 으로 나오는것이 너무 당연한거죠 =_=;;

그런데..
TEdit 의 BiDiMode 를 bdRightToLeft 로 주면..
이상한 문제가 생깁니다.
다른 기호는 문제가 없는데... * 만 붙으면 이상해집니다

위와 같은 순서로 누르면
1 -> 12 -> *12 -> 3*12
처럼 *를 누르는 순간 맨 앞으로 붙으며, 그 뒤로 문자열 연결이 전부 엉망이됩니다.

숫자와 8를 번갈아서 누르다보면 앞에붙엇다 뒤에붙엇다 중간에 붙엇다 하면서 가관을 연출하죠 ㅡㅡ;

NumberWindow.BiDiMode := bdRightToLeft;
위 한줄 빼서 그냥 왼쪽정렬로 하면 문제가 없는데...


제가 코드를 잘못 짠 것일까요?
예제코드 첨부합니다.
김도완 [purplecofe2]   2007-10-22 15:57 X
bidiMode라는게 읽는 방향이 다른 문자권에 대한 윈도우즈 기능일겁니다.
그러니 당연히 뒤집히겠죠. 반대로 읽으니까요.
실제로 그러는지는 모르겠네요 -_-;
Lyn [tohnokanna]   2007-10-22 16:03 X
음....
그럼 BiDiMode를 정렬상태를 변경하기 위해서 사용하면 안되는것이었나요...

그런데 왜 숫자와 *가 다르게 작동할까요 ㅡ.ㅡ; 숫자만을 연결 해 나가면 문제가 없는데.
Lyn [tohnokanna]   2007-10-22 16:07 X
근데 버그가 아니면 질문게시판으로 옮겨야될듯 ㅡ.ㅡ;
박지훈.임프 [cbuilder]   2007-10-22 16:12 X
BiDiMode는 김도완님이 설명하신 대로가 맞습니다.
아라비아권에서 글자 순서를 거꾸로 나타내기 위해 지원되는 속성입니다. 따라서 린님이 말씀하신 동작은 정상 동작이고요. 우측 정렬을 위해서 쓰는 기능도 아니고, 아라비아권이 아니면 그 속성을 건드리면 안된답니다.
Lyn [tohnokanna]   2007-10-22 16:14 X
그렇군요 알려주셔서 감사합니다.

그냥 API 콜 해야겠네요 -0-;
김도완 [purplecofe2]   2007-10-23 09:56 X
숫자가 뒤집히지 않는 것은 당연하지 않을까요?

다만 수의 나열 순서가 연산자와 함께 순서가 읽는 방향으로 나열될 뿐입니다.

+ -

관련 글 리스트
13466 [버그리포트] TEdit에 우측정렬에서 문자열을 더해갈경우. Lyn 2690 2007/10/22
13467     Re:[버그리포트] TEdit에 우측정렬에서 문자열을 더해갈경우. 공부맨 2327 2007/10/22
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.