喫茶XRAYトップページ

[スレッド全体
]

[442] Re4:pledit 右寄せ数値専用Edit?返信 削除
2005/10/14 (金) 07:40:29 雪華
▼ Mr.XRAYさん
> ▼ 雪華さん
>
> ただですね.plEditのところでと言っても,右寄せのままでの動作です
> から,当然,変換表示の開始位置はplEditの右側となります.
> (入力開始位置となります.これが漢字変換(IME)の仕様です)
> この位置を変更するのは,
>
> (1)一般的な文字入力の時は左寄せに変更する.
> (2)漢字変換(IME)の変換窓の表示位置を変更する
>
> しかないと思います.
>
> で,外側というのは,どの程度の位置なのかお知らせ下さい.


MR.XRAY様
おはようございます。
早速の返信有難うございました。

説明不足で大変ご迷惑をおかけいたしました。
実は、IMEの漢字変換窓を出す前に、最初に打ち込む
平仮名の表示(破線のアンダーライン付き)がpleditの枠の
左側の真下に現れます。
そしてスペースキーを打っていくとIMEの漢字変換窓
がその下に現れ、enterキーで確定すると、pleditの枠内の右側に
きっちりと表示されます。
出来ることなら最初に打ち込む平仮名の表示位置を、pleditの枠の中に
収めたいのです(左側でも、右側に出ても良いんですが)
勿論このままでも充分なのですが。
追伸
delphiのeditでは、最初に打ち込む平仮名表示が枠内に現れます
このようにしたいのですが...



[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