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


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
0309
keninput 入力値を完全に消すことが出来ません3解決


ken

リンク

2017/3/9(Thu) 11:00:50|NO.78453

いつもお世話になっています。
現在、バーコードリーダーで入力するアプリを作っています。
バーコードリーダーから出力されるデータは文字の後にリターンが付きます。今回、スペースキー+リターンになります。
以下のようなスクリプとを作成しましたが、どうしてもinputのデータにスペースが残ってしまいます。
間違っている点をご指摘いただければ助かります。

スクリプト

a="abcd"
b="ABCD"
c=100
input a,50,20
input b,50,20
onkey gosub *check
if c=0 :objprm 0,""
if c=1 :objprm 1,strmid(b,1,4)
stop

*check
if wparam=32 {
objsel -1
if stat=0 {
c=0
objprm 0,""
}
if stat=1 {
c=1
b=b+"EFG"
strrep b," ",""
objprm 1,b
}
return
}
return



この記事に返信する


沢渡

リンク

2017/3/9(Thu) 21:07:09|NO.78455

しまくろねこさんの補足ですが、キー連打で何度も*chackが呼ばれるのを防ぐために、
*checkとwaitの間にonkey 0を挟み、return直前にonkey 1した方がよいかもしれません。
(かくいう私もそんな方法思いつきもしませんでした。勉強になります)



ken

リンク

2017/3/9(Thu) 23:07:21|NO.78458

しまくろねこさん、沢渡さんありがとうございます。上記スクリプトにwait 1を追記することで見事解決しました。どうして、そのように思われたのか教えていただければ勉強になります。沢渡さまのご指摘は理解できました*check処理中に次のonkeyが割り込まないようにするためですよね。
試行錯誤していた時間は何だったんだろう?って感じです。



しまくろねこ

リンク

2017/3/10(Fri) 05:59:11|NO.78462

誤:ラベル「*check」の次に行にwait命令を挟むと良いかもしれません。
正:ラベル「*check」の次の行にwait命令を挟むと良いかもしれません。
でした。



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