オブジェクトの生成
2-1 :オブジェクトの複数生成1


  はじめに            / 2-2   2-3   2-4  
さて、第一章を終えたことにより、オブジェクト指向という概念がほんのちょっぴりでも分かりかけてきたでしょうか?

これからの内容は、オブジェクト指向プログラミングが何故オブジェクト指向プログラミングと呼ばれるかを学習する、 特に重要な項目です。

第一章に比べると全体的な項目は少なめですが、覚える内容は若干高度になっているので、 がんばっていきましょう!



  オブジェクトの生成とは?
普通、オブジェクト(ネコ)はプログラムをした時点では一つしか生成されません。
これは当たり前のことです。

しかし、プロジェクトソースや主となるユニットを多少変更することによって、オブジェクトを複数生成することが可能になります。
下の図を見て下さい。



一見するとたくさんのネコ(オブジェクト)をプログラムによって出力しているようにも見えますが、 実はこのネコ自体は”まったく同じもの”なのです。

同じ内容で書かれたネコ(オブジェクト)を、主となるユニット内にて複数生成している為です。
文章で書いても分かり難いと思うので、アプリケーションを実際に作成してみましょう。

(プログラムはそれほど長くはありません)





ファイル > 新規作成 > アプリケーション を選択し、Unit 内に以下のソースを書き写して下さい。

尚、コピー&ペーストの場合には若干のエラーが発生します。
その場合には、エラー一覧を参照の上、各種エラーを取り除いて下さい。
  Unit1.pas

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, ExtCtrls;

type
 TCat = class(TForm)
  Timer1: TTimer;
  procedure Timer1Timer(Sender: TObject);
 private
  { Private 宣言 }
 public
  { Public 宣言 }
 end;

var
 Cat: TCat;

implementation

uses Unit2;    //これを追加 : オブジェクトとなるユニット名

{$R *.dfm}


//オブジェクトの呼び出し
procedure TCat.Timer1Timer(Sender: TObject);
begin
 CatWalk1.Move;
 CatWalk2.Move;
 CatWalk3.Move;
 CatWalk4.Move;
 CatWalk5.Move;
 CatWalk6.Move;
 CatWalk7.Move;
 CatWalk8.Move;
end;

end.



プロパティ
コンポーネント
プロパティ
変更後の値
Form1
Caption Name Heght Width AutoScroll オブジェクトの複数生成 Cat 360 360 False
Timer1 Name Enabled Interval Timer1 True 1000
フォーム内には タイマーコンポーネントのみを貼り付けています。
次の節ではタイマーが呼び出している、CatWalk( Unit2 )の記述です。


トップに戻る /  次へ