フリガナ入出力エディトコンポーネント
テストプログラム omUnConvert |
動作確認等 |
Windows 7 U64(SP1) + Delphi XE Pro |
未変換文字列を出力するテストです.
最初の文節は未変換文字列となりますが,第 2 文節以降は最初の変換候補が,未確定の状態で表示されるようです.この最初の漢字候補は,必ずしも前に変換した漢字が現れるとは限らないようです.このあたりの動作仕様についての詳細は不明です. |
|
図1
設計時画面
|
|
図2
ふりがなを入力して出力先に移動
|
|
図3
変換中 |
|
図4
変換終了 |
unit omUnConvertUnit;
interface
uses
Windows, Messages, SysUtils, Classes, Controls, Forms,
Dialogs, plKanaEdit, StdCtrls;
type
TForm1 = class(TForm)
plKanaEdit1: TplKanaEdit;
Edit1: TEdit;
Edit2: TEdit;
procedure FormShow(Sender: TObject);
procedure plKanaEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
//=============================================================================
// Formを表示したら各コントロールのテキストはクリア
// 未確定文字列の出力先はEdit1
//=============================================================================
procedure TForm1.FormShow(Sender: TObject);
begin
Edit1.Text := '';
Edit2.Text := '';
Edit1.ImeMode := imHira;
Edit2.ImeMode := imDisable;
plKanaEdit1.ImeMode := imHira; //imKataにすればカタカナ固定入力
plKanaEdit1.OutputEdit := Edit1;
plKanaEdit1.OutputMode := omUnconvert;
plKanaEdit1.Text := '';
end;
//=============================================================================
// [Enter]キー押下の処理
// 次の[Tab]順序のコントロールにフォーカス移動
// このFormのコントロールのOnKeyDown共用イベント
//=============================================================================
procedure TForm1.plKanaEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=VK_RETURN then begin
keybd_event( VK_TAB, MapVirtualKey(VK_TAB, 0), 0 , 0 );
keybd_event( VK_TAB, MapVirtualKey(VK_TAB, 0), KEYEVENTF_KEYUP , 0);
end;
end;
end.
|