私事・私事・私事・私事・私事・私事・私事・私事
IMEの話で、そうそう・・と思ったのですが
現在、VB6アプリのメンテも平行してやってるわけですが・・・
これまた一般的では無い話で強縮です。
通常、人名入力は漢字名入力→フリカナ表示とやってるアプリが
多いような(「筆まめ」など)。
ところが、フリカナ入力→漢字名変換入力は少ないでしょう。
{フリカナEditに入力し「Enter」すると、漢字名Editにひらかなで
変換待ちの状態で表示される。}
個人的にはこの仕様が好きです。
漢字名の下にフリカナがあるのは変。
かといって、漢字名の上にフリカナがあって、フリカナを修正する
場合に、一旦前のEditに戻ってという仕様も嫌い。
と、個人的こだわりなのですが、他のアプリ(Delphi)もそうしてま
す。(Delphiでこの仕様を実現するために苦労しましたが)
この場を借りて、皆様ありがとうございます。
//------------------------------------------------------
procedure TForm2.EditKanaKeyPress(Sender: TObject; var Key: Char);
var
BufStrKana :String;
Imc :HIMC;{usesにimmが必要}
begin
if Key = Chr(VK_RETURN) then
begin
if (Trim((Sender as TEdit).Text) <> '') and (EditKanji.Text = '') then
begin
EditKanji.SetFocus;
BufStrKana := (Sender as TEdit).Text;
SetImeMode(EditKanji.Handle,imHira);
Imc := ImmGetContext(EditKanji.Handle);
ImmSetCompositionString(Imc,SCS_SETSTR,PChar(BufStrKana),Length(BufStrKana),nil,0);
end else begin
EditKanji.SetFocus;
end;
end;
end;
//------------------------------------------------------
・・・もし、この仕様を実現したい方がおられたら(いないか・・・)
ところで、VB6でこの仕様を「SendKeys」なるもので実現しています。
ところが、Win9X、2000では正常に動作するものの、WinXPしかも最近の
XPではかなりの確立(30件に1件)で化けます。
IMEのバージョンの関係かな?
フリカナ入力確定後、漢字名Editに、平かなが表示されないだけなら
まだしも(これも困るけど)、漢字名のところに「Xoあq Fdかp」など
とわけのわからん文字が変換前の状態で表示されたりします。
これには参ってます。
VB6アプリは俺が作ったわけではないし、何やってるのかわかんない箇
所が多いし、今更VB6で他の方法で実現させるのも面倒だし、できるか
どうかもわかんないし、サポートないし、デバックモードと実行モー
ドで動作違うし、VB6でこんなレベルが発生しても今更驚かんし、驚か
んし、驚かんし100乗。(^_^;)
や〜れ、そろそろ顧客も怒り出しそうだから、Delphiで作り直すかな。
んっ待てよ、これってMSIME以外でも正常なのかな(環境が無い・・・)
|