Delphi Programming / Object Pascal
サイトのトップページへ リンクのページへ ロゴマーク
[更新 2005年11月23日] [更新 2013年12月25日] フリガナ入出力エディトコンポーネント
   
フリガナ入出力エディトコンポーネント
テストプログラム omUnConvert
動作確認等 Windows 7 U64(SP1) + Delphi XE Pro







未変換文字列の出力テスト


未変換文字列を出力するテストです.
最初の文節は未変換文字列となりますが,第 2 文節以降は最初の変換候補が,未確定の状態で表示されるようです.この最初の漢字候補は,必ずしも前に変換した漢字が現れるとは限らないようです.このあたりの動作仕様についての詳細は不明です.


図1
設計時画面
  • プロパティの設定はコード内に記述
図2
ふりがなを入力して出力先に移動
  • 未確定文字が挿入され,直ちに変換作業開始
図3
変換中
図4
変換終了

リスト1
テストプログラムのコード 
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.