DevExpress 한글 버그 수정.( DEVExpress 관련 버그 수정 방법입니다.( Devexpress V47 이후 버젼, Delphi 2009, 2010 버젼 전용 )

안녕하세요.

오래만에 글을 쓰네요.

퀀텀 관련 delphi 2010에서 퀀텀을 사용하다 보면 TcxTextEdit와 TcxGrid에서 에러나 나타납니다.

Delphi 2009이전 버젼이나 Delphi XE 버젼부터 이런 버그는 나타나지 않습니다.

이미 이 내용과 비슷한 글을 아래 올리긴 했지만, 버젼이 차이가 생겨서 다시 올립니다.

그리고 약간의 업그레이드라 보시면 될듯 합니다.

아래 내용은 Delphi 2009, Delphi 2010에서만 나타나는 버그이고, 그외버젼에선 cxTextEdit.pas의 내용 말고 다른곳의 cxGridCustomTableView.pas 의 내용만 수정하시면 됩니다.

cxGridCustomTableView.pas 의 내용도 전체 수정이 아니고, 없는 내용은 수정하지 않아도 됩니다.

퀀텀의 버젼에 따라 있고 없고가 있어 전체를 다 올립니다.

Application.processMessages 를 사용하는 부분에 마우스 원클릭시 더블클릭이 되는 등 약간의 마우스 이벤트에 문제가 생겨서 My_ProcessMessage로 대체할 내용을 만들어서 사용합니다.

100% 완벽하다고 할수 없기에 계속 테스해보면서 수정하겠습니다.


버그사항

TcxTextEdit 관련 에디트 전체에서 한글을 입력하고 마우스로 다른 콘트롤로 이동하며 마지막 입력중이던 마지막 한글 한글자가 짤려 나갑니다.
이를 해결하는 방법입니다.
DevExpress사와 일주일동안 연락하고 답변을 못받아 답답한 마음에 후다닥 수정하고 수정된 내용을 DevExpress에 보냈습니다. 답변은 고맙다는 것과 자기들이 원인을 파악하기 위해 노략하겠다는 것인데, 결과적으로 DevExpress사는 영문권이라 Unicode상에서 한글과 같은 에러의 원인을 모르는것 같습니다.

원인은 한글이 조합중일때 마우스로 포커스를 이동하면 마지막 처리 과정에서 IME-Composition이 제대로 이루어 지지 않아 발생하는것으로 이를 해결하기 위해 별도로 만든 My_ProcessMessage를 보내서 마지막 처리를 해버리는 겁니다.

그리드역시 마찮가지로 Cell에서 한글을 입력하다 Up Down 키를 누르면 에러가 나옵니다. 악세사리 에러가요 ㅎㅎㅎ
이부분 역시 수정하는 방법입니다.

각 Unit에서 Function 이나 Procedure를 찾으신뒤에 주석을 단 내용만 추가 또는 수정해 주시면 됩니다.

소스 나갑니다

 

Author: yyjksw