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


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0829
M.O.O.はじめましてm(_ _)m6解決


M.O.O.

リンク

2010/8/29(Sun) 14:58:13|NO.34693

回答お願いしますm(_ _)m

getkeyを使ってマウスの左ボタンを押すと画像が表示されるようにしたいのですが、
出来ません(;_;)ヘルプやインターネットで調べても解決できませんでした;
ここにスクリプトを貼ります。

getkey a,1
if a=1 : {picload"d.bmp"
}else

です。プログラミング初心者です。



この記事に返信する


f3d

リンク

2010/8/29(Sun) 15:04:58|NO.34694

そのスクリプトでは始まった一瞬しか押されたチェックがされていません。



getkey a,1 repeat wait 1 if a==1:picload "d.bmp" loop



M.O.O.

リンク

2010/8/29(Sun) 15:16:40|NO.34695

getkey a,1
repeat
wait 1
if a==1:picload "d.bmp"

loop

でやったのですが駄目でした(TAT)

ちなみにifを使ったらelseも使うと書いてあったのですが使わなくてもいいのですか??



f3d

リンク

2010/8/29(Sun) 15:25:27|NO.34696

elseはifの条件が成立しなかった場合に行う処理を書く命令です。
このスクリプトでいう aが1じゃなかった時 ですね。

chdir dirinfo(1)+"/sample/demo/" repeat wait 1 getkey a,1 if a==1:picload "jp6girl.bmp",1 loop

ループの中にgetkeyを入れるのを忘れてました。



M.O.O.

リンク

2010/8/29(Sun) 15:35:55|NO.34697

オーーーーーーー!!出来ました^^

いま「wait」を消して実行したらフリーズ的な現象が起きたのですがなぜですか??



M.O.O.

リンク

2010/8/29(Sun) 15:39:13|NO.34698

ヘルプをよく見なかったので見落としてました;

「HSPでは、他のWindowsタスクに処理時間を渡すために長い時間ループが起こる可能性がある
場所にはwaitかawait命令を入れることを推奨しています。
waitや await命令がない命令の中を長い時間ループするようなプログラムを実行すると、
ウィンドウをドラッグしにくくなったり、他のタスクに移るのに時間がかかったりします。」

と書いてありましたm(_ _)m

回答ありがとうございました^^



f3d

リンク

2010/8/29(Sun) 15:40:55|NO.34699

ループ中にwaitを入れないと、
そのアプリケーションにCPUが占領されてしまいます。
waitは休憩みたいなもんです。

長いループにはwaitがないと駄目ってことです。
短いループには入れないほうが早く終わります。



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