HotSoupProcessorの記録 -5ページ目

HotSoupProcessorの記録

コンピューター言語 HotSoupProcessor の練習記録です

ちょっとしたプログラムを作ろうと思ったら
大体お世話になる、SetEnableみたいな処理。

簡単にできると思っていたら、
予想が労力1だとすると3くらいかかりましたw

-----
; ボタンの使用可否設定
#include "llmod3/llmod3.hsp"
#include "llmod3/obj.hsp"

  button gosub "- 1 -", *button1
  idBtn1 = stat
  
  button gosub "- 2 -", *button2
  idBtn2 = stat

  stop

*button1
  mes "1"
  objgray idBtn1, 0  ; 1を使用不可
  objgray idBtn2, 1  ; 2を使用可
  
  return

*button2
  mes "2"
  objgray idBtn1, 1  ; 1を使用可
  objgray idBtn2, 0  ; 2を使用不可
  
  return
-----

まず、インクルードファイルが必要です。
つまり、標準ではないということですかね。
使用可否設定関数は、objgray なんだけども、
これを入力しても、エディタ上で水色(予約語)になりません。

インクルードは初めてだったので少し手間取りました。

インクルードファイルは、まずは実行ファイルの足元を探して、
次にインストールフォルダを探すという仕様なようです。
インストールフォルダに、llmod3というフォルダがあるのでその下、
という指定ですね。



あとは、設定する関数objgrayに、オブジェクトIDを渡さないといけないです。
ボタンのIDです。
そのため、作ったときにオブジェクトIDを覚えておいて、
objgrayで使用します。
汎用的なステータス変数 stat を使用するんですね。
戻り値は、正常/異状を返して、正常の場合の情報はstatに入っているということかな。



最後に、objgray。
これは特に問題なし。
名前が、"gray"なのに、1で使用可能になるという矛盾は気にしないこと。
意外に、GUIのボタンを作ったことがなかったので
一応テストしておきました。

------
; ボタン
  button gosub "ボタンのテスト", *ButtonExecute

  stop

*ButtonExecute
  mes "ボタン押したよ"

  return
------
うん、まぁこんなところでしょう。
昨日は読み込む処理でしたが、
読む処理を作れば、書く処理も作りたくなるわけで。

-----
; ファイルを書く
; (テキストファイル)
  ; 対象バッファを指定
  notesel fpWrite

  ; fpWriteへ文字列を追加
  noteadd "test123"
  noteadd "test456"
  
  ; バッファ領域にある文字列を、ファイルへ書き込む
  notesave ".\\test.txt"

  mes "保存終了"

  stop
-----
ポイントは、
noteadd → notesave
の処理です。
noteaddで渡した文字列の後ろに自動的に改行が入るようです。
なので今回のケースでは、3行で、3行目が空行でした。

"note"というのは、メモリ上のファイルみたいなイメージでいればいいのかな。
テキストファイルの操作用の関数では、
"note"が使われるようです。