한글입력시 다른 곳에서 조립되고 완성된 것만 카렛있는 자리에 보이는 문제
한글을 입력할 때 예전엔 안 그랬지만
지금은 엔간한 컴포넌트는 다 입력하는 카렛이 있는 자리에서
한글이 조립되고 완성이 되면서 넘어가는데...
요즘 제가 사용하고 있는 TopGrid에서는 셀 안에서 데이터를 입력하면
한글이 미완성일 경우 다른 곳에서 조립되다가 완성된 것만 셀에 보이거든요.
옛날엔 다 그랬었지만 요즘은 안 그러는데..
여기저기 다 뒤져서 짜맞춰보아도 해결이 안되는데 고수님들의 한 수 부탁드려봅니다.
아래는 여기저기 게시판 돌아다니면서 줏어다가 짜맞춘 것인데
메시지는 전달이 되는데 원하는 답은 안 나오네요.
<!--CodeS-->
type
TForm4 = class(TForm)
tsGrid1: TtsGrid;
procedure FormDestroy(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
GridOrgWndProc : TWndMethod;
procedure GridWndProc( var Msg : TMessage );
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
{$R *.dfm}
{ TForm4 }
procedure TForm4.FormCreate(Sender: TObject);
begin
GridOrgWndProc := tsGrid1.WindowProc;
tsGrid1.WindowProc := GridWndProc;
end;
procedure TForm4.FormDestroy(Sender: TObject);
begin
tsGrid1.WindowProc := GridOrgWndProc;
end;
procedure TForm4.GridWndProc(var Msg: TMessage);
begin
case Msg.Msg of
WM_IME_SETCONTEXT :
Msg.LParam := Msg.LParam and (not (ISC_SHOWUICOMPOSITIONWINDOW Or ISC_SHOWUIALLCANDIDATEWINDOW));
end;
GridOrgWndProc(Msg);
end;
<!--CodeE-->