(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 にできることしかできないわけですので、たぶん汎用ルーチンのカプセル化とかそんな感じで使うんではないかと思うんですが。
実際のところ、どんなもんなんでしょう。

全文表示 »

(75) ボタンを押してみた

せっかく画像の表示方法に整理がついたので、ボタンを表示して押せるプログラムを試しに作ってみることにしました。
ただの四角形をボタンに見立てるのもつまらないので、私なりに気合を入れてボタンっぽい画像を用意してみたり。

 

色の淡い方を押していない時の、濃い方を押した時のつもりで。

これらの画像をインターネット経由で取得できるようにサーバに置いたら準備完了です。

全文表示 »

(74) 画像も描いてみた

基本的な図形は Draw / Add / Fill の Rectangle / Ellipse / Line / Triangle で描くとしても、やはり複雑な図形は無理があると思うわけです。
やってできなかあないかもしれませんが、ソース量は膨大になるわ描画自体にも時間がかかるわで、いいところが何もありません。

つことで、込み入った画像を表示させるには、やはりあらかじめそんな画像をファイルをして用意しておいてイメージとして描画するのが一般的な手段です。
ので、そのあたりの動作も確認しておきたいと思います。

全文表示 »

(73) 四角形を描いてみた 2

前エントリで Draw ~ 系と Add ~ 系の描画オペレーションのクセを比較してみたんですが、しまった Fill ~ 系を忘れていました。

ので、Fill ~ 系でも同様の調査をしてみます。

全文表示 »

(72) 四角形を描いてみた

ここまで基礎資料とか調査情報とかを作ってきて、そろそろ自分でもなんか作ってみようかなーとかいう気になってきたような気がします。

ので、とりあえず四角形を描いてみることにしました。

まずはふつーに、DrawRectangle で。

image

まあなんかこんな感じで。

でもってソースはこんな感じで。

GraphicsWindow.Width=320
GraphicsWindow.Height=200
GraphicsWindow.DrawRectangle(50,50,50,50)

.Width と .Height は、このエントリに貼り付けやすくするために GraphicsWindow を小さくしたかっただけです。以下紹介するソースは基本的にこの 2 行を含んでいますが、長ったらしくなるのが嫌なので省略します。

全文表示 »

(71) FC SmallBasic Complements

Small Basic がVB や C# などの .NET Framework の言語を使って拡張機能を作って組み込むことができるのは、以前 (36) Small Basic の機能拡張 等でお話ししたわけですが。

FremyCompany さんという方が FC SmallBasic Complements という、かゆいところに手が届きまくるむっちゃナイスな拡張機能を Small Basic Forum のスレッド 'Shapes', 'Eval', 'DotNet Interop', … : An extension for Small Basic で提供されてます。
( FremyCompany さんのホームサイトは Le blog de FremyCompany 。…今度ぁフランス語だよ…。)

提供されている機能をざっと挙げると、

  • クリップボード
  • Windows標準の各種コントロール ( TextBox、Button、Label、CheckBox、PogressBar等)
  • Windows標準の各種ダイアログボックス
  • グラフィックの補強・補完
  • FTP
  • マルチインスタンス
  • .NET とのインターフェイス
  • 機能キーの押下状態取得
  • Setting ファイルのI/O
  • Small Basic の補強・補完
  • Xml のI/O

なんてところです。

公開の開始が 2008.12.25 ( Small Basic がまだ v0.2 の時ですね) なので、現時点での最新版 v0.8 とは機能的にカブる部分もありますが、.NET 言語に慣れた方が不便に感じ「こんなのほしいよなー」とか思う大抵のものは網羅されちゃっていますので、活用して損はありませんというかむしろ大儲けですみたいな感じでひとつ。

全文表示 »

(70) サンプルコードを紹介しちゃうスレッド

Small Basic Forum に、Post your sample source code here and get featured on our blogs! ( あなたの作ったサンプルコードをここにポストしてくれれば、blog で紹介されるかも! ) というスレッドが立っています。

もう 3 スレ目ですね。

全文表示 »

(69) Small Basic → VB に変換してみた

解析、というほど大げさな話でもないんですが。

Small Basic には「発行」機能が付いていまして、ボタンクリック一発で smallbasic.com に自分の作ったプログラムを登録・公開できるわけです。
公開されたプログラムは smallbasic.com の Web ページで実際に使ってみたりソースを読んだりできるんですが、本気でそのソースを読み解きたいなら、IDE にインポート (取り込む) という手もあるんですね。

全文表示 »