キーボードを使わずに日本語入力をするには?

解決


ベカ  2005-08-20 04:10:39  No: 17162

いつまで経っても初心者のベカと申します。
早速ですが、教えてください。
フォームに50音順に並んだボタンを配置して(銀行のCD機のようなもの)、
そのボタンを押すと漢字に変換できるような物を作りたいのですが、どうすればいいのかまったく解らず困っております。ご教授願います。


ベカ  2005-08-20 04:13:34  No: 17163

書き忘れましたが、Delphi5&XPを使っております。
よろしくお願い致します。


ななし  2005-08-21 03:49:21  No: 17164

ボタンを配置して「かな」を入力する部分と、漢字に変換する部分の
どちらが分からないのでしょうか?


Kashiken  2005-08-21 07:37:52  No: 17165

こんな感じでしょうか?
フォームにButton1,2とEdit1を張りつけ、Unit1を以下と置き換えて実行してみてください。
Button1を押すとEdit1に'あ'を挿入、
Button2で変換を行います。
(ソースの一部をここの過去ログからお借りしました)
----------------------------------------------------------
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,Imm;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private 宣言 }
  public
    { Public 宣言 }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit1.Text:=Edit1.Text+'あ';
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  S: String;
  Imc: HIMC;
begin
  Edit1.SetFocus;
  S := Edit1.Text;
  if S = '' then Exit;
  Edit1.Clear;
  Imc := ImmGetContext(Edit1.Handle);
  ImmSetCompositionStringA(Imc, SCS_SETSTR, PChar(S),Length(S),nil,0);
//変換文字列の設定
  ImmNotifyIME(Imc, NI_COMPOSITIONSTR, CPS_CONVERT, 0); //変換実行
  ImmNotifyIME(Imc, NI_OPENCANDIDATE, 0, 0); //変換候補リスト表示
  IMMReleaseContext(Edit1.Handle, Imc);
end;

end.


ベカ  2005-08-21 21:53:05  No: 17166

レスが遅くなりました。
ななしさん、Kashikenさんありがとうございます。

ななしさん、漢字に変換する部分がお手上げ状態です。

Kashiken さん、ソースありがとうございます。
実行してみましたが 「ファイルが見つかりません : 'Variants'」のエラーが
出てしまいます。 Variants.pas は何処に・・・

引き続きよろしくお願い致します。


Delφ  2005-08-21 23:54:12  No: 17167

え。5ってVariantsってVCLに入って無いんですか?


Mr.XRAY  URL  2005-08-22 00:05:06  No: 17168

>え。5ってVariantsってVCLに入って無いんですか?

Delphi5では,Variantsをusesしなくても,Variant変数が使用可能です.


Kashiken  2005-08-22 03:20:16  No: 17169

UnitソースをコピペしたのでVariantsもusesしてありますが、なしでも実行可です。
usesにImmを追加し、Button1,2のOnClickを書き直せば動くと思います。


ベカ  2005-08-22 11:05:57  No: 17170

Kashikenさん、皆様。ありがとうございました。
お陰様で無事できるようになりました。
今後ともよろしくお願い申し上げます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加