▼ 白猫さん
しっつこくて、申し訳ありません。
前回ダウンロードした本を読んでいるうちに
ちょと、気になる箇所があって、まさかと思いながら
記述したなら、なんとなく、ひらがなを未変換文字に
できそうです。
条件は、Delphi2009で操作したものです
WindosXP,VistaでもOKでした
Saykeさんのプログラムを借用しました。
==================================
Edit1で、ひらがなを確定したものを
Button1を押すと
Edit2に ひらがな 未確定変換となる
=================================
---------------------------
unit Unit6;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,imm, StdCtrls;
type
TForm6 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private 宣言 }
procedure newSetCharToEdit(Buf: String);
public
{ Public 宣言 }
end;
var
Form6: TForm6;
implementation
{$R *.dfm}
procedure TForm6.Button1Click(Sender: TObject);
begin
newSetCharToEdit(Edit1.Text);
end;
procedure TForm6.newSetCharToEdit(Buf: String);
var
IMC: HIMC;
BufLen:Integer;
bSize:Integer;
Buf2:String;
AnsiSt:AnsiString; //これがミソ
begin
Edit2.SetFocus;
edit2.Text:='';
AnsiSt:=buf; //引数bufを変換
AnsiSt:=StringReplace(AnsiSt,' ',' ',[rfReplaceAll]);
//半角スペースがあるとうまく変換できないから、全角スペースに置き換える
IMC:=ImmGetContext(Edit1.Handle);
SetLength(Buf2,255);
bSize:= ImmGetCompositionString(IMC,GCS_COMPSTR,PChar(Buf2),255);
SetLength(Buf2,bSize);
Buf:=Buf2 + Buf;
BufLen:=length(ansist);
ImmSetCompositionString(IMC,SCS_SETSTR, PChar(Buf),BufLen, nil, 0);
// ImmNotifyIME(Imc, NI_COMPOSITIONSTR, CPS_CONVERT, 0);
//自分で確かめてください
ImmReleaseContext(Edit1.Handle,IMC);
end;
end.
--------------------------------
ながなが、スイマセンでした。
これで、お終いとします
ごめんなさい。
Saykeさんありがとうございました。
なんか、おもしろものができました
白猫こと 隠れコピーキャットより
|