fc2ブログ

FutureBASICで やさしいプログラミング

C言語だと何をさせるにしても色々と覚えることも多くて大変ですが、プログラミングを初めて経験する者には意外と敷居が高かったりします。そこで、FutureBASIC4を使うと短い記述で色々できたりして便利な一面があります。Real BASIC5.5を使うのも良いかも知れませんが、ここではFutureBASIC4のデモ版を使い簡単な絵を描いたりしてみようと思います。

FutureBASICデモ版は以下のリンクから入手先可能です。(30日間使用可能)
FutureBASICデモ版入手先
Full Demoを選択。
Includes latest release of the Editor, Compiler, Headers, Manuals and Examples. Download [ 12.5 Mb ]をダウンロードして下さい。
英語版しか無く、MACではBASICはマイナーな言語ですから、手放しにお勧めとは言えませんが、MACでのプログラミングの敷居を下げてくれます。

あなたがプログラミングの初心者だとして、以下の方法について考えてみて下さい。

Q1.例えば、Cのコードだけでウインドウを表示したかったらどうしますか?
絵を描かせるなら当然対象となるウインドウを作る必要があります。
XCODEに付属するインターフェースビルダーを使えば簡単とも言えますが、Cのコードでもできます。一分でできましたか?

A1.FutureBASICならどうするか?
Window 1
stop
とこの2行だけです。10秒で完了です。後はビルド&ランするだけです。

Q2.もう少しウインドウにタイトルを入れたりサイズを指定してきちんとしたいなら、

A.2
Window 1,"test",(100,100)-(500,500)
stop
とすれば済みます。

Q3.C言語の環境でウインドウのサイズを途中で変える必要があったらインターフェースビルダーではどうしますか?

A3. Fbなら一番目のウインドウを指定しなおせばOKです。
Window 1,"test",(100,100)-(500,500)
delay 500
Window 1,"test",(100,100)-(500,300)
stop

Q4.ウインドウを描くだけでは、メニューやウインドウ(ダイアログ)の処理がされません。では、何が必要になるか?

A4.人がメニューやウインドウを操作した情報を検出する必要があります。例えばプログラムを終了させるにはメニュー操作が当然必要ですよね。
MacではCやC++の言語使用する場合はCarbonと言う環境を利用する必要があります。
ちなみにFutureBASIC4もCarbonの環境を利用しています。

Xcodeなら雛形のソースコードにある
RunApplicationEventLoop();
がイベントの見張り番をやってくれます。

ではFutureBASIC4では
do
handleevents
until 0
で行われます。

従って、OSX最小のプログラムは以下の通りです。これでstopともお別れです。
Window 1,"test",(0,0)-(500,500)
do
handleevents
until 0

Q.5 ビルドはどうするか?

A.5 メニューからCommand>Carbon+Appearanceを選択した状態でrunを選択します。

Q6. さて本番ですが、出来上がったウインドウ1に絵を描くにはどうしますか?

A6. BASIC用の点を描くコマンドはplot x,yがあります。以下のサンプルはXとY軸を描く簡単なサンプルです。

dim i
end globals

window 1,"plot",(0,0)-(500,500),_dialogMovable

for i = 1 to 500 step 2
long color 0,0,60000
plot 0+i,250
long color 60000,0,0
plot 250,0+i
next

do
handleevents
until 0

Q7.このプログラムのメニューを見ると英語ですが、英語版で日本語は使えないのか?

A7.以下の様に先頭にresources "plst jp.rsrc"を追加すればメニューが日本語となりウインドウタイトルの文字も文字化けしなくなります。

//FutureBASIC4.2用ソース
resources "plst jp.rsrc"
dim i
end globals

window 1,"XY軸のプロット",(0,0)-(500,500),_dialogMovable

for i = 1 to 500 step 2
long color 0,0,60000
plot 0+i,250
long color 60000,0,0
plot 250,0+i
next

do
handleevents
until 0


Q8.FutureBASICはBASICの専用コマンドしかつかないのかな?

A8. C言語で使用されるToolBoxがFutureBASICでも使えます。以下のサンプルはPaintRectやRGBForeColorと言ったQuick Drawのtoolboxで描画したものです。

//FutureBASIC4.2用ソース
resources "plst jp.rsrc"

dim as RGBColor pixelRGB
dim as rect myRect
dim i
end globals

pixelRGB.red = 0
pixelRGB.green = 0
pixelRGB.blue = 0

myRect.top = 0
myRect.left = 0
myRect.right = 500
myRect.bottom = 500

window 1,"XY軸のプロット",(0,0)-(500,500),_dialogMovable

RGBForeColor( pixelRGB )//fbでは変数に&は不要です。(toolbox)
PaintRect( myRect )//Quick Drawのtoolboxで描画。

for i = 1 to 500 step 2
long color 0,0,60000
plot 0+i,250
long color 60000,0,0
plot 250,0+i
next

do
handleevents
until 0

尚、全てのサンプルコードの利用は自己の責任の元でのみ使用可能です。
スポンサーサイト



プロフィール

lightchaos

  • Author:lightchaos
最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
カテゴリー
ブロとも申請フォーム

この人とブロともになる

フリーエリア
アクセス解析
ブログ内検索
RSSフィード
リンク