掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ふりがなの取得について (ID:45542)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
開発環境 DelphiXE2 Pro Windows8 Pro 64Bit ふりがなを自動的に取得する為に、CustumEditを作成していますが、 動作に不満があります・・・ WM_IME_ENDCOMPOSITIONでふりがな文字列を取得しているわけですが、 これだと、確定時にEnterキー等を明示的に押下しなければ、取得できません。 例えば、「東京都葛飾区」と入力する際に、「とうきょうと」で一端変換、Enterキーを 押さずに「かつしかく」と続けて入力してEnterキーを押した場合、取得できるのは「カツシカク」 となってしまいます。(WM_IME_ENDCOMPOSITIONが来ないので当然ですが・・・) 途中途中変換しつつ、連続で入力しても ふりがなを取得するにはどうしたら良いでしょう? よろしくお願いいたします。 ***************************************************************************************** procedure TFuriganaEdit.WndProc(var Msg: TMessage); var imc: HIMC; strKana: string; nSize: Integer; begin if (FKanaOut <> nil) then begin if (Msg.Msg = WM_IME_ENDCOMPOSITION) then begin imc := ImmGetContext(Handle); case Msg.Msg of WM_IME_ENDCOMPOSITION: begin strKana := ''; nSize := ImmGetCompositionString(imc, GCS_RESULTREADSTR, nil, 0); nSize := nSize div 2; SetLength(StrKana, nSize + 1); ImmGetCompositionString(IMC,GCS_RESULTREADSTR, PChar(StrKana), nSize*2+2); SetLength(StrKana, nSize); FKanaOut.Text := FKanaOut.Text + strKana; end; end; ImmReleaseContext(Handle, imc); end; end; inherited; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.