//------------------------------------------------// 창0에는 에디트(원래문자)와 시계0이 있는데요. 시계0에다가 아래와 같은 명령어를 넣었습니다. 에디터에 있는 문자가 좌로 스크롤 되도록 말입니다. 뭐가 문제죠? 스크롤 되면서 깨짐 현상이 발생됩니다. 그리고 문자에 "(~)"를 넣으면...()속의 문구는 지워지구요.
문자:잘림문자,이동문자; 이동문자:=원래문자.문자; 잘림문자:=문자복사(이동문자,1,1); 이동문자:=문자삭제(이동문자,1,1); 이동문자:=이동문자+잘림문자; 원래문자.문자:=이동문자;
영어나 숫자 그리고 띄어쓰기는 1인데 반해, 한글은 2이기에 깨짐 현상이 생기는거 같은데...
그런데. 해결 방법이...? 설마 에디터 말고 다른 객체... 그러니까 이름표 같은걸로... 노가다를 하는 그 방법을 써야 되는거 아니겠죠?
아니면... 에디터 좌측을 밑판이나 이런걸로 가려야 하나? //---------------------------------------------------//
영어 혹은 숫자는 1바이트인 반면 한글은 2바이트 이기에 깨지는 현상이 맞습니다.
이를 해결하기 위해서 '문수'를 사용한 약간의 편법을 사용하시면 됩니다.
문자:잘림문자,이동문자;
만일(문수(원래문자.문자)<100) { 이동문자:=원래문자.문자; 잘림문자:=문자복사(이동문자,1,1); 이동문자:=문자삭제(이동문자,1,1); 이동문자:=이동문자+잘림문자; 원래문자.문자:=이동문자; } 아니면 { 이동문자:=원래문자.문자; 잘림문자:=문자복사(이동문자,1,2); 이동문자:=문자삭제(이동문자,1,2); 이동문자:=이동문자+잘림문자; 원래문자.문자:=이동문자; }
100보다 작게라고 설정한 이유는 한글의 경우는 아스키코드 값이 100 이상이며 기타 영문이나 숫자의 경우에는 100 이하이기 때문입니다.
원하시는 답변이 되었으면 좋겠네요.
그럼 수고하세요^^~
참고 : 문수(원래문자.문자) 이부분은 원래문자.문자에 "가나다라마바사"등의 긴글이 입력 되어있어도 맨앞의 한글자만 인식하게 됩니다. |