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

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[18464] [건의] 에디터의 한글 처리 문제..
땅주인 [heaven2] 4745 읽음    2010-07-28 16:49
다들 아실 거라 생각하는데...

한글 주석을 달다가 마지막 글자를 입력하고 마우스로 작업할 다른 곳에 찍으면
마지막 글자가 마우스 찍은 곳에 낼름 찍혀버립니다.

알고있기는 하지만.. 막 작업하다가 보면 엉뚱한 곳에 글자 하나가 떡~ 하니 찍혀서
컴파일 에러가 수십개가 나는 ....

이거 어케 안되나요? ...
김성동 [acroedit]   2010-07-29 09:19 X
아크로에디트에서도 저런 문제가 가끔 있었는데 꽁수로 해결했습니다만 제 결론은 IME 버그였습니다. 조합 완료 메시지가 날라오지 않는거죠...^^
땅주인 [heaven2]   2010-07-29 11:41 X
해결방법은?
좀 알려주삼.. 컴파일하는데 갑자기 에러 수십개 뜨면 어딘 지도 모르고 소스 후비다가.. 이걸 발견하면.. 아주... ㅠ.ㅠ;;;;;;;;;;;
크레브 [kkol]   2010-07-29 12:18 X
한글 주석 달때는 끝에 스페이스나 엔터를 치는 습관을 들이시는게 빠를듯.. ^^;
크레브 [kkol]   2010-07-29 12:22 X
세벌씩 쓰면 안나올줄 알았는데.. 2010으로 해보니 똑같은 문제 발생..
하지만 위 문제로 컴파일 에러로 문제로 고생한적은 없음~^^
박지훈.임프 [cbuilder]   2010-07-29 12:47 X
김성동님 말씀이 맞습니다.
저도 몇달 전에 해당 문제로 깊이 추적을 해봤는데, 델파이나 C++빌더가 아니라 윈도우 IME가 근본적으로 문제가 있더군요.
저도 그 버그를 피해갈 방법을 많이 고민했었는데, 딱히 방법이 없습니다.

또 모든 PC에서 발생하는 것은 아니고요. 제 PC에서는 발생하지 않길래 문제가 발생하는 PC와 비교해보니 IME의 고급 설정 몇개가 달라서 제 PC에도 똑같이 해봤었는데, 그랬더니 해당 문제가 재연이 되더군요. 그래서 아싸! 했는데.... 그 설정들을 거꾸로 되돌려도 원래대로 복귀가 안되더군요. 허덕! 그래서 저도 지금은 그 문제가 발생하는 상태에서 쓰고 있습니다. -.-;;;;

윈도우의 IME 코드가 엉망진창 쓰레기인 듯 합니다.
양용성.우석아빠 [ysyang]   2010-07-29 14:54 X
델파이2009 부터 발생하는 같습니다.

저희 프로그램도 같은 증상이 발생했었는데 SynEditor 의 IME를 수정하여 패치했습니다만 델파이는 패치할수 있는 물건이
아닌지라.

그런데 제 생각에는 윈도우 IME 문제이기 보다는 대부분 컴포넌트 회사에서 한글/일문/중문에 대한 IME 에 대한
이해 부족인듯 싶습니다. 우리야 맨날 이렇게 살았으니 불편해 죽겠다 하지만 해외에서는 거의 안 발생하는 일이니
버그 리스트에서 우선순위가 밀릴듯 합니다.

여튼 고쳐졌으면 좋겠는데.....
박지훈.임프 [cbuilder]   2010-07-29 19:41 X
양용성님, 이 문제가 델파이 2009 이후부터 발생하는 이유는 이 IME 버그 자체가 유니코드 환경에만 발생하기 때문입니다. 동일한 API 코드로 안시코드 버전과 유니코드 버전을 만들어도, 유니코드에서는 오동작하고 안시코드는 잘 동작합니다. 이건 델파이나 C++빌더 뿐만 아니고 비주얼 C++로 만든 애플리케이션에서도 여러 번 봤습니다.

김성동님 말씀처럼, IME에서 넘어오는 IME 메시지가 비정상적으로 날아오는데요. IME 메시지는 반드시 순서를 지켜서 날아와야 하는데, 순서가 거꾸로 날아옵니다. 더 구체적으로 말하자면, 마우스에 의해 포커스 이동 등의 메시지가 발생하면, 조합완료 IME 메시지를 먼저 처리해야 하는데 마우스 메시지가 먼저 처리됩니다. 이런 이유로 한글 조합중에 다른 곳을 마우스로 찍으면 커서가 먼저 이동하고 그 다음에 조합완료가 일어나서 이동된 커서 위치에 조합된 한글 글자가 찍혀버리는 상황이 발생합니다.

저도 자주 컴포넌트를 패치하기도 하고 합니다만, IDE에서의 문제는 IME 메시지가 근본적으로 잘못들어오는 거라서 저도 원인을 정확하게 알고 있지만 본사에 어떻게 대책을 제시하질 못하고 있습니다. 사실 윈도우의 버그를 개발툴이 피해가는 기능을 추가하는 문제라서 이걸 패치라고 부르기도 뭣하구요.

SynEdit는 아직 유니코드를 지원하지 않는데...
2009 버전 이전에 발생했던 한글 문제를 말씀하신 거 같습니다.

델파이/C++빌더가 윈도우의 버그를 피해 기능을 추가한 경우가 지금까지 의외로 꽤 많이 있었습니다. 예를 들면 ntdll에는 코드로 브레이크포인트를 잡는 API 함수인 DbgBreakPoint를 호출하는 디버그용 코드가 그대로 남아있어서, 개발자가 특정 코딩을 하면 개발자가 브레이크포인트를 설정하지도 않은 곳에서 난데없이 IDE가 멈추는 현상이 발생하는데요. 이게 델파이나 C++빌더의 버그인줄로 알고 있는 개발자분들이 아직도 꽤 많이 있습니다. 그래서 2007 버전 IDE에는 Ingnore non-user breakpoint라는 IDE 환경설정 옵션이 추가되었죠.

그래서 이 한글조합중의 마우스 이동의 문제에 대해서도 델파이/C++빌더 IDE 차원에서 패치(?)가 나오면 좋겠지만, 제가 생각해도 이걸 어떻게 피해가야 할지 아이디어가 떠오르질 않더군요.
김태선 [cppbuilder]   2010-08-03 18:09 X
자료실에 이 문제를 해결할 수 있는 프로그램을 만들어 올려놨습니다.

+ -

관련 글 리스트
18464 [건의] 에디터의 한글 처리 문제.. 땅주인 4745 2010/07/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.