今までは、イベントハンドラから自動で作られるプロシージャだけでプログラミングをしていましたが、プロシージャは自分で作ることもできるんですよね~。コード中の必要な場所から、プロシジャーを呼び出すことができますが、利用する前に「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;