喫茶XRAYトップページ

[スレッド全体
]

[443] Re5:pledit 右寄せ数値専用Edit?返信 削除
2005/10/14 (金) 21:02:07 Mr.XRAY
▼ 雪華さん

私のデフォルトのIMEはWXG4です.これですとご希望の様に動作します.
以下の説明の方法でもうまくいきます.

で,MS-IME2000でやってみました.IMEの入力位置,変換ウィンドウなどは

SetImeCompositionWindow
を使用しますが,このメソッドの引数の座標値の他に,スタイルの設定が
ありますが,これはIMM.pasの中で定義されています.

{ bit field for IMC_SETCOMPOSITIONWINDOW, IMC_SETCANDIDATEWINDOW }
  {$EXTERNALSYM CFS_DEFAULT}
  CFS_DEFAULT                    = $0000;
  {$EXTERNALSYM CFS_RECT}
  CFS_RECT                       = $0001;
  {$EXTERNALSYM CFS_POINT}
  CFS_POINT                      = $0002;
  CFS_SCREEN                     = $0004;        { removed in 4.0 SDK }
  {$EXTERNALSYM CFS_FORCE_POSITION}
  CFS_FORCE_POSITION             = $0020;
  {$EXTERNALSYM CFS_CANDIDATEPOS}
  CFS_CANDIDATEPOS               = $0040;
  {$EXTERNALSYM CFS_EXCLUDE}
  CFS_EXCLUDE                    = $0080;

全部試しましたがダメです.MS-IMEでは,Editの右端の次の入力は,
次の行とみなして,強制的に次行の左端にいくようです.
これは,

> delphiのeditでは、最初に打ち込む平仮名表示が枠内に現れます
> このようにしたいのですが...


ですが,DelphiのTEditでも同じです,TEditの右端に入りきらない長さの
文字列を(変換前の)入力をして下さい.右端を越えるものは次行の左端に
移動して表示されるハズです.

つま.これはMS-IMEの仕様ですね.どうしようも有りません.
もし,方法があるとすれば,右端の右に仮の(透明な)入力コントロールで
も生成して行うしかありませ.しかし,この方法でも,TEditと同じで,
変換前の入力文字数の問題が残ります.

以上です.

[444] Re6:pledit 右寄せ数値専用Edit?返信 削除
2005/10/14 (金) 22:10:04 雪華
▼ Mr.XRAYさん
>> ですが,DelphiのTEditでも同じです,TEditの右端に入りきらない長さの
> 文字列を(変換前の)入力をして下さい.右端を越えるものは次行の左端に
> 移動して表示されるハズです.
>
> つま.これはMS-IMEの仕様ですね.どうしようも有りません.
> もし,方法があるとすれば,右端の右に仮の(透明な)入力コントロールで
> も生成して行うしかありませ.しかし,この方法でも,TEditと同じで,
> 変換前の入力文字数の問題が残ります.
>
> 以上です.


delphiのteditで試してみました。
言われている事が良く理解できました。
最後まで根気よく丁寧に説明して頂き、
本当に有難うございました。
もう少し身を入れてdelphiを勉強してから
訪問させて頂きます。



[445] Re7:pledit 右寄せ数値専用Edit?返信 削除
2005/10/14 (金) 22:26:24 Mr.XRAY
▼ 雪華さん

お役に立たなくて申し訳ありません.
これを機会に,もし,何らかの方法がみつかれば,またこの掲示板,あるいは
サンプルプログラム集にでも掲載します.

# 私自身は,このMS-IMEの仕様はあまり納得いきませんけどね.
# 今,サイトを調べていたら,ATOKもそうはならないようです.
# つまり,別の入力ウィンドウをもっているようですね.違うのはMS-IMEだけ?


[446] Re8:pledit 右寄せ数値専用Edit?返信 削除
2005/10/17 (月) 07:50:26 Syake
▼ Mr.XRAYさん
> これを機会に,もし,何らかの方法がみつかれば,またこの掲示板,あるいは
> サンプルプログラム集にでも掲載します.
>
> # 私自身は,このMS-IMEの仕様はあまり納得いきませんけどね.
> # 今,サイトを調べていたら,ATOKもそうはならないようです.
> # つまり,別の入力ウィンドウをもっているようですね.違うのはMS-IMEだけ?


以下の内容、何の参考にもなりません・・・

実のところ、私も3年前にTExEditなるもの作成しました。
掲示板にあるように、数値専用と右寄せのためです。
やってることはほぼ同じだと思いますが・・・
元々、個人IDなどを入力する時や金額入力など、左からの入力や
表示は何か変だし、一般的にどのアプリもやってない。
それと、数値しか入力しないのに、一々イベント処理するのも煩
わしの理由です。
といっても、書籍を参考にしただけですが(^_^;)

いや〜、3年たってしかもこの掲示板で初めて気づきました。
右寄せで、漢字変換しようとすると枠外に表示されることを・・・
試すどころか、右寄せで変換が必要な場合がある事すら思い立ちま
せんでした。
「気を付けよう、思い込みと・・・・(^^)」


[448] Re9:pledit 右寄せ数値専用Edit?返信 削除
2005/10/17 (月) 19:39:58 Mr.XRAY
> 試すどころか、右寄せで変換が必要な場合がある事すら思い立ちま
> せんでした。


入力コントロールが並んでいる時に,左寄せと,右寄せが混在する時の
見栄えみたいのもあるのかも知れません.

ところで,例のMS-IMEですが,入力ウィンドウは(多分透明なウィンドウ),
入力対象のコントロールの左端からそのコントロールの幅のようですね.
一方,WXG4の方は,入力開始位置から画面の右端までで,それ以上は,
TEditの左端の1行下となります.

ImmAssociateContextExというのがあるのですが,これで入力ウインドウを
もしかして変更できるかな〜,と思っているんですが,試す気力なし!!
某掲示板で,IMEのことが話題になった時の記憶ですねIMEの種類によって
ImmXXXX のAPIの挙動が違うようです.
まっ,デフォルトのままで使用するのがベターかと...


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82