メソッドを使ってみよう 次はメソッドを使ってみます。 ボタンなどのクラスではメソッドはあまり使いません。 メソッドももちろん存在します。 メソッドを呼ぶ メソッドは「呼ぶ」と表現します。 メソッドの呼び方は、ほとんど命令と同じです。 プロパティのように、前に「オブジェクト名.」をつければいいだけです。
メソッド呼び出し
    1
    2
    Btn = CButton.Create;
    Btn.SetRect(10,10,100,100); //メソッド
このようにします。 メソッドは、命令同様引数を取ることも出来ます。 上の例で使用している「SetRect」は、オブジェクトをそれぞれX座標、Y座標、幅、高さの順に設定します。 以下の例と同じ意味です。
プロパティで
    1
    2
    3
    4
    5
    6
    Btn = CButton.Create;

    Btn.Left = 10; //X座標
    Btn.Top  = 10; //Y座標
    Btn.Width = 100; //幅
    Btn.Height= 100; //高さ
詳しいことは「クラスリファレンス」に書いてあります。 先ほども書いたように、使い方は命令とほぼ同じです。 プロパティのように、メソッド名の前に「オブジェクト名.」をつけます。 特殊なメソッド"Free" SpinelでのすべてのクラスはCObjectを継承しています。 CObjectが持つ特殊なメソッド「Free」について説明します。 Freeメソッドは、そのオブジェクトを解放するという働きをします。 クラスは、インスタンス化した際にメモリを確保します。この確保したメモリは、 変数と違い、放っておいても解放されないため、どんどん消費されていきます。 これがメモリーリークというもので、発見が大変難しいバグになります。 生成されたインスタンスを解放するメソッド、それが「Free」です。 Freeメソッドを呼ぶことで、そのインスタンスを解放できます。
Freeメソッド
    1
    2
    Btn = CButton.Create;
    Btn.Free; //解放
これを実行しても何も表示されません。 Btnが生成された後すぐにFreeで解放されてしまうからです。 ...ですが、今まではFreeメソッドなんか使わずにやってきました。 どうしてこんな無駄なことをするのかと思うかもしれませんが、 実は、Spinelが実行終了時に自動で全オブジェクトのFreeメソッドを呼び出しているからです。 ですから、いままで特に意識しなくてもメモリの解放は行われていたのです。 ボタンのように、終了時まで残っているオブジェクトならFreeを呼ばなくてもいいですが、 一時的に作成し、すぐに用がなくなるようなオブジェクトは、いらなくなった時点でFreeを呼び出してください。

前へ / index / 次へ
プログラム言語「Spinel」
Copyright © 2005 - gabyou All Rights Reserved.
NOTES Software.