Q&A

  • 한글입력시 다른 곳에서 조립되고 완성된 것만 카렛있는 곳에 보이는 문제
한글입력시 다른 곳에서 조립되고 완성된 것만 카렛있는 자리에 보이는 문제

한글을 입력할 때 예전엔 안 그랬지만
지금은 엔간한 컴포넌트는 다 입력하는 카렛이 있는 자리에서
한글이 조립되고 완성이 되면서 넘어가는데...

요즘 제가 사용하고 있는 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-->
0  COMMENTS