喫茶XRAYトップページ

[スレッド全体
]

[2558] Re8:漢字変換の件返信 削除
2009/7/17 (金) 21:08:43 白猫
▼ 白猫さん
しっつこくて、申し訳ありません。
前回ダウンロードした本を読んでいるうちに
ちょと、気になる箇所があって、まさかと思いながら
記述したなら、なんとなく、ひらがなを未変換文字に
できそうです。
条件は、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さんありがとうございました。
なんか、おもしろものができました
白猫こと 隠れコピーキャットより



[2559] Re9:漢字変換の件返信 削除
2009/7/17 (金) 22:10:44 Mr.XRAY
▼ 白猫さん

> 条件は、Delphi2009で操作したものです
> WindosXP,VistaでもOKでした


おおっ,サンクスです.ちょうどランニングに出た時刻に白猫さんから.
今,戻ってみたら...
これで,[フリガナ入力エディト]のバージョンアップができそうです.
このコード,絶対削除しないでくださいね.


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82