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


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0525
X.vocaro39このようなプログラムを作ったんですが...13解決


X.vocaro39

リンク

2014/5/25(Sun) 20:15:11|NO.62180

↓で作ったんですが実行すると文字が点滅してします...
screen 0,176,20
*C1
cls
nen=gettime (0):gatu=gettime (1):nichi=gettime (3):ji=gettime (4):fun=gettime (5):byou=gettime (6):miri=gettime (7)
if ji<10:ji="0"+ji+""
if fun<10:fun="0"+fun+""
if byou<10:byou="0"+byou+""
if miri<10:miri="0"+miri+""
if nichi<10:nichi="0"+nichi+""
if gatu<10:gatu="0"+gatu+""
mes ""+nen+"/"+gatu+"/"+nichi+" "+ji+":"+fun+":"+byou+"."+miri+"
goto *c1



この記事に返信する


X.vocaro39

リンク

2014/5/25(Sun) 20:21:15|NO.62181

脱字発見!!
誤:点滅してします...
正:点滅してしまいます...



Hathino

リンク

2014/5/25(Sun) 20:36:21|NO.62183

文字のちらつき(点滅)を抑えるにはredraw命令が使えます。
詳しくはヘルプを参照してください。

下に改良したソースを載せておきました。
何か違ったらすいません・・・


//screen 0,176,20 screen 0,186,20 ; 一桁入っていなかったので少し大きくしました。 *C1 redraw 0 ; この命令から先は描画しても反映されなくなる color 255,255,255 : boxf ; clsだとredraw命令も消えてしまうのでこちらを使うのが適しています。 //ここから先は貴殿のプログラムと同じです。 nen=gettime (0):gatu=gettime (1):nichi=gettime (3):ji=gettime (4):fun=gettime (5):byou=gettime (6):miri=gettime (7) if ji<10:ji="0"+ji+"" if fun<10:fun="0"+fun+"" if byou<10:byou="0"+byou+"" if miri<10:miri="0"+miri+"" if nichi<10:nichi="0"+nichi+"" if gatu<10:gatu="0"+gatu+"" pos 0,0//座標を左上に指定する color 0,0,0 ; mes命令で描画する文字の色を黒にする mes ""+nen+"/"+gatu+"/"+nichi+" "+ji+":"+fun+":"+byou+"."+miri+" //ここまでが貴殿のプログラムと同じです。 redraw 1 ; redraw 0 からこの命令までに描画したものをすべて反映 await ; repeat〜loopの間にはwaitからawaitを入れないと動作を停止してしまいます。 goto *c1



あり

リンク

2014/5/25(Sun) 20:43:20|NO.62184

ヘルプの説明が分かりにくいですが
clsは画面の消去ではなく『初期化』を行う命令です。

HSPでの画面の消去は通常boxf等で『画面を上書きする』事で代用して下さい。
その際、redraw 0とredraw 1の間に描画命令を記述する事で
チラつきを防ぐ事が可能です。



X.vocaro39

リンク

2014/5/25(Sun) 20:46:05|NO.62185

Hathinoさん、有難う御座います。
本当にワガママで申し訳ありませんが、ボタンをつけて終了できるようにしたいんです
本当にすみません!!教えてください



X.vocaro39

リンク

2014/5/25(Sun) 20:47:46|NO.62186

Hathinoさん、有難う御座います。
本当にワガママで申し訳ありませんが、ボタンをつけて終了できるようにしたいんです
本当にすみません!!教えてください
これ取り消します



X.vocaro39

リンク

2014/5/25(Sun) 20:49:57|NO.62187

ありさん、こんな初心者に分かりやすく説明していただき有難う御座いました
clsは初期化をおこなうんですね
有難うございました



X.vocaro39

リンク

2014/5/25(Sun) 20:52:54|NO.62188

解決しました。ありさん、Hathinoさん有難う御座いました!



たんす

リンク

2014/5/25(Sun) 20:54:57|NO.62189

桁合わせなら”strf:書式付き文字列を変換”を使うとif命令が少なくなりますね。

screen 0,186,20 *c1 redraw 0 color 255,255,255 :boxf pos 0,0 :color 0,0,0 mes strf("%d/%02d/%02d %02d:%02d:%02d.%03d",gettime(0),gettime(1),gettime(3),gettime(4),gettime(5),gettime(6),gettime(7)) redraw 1 await 1 goto *c1



X.vocaro39

リンク

2014/5/25(Sun) 21:03:03|NO.62190

たんすさん
かなりコンパクトになりましたね
有難う御座います



GOMEKIT!

リンク

2014/5/25(Sun) 21:10:46|NO.62191

NO.62180のスクリプトコピペした実行してみたら
確かに点滅している上、操作しようとするとフリーズした。



X.vocaro39

リンク

2014/5/26(Mon) 16:01:14|NO.62200

GOMEKIT!さん
フッ!フリーズしましたぁ!?



X.vocaro39

リンク

2014/5/26(Mon) 16:02:54|NO.62201

ではHathinoさんのプログラムを起動してみてください!!



リンク

2014/5/27(Tue) 09:29:51|NO.62213

少し、落ち着きましょう・・・



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