第1回 プログラムを始めよう「5.もっとHello,world!」

1−5 もっとHello,world!

 先ほどの2つのサンプルは順に「予め画面に表示されている」「ボタンをタップしたイベントでメッセージボックスを使って表示される」というものでした。
次は「ボタンをタップすると、画面に直接表示する」という仕様を考えてみましょう。ちょうど、前の2つのサンプルの中間ですね。
最初のサンプルでは、ラベルオブジェクトのLabelプロパティに予め"Hello,world!"という文字列をセットしていましたが、こんどは、ボタンのタップイベントで、それを処理させる方法を考えます。

 ここで、プロパティについてちょっと分類してみますが、プロパティを大きく分けると、次の3種類になります。
   1)プログラム作成時にセットしたら、実行中は変更できないもの。
   2)値は、参照できるだけで、セットできないもの。
   3)実行中でも変更できるもの。
1)のタイプは、例えばオブジェクトの名前でしょうか。実行中に名前が変わってしまうと困りますので、こう言う種類のプロパティがあります。変更はできませんが、たいていの場合、参照は可能です。
2)タイプは、参照だけできるものです。NS Basicのオブジェクトで簡単な例が見当たらないのですが、例えば、プログラムのバージョン情報のようなものと理解しておけば大丈夫です。詳しく言えば、自作アプリケーションのバージョンは自分でセットできるのですが、NS Basicのバージョンのようなものであれば、それ自体を参照するしかありませんので、この種類に分類できるでしょう。
そして、3)のタイプが、最も一般的なプロパティで、作成時でも実行時でも変更ができます。注目のラベルオブジェクトのLabelプロパティは、このタイプです。

 あるオブジェクト(Object)のプロパティ(Property)は、プログラムの中では次のように表します。
   Object.Property
このように、オブジェクト名とプロパティ名の間に「.」を入れて表現します。例えば、ラベル(Lbl1005)のLabelプロパティは、Lbl1005.Labelですね。 コマンド同様、オブジェクト名もプロパティ名も大文字小文字を区別しません。

次は、プロパティの値をセットする方法ですが、これは次のように行います。
   Lbl1005.Label="Hello,world!"
このように「=」を使って値をセットします。そして、このようにセットすることを「代入する」といいます。
通常、イコール、といえば「左右が等しい」ことを表しますが、代入は「右のものを左にセットしなさいよ」という意味で、必ず、右から左です。
イメージ的には、 Lbl1005.Label←"Hello,world!" な感じですね。
ちなみに、BASIC上で「何かと何かを比較して等しいか?」という条件もイコール記号を使いますので、ちょっとややこしいですね。
一方、C言語では、代入は「=」で、比較する場合は「==」と表示上の区別がされています。

本題に戻りましょう。
今回の仕様は、ラベルのLabelプロパティに"Hello,world!"を代入する処理を、ボタンをタップしたイベント内に記述すれば良いので、メッセージボックスを使った例と同じようにsub〜end subにその処理を記述します。もちろん、予め画面上に1つのラベルと、1つのボタンを配置することを忘れないようにしてください。

ここで1つ、これはNS Basicの仕様上の注意なのですが、ラベルのLabelプロパティは、最初にセットした文字数を超えた文字数を後から代入しても表示されない不具合(仕様)を持っています。
例えば、最初に"12345"と入れておいたら、後から Lbl1005.Label="Hello,world!"としても最初の5文字しか表示されません。
ということで、後から文字を入れたいんだけど、最初から文字を入れておきたくない時は、必要と思われる数のスペース(空白)を入れておくしかありません。
これは、NS Basicの現バージョン仕様であるので、仕方ないと理解しておきましょう。

    

このように、適当な幅にして、スペースをLabelプロパティにセットしておきます。
そして、ボタンオブジェクトのイベントに、Lbl1005.Label="Hello,world!"を入れれば完了です。後は、コンパイルしたものをダウンロードして試して下さい。

        

始めはスペースだけなので、ラベルの位置すらわかりませんが、タップすると、Hello,world!が表示されます。

これで、"Hello,world!"が3つできましたが、こんな単純なプログラムでも、いくつかの方法が考えられ楽しくありませんか?
(それとも、そろそろ飽きてきましたか?)
プロの世界では、開発効率が優先されて、これほど色々な方法を試して楽しんでいる余裕はないのですが、これを読んでいる皆さんは初心者なハズなので、のんびり楽しんで覚えましょう。

前へ     目次へ     次へ

第1回 プログラムを始めよう「5.もっとHello,world!」