喫茶XRAYトップページ

[▲前のスレッド]

[437] pledit返信 削除
2005/10/13 (木) 21:55:22 雪華
今晩は、初めまして
実は、MRXRAY様の右寄せ数値専用のpleditと言うコンポーネントを
他の掲示板の書き込みから知り、使用させて頂いていますが、
数値専用以外の用途の時、numonlyをfalseにして漢字変換を行うと、
pleditの外で漢字変換をしてから確定でpledit内に表示されます。
漢字変換も確定もpledit内で(普通のeditのように)変換
出来るのでしょうか。delphiを始めて半年にもなるのに
説明さえ上手く書けなくて申し訳ありません
分かって頂けましたでしょうか。一週間程考えていましたが思い切って
投稿させて頂きました。
osはwindows2000,delphi personal ver.6を使用しています。




[438] Re:pledit 右寄せ数値専用Edit?返信 削除
2005/10/14 (金) 00:01:39 Mr.XRAY
▼ 雪華さん
> 今晩は、初めまして
> 実は、MRXRAY様の右寄せ数値専用のpleditと言うコンポーネントを
> 他の掲示板の書き込みから知り、使用させて頂いていますが、


どうも,こんにちは.いらっしゃいませ.
いやいや,そんなのありましたっけ,で,ググッてしまいました.
ありましたね.某掲示板に.
スミマセン.今探したら,HDDの中にはあったのですが,後で動作を
確認してみます.でも,期待しないで下さい.レスのために即興で
作成したものなんです.

他の方が右寄せ数値用のコンポもありますので,そちらの方がいいかも
知れません.こちらも調べてみます.
少し時間を下さい.


[439] Re2:pledit 右寄せ数値専用Edit?返信 削除
2005/10/14 (金) 00:11:52 Mr.XRAY
▼ 雪華さん

> 少し時間を下さい.

やってみました.新規プロジェクトにplEditといくつかの入力用のコンポ
を配置して,ボタンでNumOnlyを切換えてみましたが,plEditのところで
候補リストも変換中の表示もplEditのところに表示されています.

但し確認はWindowsXP(SP2) + Delphi5(UP1)です.
考えてみれば,単にTEditのParams.Styleを変更しただけなので,
ちょっと,雪華さんのような動作をするとは考えにくいのですが,
また,明日にでもまたやってみます.

[440] Re2:pledit 右寄せ数値専用Edit?返信 削除
2005/10/14 (金) 00:12:47 雪華
▼ Mr.XRAYさん
> ▼ 雪華さん
> > 今晩は、初めまして
> > 実は、MRXRAY様の右寄せ数値専用のpleditと言うコンポーネントを
> > 他の掲示板の書き込みから知り、使用させて頂いていますが、
>
> どうも,こんにちは.いらっしゃいませ.
> いやいや,そんなのありましたっけ,で,ググッてしまいました.
> ありましたね.某掲示板に.
> スミマセン.今探したら,HDDの中にはあったのですが,後で動作を
> 確認してみます.でも,期待しないで下さい.レスのために即興で
> 作成したものなんです.
>
> 他の方が右寄せ数値用のコンポもありますので,そちらの方がいいかも
> 知れません.こちらも調べてみます.
> 少し時間を下さい.


本当に遅くに申し訳ありません。
よろしくお願いします。




[441] Re3:pledit 右寄せ数値専用Edit?返信 削除
2005/10/14 (金) 00:18:43 Mr.XRAY
▼ 雪華さん

ただですね.plEditのところでと言っても,右寄せのままでの動作です
から,当然,変換表示の開始位置はplEditの右側となります.
(入力開始位置となります.これが漢字変換(IME)の仕様です)
この位置を変更するのは,

(1)一般的な文字入力の時は左寄せに変更する.
(2)漢字変換(IME)の変換窓の表示位置を変更する

しかないと思います.

で,外側というのは,どの程度の位置なのかお知らせ下さい.

[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