さて、それでは WalkUnit を作成しましょう。
ですが、Unit1 〜 3(TImage を継承しているネコ)はあのままでいいの? と思うかもしれません。
TWinControl をはじめとする、
Self や
override
といったモノの正体は一体何なのか?
結局オブジェクト指向は何が出来るのか?
そういった様々な疑問は次の節から徐々に明らかになってくるはずです。
さあ、最後の下準備をしましょう!
手順1: A-1 で新しく作成したフォームに、
WalkUnit と名前を付けて保存して下さい。
手順2: 以下のソースを WalkUnit にコピーアンドペーストします。
unit WalkUnit
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TMainForm =
class (TForm)
B1: TButton;
B2: TButton;
B3: TButton;
Button: TButton;
T1: TTimer;
Panel: TPanel;
procedure B1Click (Sender: TObject);
procedure B2Click (Sender: TObject);
procedure B3Click (Sender: TObject);
procedure T1Timer (Sender: TObject);
private
{ Private 宣言 }
public
{ Public 宣言 }
end;
var
WalkForm: TWalkForm;
implementation
uses Unit1, Unit2, Unit3;
{$R *.dfm}
//ボタン1を押した時の動作
procedure TWalkForm.B1Click(Sender: TObject);
begin
CatA.ShowImage(Panel); //パネルの中に出現
CatA.Top := 5; //出現位置
end;
//ボタン2を押した時の動作
procedure TWalkForm.B2Click(Sender: TObject);
begin
CatB.ShowImage(Self); // フォームの中に出現
CatB.Top := 75; //出現位置
end;
//ボタン3を押した時の動作
procedure TWalkForm.B3Click(Sender: TObject);
begin
CatC.ShowImage(Button); // ボタンの中に出現
CatC.Top := 10; //出現位置
T1.Enabled:=True; //タイマーを動かす
end;
//タイマーによるイベント
procedure TWalkForm.T1Timer(Sender: TObject);
begin
CatC.CATMOVE(Button); //ボタンの中を動き回る
end;
end.