HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0720
SPinput命令について4解決


SP

リンク

2009/7/20(Mon) 15:07:03|NO.26511


moji="" *a pos 0,0 input moji,100,20 button "次へ",*b stop *b moji="" wait 100 goto *a

上のプログラムを実行し、まず、適当な文字を入力します。
次に、次へのボタンを押します。
すると、1秒後に文字がリセットされます。
しかし、もう1度入力しようとすると、前回入力した文字が戻ってしまいます。
さらに、もう1度入力したときに、全角で入力すると、文字が一時的に消えてしまいます。
これらを解消するにはどうすればよいのでしょうか?
よろしくお願いします。



この記事に返信する


Ve

リンク

2009/7/20(Mon) 15:31:15|NO.26512


moji="" *a pos 0,0 input moji,100,20 button "次へ",*b stop *b moji="" wait 100 objprm 0,moji goto *a

こういうこと?
まずどうしたいのか教えてほしい。

最終的に文字を消したいのか残したいのか。
僕が書いたのは消す方です。



SYAM

リンク

2009/7/20(Mon) 15:39:53|NO.26514

どのようになって欲しいのか今ひとつわからないので、何が起きているのかだけを説明します。


>1秒後に文字がリセットされます。

ここは、そのように見えているだけで実際にはリセットされていません。
入力ボックスに変数の内容を反映させるには、 objprm 命令が必要です。
moji="" とした時点で、一見入力ボックスの内容が消えているようには見えますが、入力ボックスに対してちゃんと設定はしていないため、入力ボックスは入力された内容を覚えたままになっています。
※ですから、moji=""の後に入力ボックスの内容が復活したように見えていても、mojiの内容は ""(カラッポ) のままです。

moji="" の後に、 objprm 0,moji と入れてみれば、その部分に関しては意図した動きをするのではないかと思います。


また、全角文字が消えるのは(なんでそんな結果になるのかはわかりませんが)input命令を何度も実行しているからのようです。
このスクリプトだと、[次へ]ボタンを押すたびに同じ場所に入力ボックスとボタンを重ねて作りつづけていますね。

ラベル *a の処理の先頭で clrobj 命令を実行して新しく画面を作り直すようにするか、または ラベル *a の位置を見直す(オブジェクトを作り直さない)ことで オブジェクトが何度も作られないような流れにすると、全角文字が消えてしまったりもしなくなります。



あり

リンク

2009/7/20(Mon) 15:40:34|NO.26515

こういう事だと思いますが・・・
	moji=""
*a pos 0,0 input moji,100,20 button "次へ",*b stop *b wait 100 moji="" objprm 0,moji ;リセット objsel 0 ;フォーカスをボックスにあわせる stop ;goto *aでは文字が消える(新しい入力ボックスが出来てしまう)
objprmとobjselについてはF1ヘルプで調べてください。



SP

リンク

2009/7/21(Tue) 07:40:54|NO.26521

Veさん、SYAMさん、ありさん、ご回答ありがとうございます。

>まずどうしたいのか教えてほしい。
>最終的に文字を消したいのか残したいのか。

>どのようになって欲しいのか今ひとつわからないので

すみません、説明不足でした。
次へボタンを押した後も、初期の状態のように、文字が何もなく問題なく入力できるように
したかったのです。

いずれにしても、無事解決しました。ありがとうございました。



ONION software Copyright 1997-2023(c) All rights reserved.