フリガナ入出力エディトコンポーネント
テストプログラム omYomiOut |
動作確認等 |
Windows 7 U64(SP1) + Delphi XE Pro |
入力した漢字の読みがなを出力するテストです.読みがなは最後に入力した「ひらがな」あるいは「カタカナ」を出力します. |
[備考]
この機能を実装したアプリケーションの納入先での話です.ふりがなの再入力を嫌い,目的の漢字が現れるまで変換候補を,時間をかけて探している方がいました.
読みがな出力の機能を使用せず,普通に入力した方がはるかに効率的だとは思うのですが. |
|
図1
設計時画面
|
|
図2
漢字変換中
|
|
図3
漢字入力確定
- [Enter] で出力先のエディトにフォーカス移動
- 読みがなが出力先に出力される
|
|
図4
ImeMode による違い
- 出力先 (OutputEdit プロパティの値) の ImeMode が imHira の場合はひらがなが出力される
|
unit omYomiOutUnit;
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 := imKata; //imHiraにすればひらがなで出力される
Edit2.ImeMode := imHira;
plKanaEdit1.OutputEdit := Edit1;
plKanaEdit1.OutputMode := omYomiOut;
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.
|