今までは、イベントハンドラから自動で作られるプロシージャだけでプログラミングをしていましたが、プロシージャは自分で作ることもできるんですよね~。コード中の必要な場所から、プロシジャーを呼び出すことができますが、利用する前に「interface部に作成した手続き(または関数)が宣言されている」を確認する必要があります。
同じような操作(4つのボタンをクリックしたとき)をするので、いちいち4つのボタンをクリックしてイベントハンドラからプロシージャを作らなくても、一つにまとめてしまえばプログラムも短くなるし見やすい。賢いですねぇ
今回は、ボタンをクリックしたときのイベントプロシジャーから作ったプロシジャー「ShowItem」を呼び出しています。
カッコの中は引数です。引数を渡すことで、血液型を教えているとうわけ。たとえば1ならA型というふうに。
プログラム(プロシジャー部分)
//プロシジャーを作る(入力する)
procedure ShowItem(Blood : Integer);
var
BloodType : string;
UranaiNum : Integer;
UranaiItem : string;
begin
case Blood of
1 : BloodType := 'A型';
2 : BloodTYpe := 'B型';
3 : BloodTYpe := 'O型';
4 : BloodTYpe := 'AB型';
end;
UranaiNum := Random(5);
case UranaiNum of
0 : UranaiItem := '犬';
1 : UranaiItem := 'ネコ';
2 : UranaiItem := '鳥';
3 : UranaiItem := 'ウサギ';
4 : UranaiItem := 'サル';
end;//Case文終わり
ShowMessage(BloodType + 'あなたの幸運の鍵は' + UranaiItem);
end;
procedure TForm1.btnAClick(Sender: TObject);
//ボタンA型が押されたとき
begin
// プロシジャーを呼び出す
ShowItem(1);
end;
procedure TForm1.btnBClick(Sender: TObject);
begin
ShowItem(2);
end;
procedure TForm1.btnOClick(Sender: TObject);
begin
ShowItem(3);
end;
procedure TForm1.btnABClick(Sender: TObject);
begin
ShowItem(4);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
//乱数表の順番をランダムにする関数
Randomize;
end;