過去の桐井戸端BBS (桐ver.8)
2781 入力時にパスワード等の「*****」みたいな表示をしたい こまった君 1999/9/29-10:05
またまた困りました…  (T_T)
よくインターネットやネットワークログインで「パスワード」を入力したとき
「*****」と表示されますが(マスク表示というのですか?)、それを桐のフォーム
(テキストボックス)で実現したいのです。
いろいろ設定を調べたり、テキストを2つ重ねてみたりしましたがうまくいきませ
ん。
設定の方法、もしくは何か良い方法があったらお教えください。  (ToT)
2788 Re: 宮城 1999/9/30-17:37
記事番号2781へのコメント
ちょっと姑息ですが、フォントと背景を同色にすれば見えなくなることは
見えなくなりますけど。
2790 Re: こまった君 1999/9/30-18:37
記事番号2788へのコメント
宮城さん、コメントありがとうございます。
その方法も考えたのですが、入力した桁数の表示が欲しかったもので…
やはりそういう設定はないのですね。
ありそうなものですけどね。悲しい… (T_T)

p.s.最近、幅田さんをお見掛けしませんが…?どうされたのでしょう?
2791 Re: ぷぷり 1999/9/30-19:27
記事番号2790へのコメント
こまった君さんは No.2790「Re:マスク表示(?)の設定方法」で書きました


表示桁だけでいいのなら、表示用のテキストボックスに
#複写("*",#文字数([test]))
って感じでも表示できるけどもちろん入力し終えないと
表示されませんが・・・・・
2792 Re: 悲しげ 1999/9/30-20:44
記事番号2791へのコメント
どもっ、こまった君さん、ぷぷりさん

こまった君さんの質問を見て、そう云えば桐ver5で似たような
処理があったはずと思い、NIFTY/FAPPLIのライブラリーを見直
してみました。
もしNIFTYにアクセス可能なら参照してみて下さい。
     FAPPLI/Lib3/#99/PW210.LZH
転載可能との記載はありましたが、著作権者の同意とかDOS用
の処理であることなどから、ここでは簡単にその考え方をご
紹介します。

基本的には、ぷぷりさんの次のやり方になるようです。

>表示桁だけでいいのなら、表示用のテキストボックスに
>#複写("*",#文字数([test]))
>って感じでも表示できるけどもちろん入力し終えないと
>表示されませんが・・・・・

画面に表示する文字列はこのようにします。
この他に、実際の入力値を別な項目または変数に受けておきます。
変数だとしたら、#複写("*",#文字数(&変数名))でしょうか。

次、値の入力は次のようにします。
1)古典一括(cmd)なら、「機能キー入力」コマンドの返り値を
  文字に変換する。
2)イベント(kev)なら、「キー入力」イベントを使います。返り
  値である&仮想キーコードの対照データは一括のヘルプHTML
  にあります。
#jis関数でそのまま変換できたような、そうでもなかったような?
"0"〜"9"なら48〜57、"A"〜"Z"なら65〜90ですから、この辺りち
ょっと試してみて下さい。(^^;)

つまり、実際に値を入力するのではなく、押したキーの文字を
取得する訳です。
このように入力した値を(以下は変数方式の例)
  &実入力値=&実入力値+#jis(&仮想キーコード)  /*@*/
  &画面表示値=#複写("*",#文字数(&実入力値))  /*A*/
のような感じにして、値の正否判断は@を、画面表示にはAを使
うといいのではないかと思います。
大体こんな感じで、これらを例えば繰り返しループを使ったり、
途中で再描画(またはウィンドウ更新)させたり、文字数固定の
縛りをかけたりとか、色々と制御方法を試してみて下さい。

で、もしイベントでうまくできましたなら、他の方の参考のため
に後悔、もとひ、公開していただけるとありがたいです。(^^)v
2793 Re: 悲しげ 1999/9/30-20:46
記事番号2792へのコメント
すいません、訂正です。(^^;)

× FAPPLI/Lib3/#99/PW210.LZH

○ FAPPLI/Lib7/#99/PW210.LZH
2801 Re: いかすぱげてぃ 1999/10/1-10:47
記事番号2793へのコメント
途中の文字列の編集などには対応していない、ものすごく安易なものですが、
訳あって(^^;書いたイベントソースですが、なにかのご参考になれば…


*------------------------------------<パスワードの非表示化>-----*
手続き定義開始 tPassWord::編集文字列変更()
*-- 超いい加減(^^; -------------<tPassWord:編集文字列変更>-----*

変数宣言 整数{&pos,&cnt}
method @フォーム.フォーカスオブジェクト取得(&STR)

if(&STR=tPassWord)
method @tPassWord.編集選択位置取得( &pos , &cnt )
method @tPassWord.編集文字列取得(&STR)
&STR = #s(&STR,"*","")
&pos = #cond(&STR,&pos-2,1,&pos-1)
&PassWordW =#sstr(&PassWordW,1,&pos)+&STR
&STR = #複写("*",#文字数(&PassWordW))
method @tPassWord.編集文字列設定(&STR)
method @tPassWord.編集選択位置設定( 100 ,0 )
end

手続き定義終了

入力値は入力後イベントでチェックします。

しかし、見なおすと安易な逃げをしてる場所が多い。(^^;
解説は…悲しげさんよろしく。(^^)V
2804 ありがとうございます こまった君 1999/10/1-12:17
記事番号2801へのコメント
皆さん、ありがとうございます。
皆さんの意見を参考にして、いろいろ試してみたいと思います。
また、結果はご報告します。
まずは御礼まで。       (ToT)
2808 とんでもないことを思いつきました こまった君 1999/10/1-20:02
記事番号2804へのコメント
フォントエディターで、すべての半角英数字を「*」に置き換えたフォントファイル
を新規作成し、パスワード入力をするテキスト項目の「フォント」にそのファイル
を指定します。
一応うまくいきました。
まわりにいる人に入力文字が見えなければ良いのですから、これでもいいかなと
思っています。(ん〜本当によいのだろうか…)
                           (T.T)
2811 わっはっは・・・ 悲しげ 1999/10/1-21:54
記事番号2808へのコメント
どもっ、こまった君、

>フォントエディターで、すべての半角英数字を「*」に置き換えたフォントファイル
>を新規作成し、パスワード入力をするテキスト項目の「フォント」にそのファイル
>を指定します。
>一応うまくいきました。
>まわりにいる人に入力文字が見えなければ良いのですから、これでもいいかなと
>思っています。(ん〜本当によいのだろうか…)

これは凄い! 思わず大笑いしてしまいました。

ps:
#2801 いかすぱげてぃさま、
う〜ん、何とか動きますが、「解説」しようにも意味が判らんです。(;_;)
あと、入力値を「入力後」イベントで、とのことですが、どの時点
でどのように変数に取得しておくのでしょう?

6797 Re:パスワード等の「*****」みたいな表示( #2781 ) Ogo 2000/07/09-13:55
過去ログ
#2781 「入力時にパスワード等の「*****」みたいな表示をしたい」で

>よくインターネットやネットワークログインで「パスワード」を入力
>したとき「*****」と表示されますが(マスク表示というのですか?)、
>それを桐のフォーム(テキストボックス)で実現したいのです。

桐のフォームではありませんが、それを可能とするアプレットを作成しました。
ドキュメントは不親切で、使用例もありませんが、興味のある方はごらん下さい。

現在、【多遊】さんのページのダウンロードコーナーで公開中。

http://www2u.biglobe.ne.jp/~s_tanaka/index.htm

戻る