(83) GraphicsWindow.LastKey が返す文字列

(82) ファイルセレクタ で「GraphicsWindow.LastKey がどんな値を保持するのかの資料がないことに気づきました。」と言ったことを受けて、実際にどんな文字列が返ってくるのか調べてみました。

結論からいうと、LastKey が返すのは Windows 標準のキーコードの呼称でした。押されたキーの文字ではありません。( 押されたキーの文字は、GraphicsWindow.LastText で取得します。)
ので、「a」でも「A ( Shift+a )」でも、LastKey が返すのは大文字の「A」です。Shift キーなどの機能キーは、文字キーの戻り値に影響を与えません。

また、いくつかのキーは押されたことを認識できなかったり、Windows キーのように押されたことは認識できますが OS で規定された動作も実行される ( もともとの動作の抑制はできません ) という、自作のプログラムの中であまり使い道のない結果になっていたりします。

全文表示 »

(82) ファイルセレクタ

今回は、ファイルの一覧を表示して選択する、なんてプログラムを作ってみたいと思います。

本エントリを書きながら動作を少しずつ試していきますので、果たして選択できるところまでたどり着けるかどうかはたいへん心もとない気もするんですが。

もうこれは ブログライブ と言ってもいいかもしれません。誰得。

全文表示 »

(81) ソースコードに色をつける

どうせならソースを Small Basic IDE を同じ配色にしたらおもしろいかもしれないよなー、程度の勢いで今まで本 blog のSmall Basic ソースは、IDE に準拠したカラフルさで提示してきました。

ネタを明かせば、秀丸のマクロでライブラリのワードを拾ってタグつけてただけなんですけれども。

しかしこれはけっこう精度が悪い。
変数と定数の区別はつきませんし、「Text」と「TextWindow」など、ワードがカブッている場合はおかしな色合いにタグついたりするわけです。

というわけで、せっかく Small Basic のエントリなので配色タグも Small Basic のプログラムでまかなっちゃおうか、と考えてみました。

全文表示 »

(80) FC SmallBasic Complements API リファレンス インデックス (アルファベット順)

先日、(71) FC SmallBasic Complements で、FC SmallBasic Complements という Small Basic の拡張機能を紹介したわけですが。
ちょっと自分でも使いたくなりましたので、実際に実装されている機能の一覧をメモしておくことにしました。

翻訳までしている時間をまとめて取ることができないので、当座は英文のまま整理した状態で。
そのうち少しずつ日本語に置き換えていくかもしれませんはっはっは。

全文表示 »

(192) 葦原大介 : 賢い犬リリエンタール

週刊少年ジャンプでは、後半駆け足のように物語が進んで連載が終了してしまった作品ですが。

しゃべる二足歩行の犬「リリエンタール」が、兄妹二人暮らしの日野家へ、弟としてやってくるところから話は始まります。
リリエンタールの持つ能力の謎と、その能力を手に入れようとする謎の組織とのやりとりを軸に、しかし決してフィジカルな残虐さはなく物語が進んでいきます。BL 要素もフィジカルな残虐さも少年向けエロもないあたり、ジャンプの中ではちょっと異色な話ですね。

全文表示 »

(191) 青木幸子 : ZOOKEPER

イブニングでの連載 王狩 も順調に話が始まり、週刊漫画 TIMES でも 茶柱倶楽部 が新連載となった青木幸子氏ですが。

イブニングでの前作、ZOOKEEPER がおもしろく、全巻揃えてときどき読み返したりしているわけです。

全文表示 »

(79) プログラムはどこで実行されるのか

Program オブジェクトの中に、Directry というプロパティがありまして。
実行されているプログラムがどこのフォルダに格納されているかをフルパスで返してくれる機能なんですが。

Small Basic のプログラムは、F5 とかを押して実行しようとすると、いったんコンパイルされて .exe ファイルができ、その .exe ファイルが起動されるという実行方式を採っています。

で、この .exe ファイルがどのドライブのどのフォルダに保存されているかを取得できるわけですね。

一般的な使い方としては、.exe ファイルと同じフォルダに画像などのリソースファイルを格納しておき、そのリソースを読み込もうとする時に Program.Directory で取得したフォルダの中に探しに行く、なんて時に使うと思うんです。

で、いろんなシチュエーションにおいてこのプロパティがどんな値を返すのかを調べてみました。

全文表示 »

(78) Text.GetIndexOf の戻り値が説明と異なる

Small Basic Forum の text.GetIndexOf return 0 not -1 より。

Is it a bug that text.getIndexOf() returns 0 instead of -1 when a substring is not found?
(Text.GetIndexOf が部分文字列を見つけない時に -1 ではなく 0 を返すんだけど、バグかなあ?)

…あらまあ。

rdohmen ( Rene ) さんの挙げた質問に対して、モデレータの Khumara さんが、

I've confirm that this is a valid bug. We'll fix it on the next version.
(これは明らかにバグだねー。次のバージョンで直すつもりだよ。)

と回答されていますので、v0.9 (?) ではこのあたりの動作が変わりそうですね。

全文表示 »

(77) ボタンを押してみた 2

本エントリは (75) ボタンを押してみた の続きです。

ボタンを押すと光って離すと消える、という動作ができたところで。
次は、一度押したら光ってもう一度押したら消える、というように動作を変えてみます。


一度押したら光って、もう一度押すまで光りっぱなしになるわけですから、複数のボタンが光っている状態があり得ます。
ということは、どのボタンが光っている状態でどのボタンが光っていない状態なのかを記録しておく必要があるということになります。

この「光っているかどうか」の状態を、light[x][y] という 2 次元の配列に持たせることにします。各変数の中身は、"on" が光っている状態、"off" が光っていない状態とします。

まず、各ボタンの描画と同時に、初期値 "off" を 配列 light に格納していきます。

全文表示 »

(76) Small Basic による Small Basic の機能拡張?

(71) FC SmallBasic Complements のエントリ上げた時に、FremyCompany さんの SkyDrive に SmallBasicExtensionCompiler.zip ってのがあるのを見つけておりまして。

なんだろうこれ、名前からして Small Basic の拡張機能を作れるコンパイラみたいな感じなんだけどなーなどとずいぶん気になっていたんでしたが。

今日、ご本人による紹介スレッド Create extension for Small Basic in Small Basic を見つけることができました。 なんでも、

Small Basic でSmall Basic の拡張機能を作るコンパイラ

なんだそうで。

上記スレッドは「v0.6 でしか動かんですぜ」という Fremy さんに対して「v0.7 用コンパイラまだー?」のポストで終わっていますが、実際にバイナリが提供されている SmallBasicExtensionCompiler.zip – Windows Live では、「v0.8 対応」と4/12 付でコメントされています。

Small Basic 製拡張機能だってことは、当然 Small Basic にできることしかできないわけですので、たぶん汎用ルーチンのカプセル化とかそんな感じで使うんではないかと思うんですが。
実際のところ、どんなもんなんでしょう。

全文表示 »