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


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0130
??#defineとpicload3解決


??

リンク

2010/1/30(Sat) 05:37:27|NO.30237

HSP初心者です。
わからないので教えて下さい。

#defineって、

#define a 100+50
としていたとしたら、aが150になるわけではなく、aが100+50になって結果的に150になるってだけですか?
それだと

#define a 100 #define b 50 #define c a+b
という使い方はおかしいですか?

皆さんは#defineって何に使ってますか?

あと、

buffer 100 : picload "test.bmp" : gsel 0 ;テスト画像
というスクリプトを見つけたんですが(ソースを公開しているサイトで)、これはどういう意味なんですか?
なんとなく画像をロードしているのは分かるんですが、bufferとかgselとかはないといけないんですか?

上のスクリプトみたいに画像をロードするとき、どういう風に書いてますか?



この記事に返信する


SYAM

リンク

2010/1/30(Sat) 06:57:54|NO.30238

>aが100+50になって結果的に150になるってだけですか?

そのとおりです。
試しに、次のスクリプトを実行してみてください。

#define a 100+50 mes a*2 mes (a)*2

aは 150 ではなく あくまで 100+50 になっているのがよくわかると思います。
で、特におかしいことはありません。
先に書いた #define の内容を、次に書く #define で使いたいということは実際にあり得ますし私もそんな書き方することがあります。


>bufferとかgselとかはないといけないんですか?

そのスクリプトはウィンドウIDが 100 のウィンドウに画像を読み込んですぐに、処理対象をウィンドウID 0 のウィンドウに切り替えています。

先に実行しているbufferは、読み込む先のウィンドウIDを指定する為に必要です。一度buffer命令でウィンドウID 100のバッファが作られているなら、gsel命令でそれを選ぶだけでもいいですね。
どちらもなかったら、次のpicload命令をどのバッファに対して実行するのかが分からなくなってしまいますよね。

後に実行しているgsel は、この後操作する対象のウインドウを指定しています。
そのスクリプトでは、ウィンドウIDが 100 のウインドウに対して画像を読み込んでいます。読み込んだ時点では、命令の処理対象になるのはウィンドウIDが 100 のウィンドウになっています。
次に操作したいウィンドウが別にある場合、gsel命令でウィンドウを切り替える必要があります。



??

リンク

2010/1/30(Sat) 07:57:07|NO.30240

わかりやすく、ありがとうございます!



backdrop

リンク

2010/3/31(Wed) 16:32:36|NO.31703

ちなみにSYAMさんの

#define a 100+50 mes a*2
の部分を"300"と表示させるには

#enum a 100+50
のようにします。
#enumはあらかじめ計算した値を定数として定義するプリプロセッサです。



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