第10回 全員集合!スクリーンオブジェクト 「4.Visual BASICとNS Basic」

10−4 Visual BASICとNS Basic

一通り紹介が終わったところで、プロパティへの値の代入について、NS BasicとVisual BASICで取り扱いに差異があるようなので紹介しておきます。
ま、おまけ程度ですので、気楽に読んで下さい。

基本的な定義として、プロパティは「属性を表す」ということですが、例えば、「おひょいさん」が「起きているか?」というプロパティを考えてみましょう。
おひょいさんが、起きていれば、

    
    「おひょいさん.起きている」 は「True」
    しっかり、起きているようです

ですね。そして、「寝なさい」メソッドで、眠らせたり、「起きなさい」メソッドで起す事が出来ます。

    
    おひょいさん.寝なさい
    寝なさいメソッドで、すやすやと

       
       おひょいさん.起きなさい
       起きなさいメソッドは、ちょっと酷ですね

このようなプロパティとメソッドの組み合わせは、命令なのか属性なのかがはっきりわかれていて理解しやすいですね。
これはNS Basicでは、例えば、Labelオブジェクトが、

    Label1.Label="Hello,world!"

と代入できたり、「Show」「Hide」メソッドで表示・非表示ができる点と同じです。

    Label1.Show  ラベルを表示する
    Label1.Hide  ラベルを非表示にする


しかし、Visial BASICでは、ちょっと考え方が違っています。
Visual BASICにもLabelオブジェクトがあるのですが、ShowやHideに相当するメソッドが用意されていません。
では、どうやって表示・非標示を切り替えるか、というと「表示されているか?」という「.Visible」プロパティに値を状態を代入して切り替えます。
例えば、ラベルを表示したい時は、

    Label1.Visible=True

非標示にする時は

    Label1.Visible=False

とします。ちなみに、この書式は、NS Basicではエラーになります。

今までは疑問に思わなかったのですが、良く考えるとVisual BASIC風の方が「おかしな」な感じがしませんか?

    「プロパティはそのオブジェクトの属性を表す」

というお話でしたが、Visual BASIC風は「その属性を変えたら、本体のオブジェクト側が変わってしまう」ことになりますね。
「属性を変えちゃったんだから、本体はそれに従いなさい」って「勝手にルールを決めて」それに「従わせている」ように思うのは私だけでしょうか?
例えば、先ほどのおひょいさんに登場してもらい、起きているおひょいさんに「対話形式」で寝てもらうようにしましょう。
まず、「寝てください」メソッドによる、NS Basic風では、
「おひょいさん、起きていますか?」
「おひょ〜い(はーい)」

モジュールレベル:
「おひょいさん.起きている」 は 「True」
 → 
「では、おやすみなさい」
「おひょ〜い(はーい)」
・・・おひょいさんは、まろやかな眠りにつきました。

モジュールレベル:
「おひょいさん.寝てください」メソッドの実行
「おひょいさん.起きている」 は 「False」になりました

こんな感じで、まろやかな眠りについた感じがします。
一方、Visual BASIC風では、

「おひょいさん、起きていますか?」
「おひょ〜い(はーい)」

モジュールレベル:
「おひょいさん.起きている」 は 「True」
 → 
ふっ、寝たことにしよう・・・
行け!


モジュールレベル:
「おひょいさん.起きている」 は 「True」 だったのを
「おひょいさん.起きている」 に 「False」をしてしまえ!
 → 
承知!
「寝てな!」
「おひょぉ!!(ぐはっ!!)」

モジュールレベル:
「おひょいさん.起きている」 は 「False」

勝手なイメージですが、元気に起きていたおひょいさんは、無理に寝かされたような感じがします。

ちょっと遠回りしましたが、Visial BASIC風の「プロパティに代入してその状態を変更する」という手法は、NS Basicでは一般的ではありません。
NS Basicではどちらかといえば、メソッドを中心に使いますので、そちらの慣れている方はちょっと困惑するかもしれませんね。
ただ、おひょいさんには気の毒ですが、プログラムを組んでいると、Visual BASIC風の方が便利な気はしますが・・・
ま、どちらにしても、NS Basicを使う上では、「メソッド」中心であることを覚えておいて、便利に使うのが良いでしょう。
皆さんのが、熱烈的なオブジェクト指向信仰者でなければ、それほど受け入れるのに無理はないと思います。

初心者向けのBASIC講座「Basic BASIC」も10回目を迎えることが出来ました。
今回紹介したスクリーンオブジェクトが自由に使えるようになれば、NS Basic上では困ることがないでしょう。
尚、内容につきましては、検証をしながらまとめましたが、検証が足りない部分もあると思いますので、そういう部分は許してください。
一応、実行環境を紹介しておきますので、ご参考にして下さい。

    開発環境:Windows98SE+NS Basic/Palm 2.03
    動作環境:CLIE N600C、及び、VISOR Platinum

最後になりましたが、記念すべき第10回のカットを、細かい注文にもイヤな顔をせず仕上げて頂いたOhyoiさんに、この場を借りてお礼申し上げます。ありがとうございました。




前へ    目次へ

第10回 全員集合!スクリーンオブジェクト 「4.Visual BASICとNS Basic」