フリガナ入出力エディトコンポーネント 
              テストプログラム 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.
 
         
         
         
         
        
         
         
         
        
  |