■構文
procedure Tfrm1.UpdateEmp(pFlg: Boolean);
procedure Tfrm1.UpdateEmp(); →引数なしの場合は、カッコなくてもよい
→procedure Tfrm1.UpdateEmp;
■procedure と function の違い
・procedure 戻り値がない
・function 戻り値がある
■戻り値をセットする
以下のように記述する。
Result := False;
>関数名 := False; でもよい。
javaのreturnのようにここでメソッドの処理が終了するわけではない。
※関数の処理を中断するときは exit; で抜ける。
■参照渡し
参照渡しを行うパラメータは「var」を前につける。つけなければ値渡しになる。
function ChkABC(pAAACd: string; var pBBBCd, pCCCCd, pDDDCd: string): boolean;
var を書くときは、一度;で区切る必要あり。
また各引数ごとにつけるわけではない var~型名 で一対になる
■関数内の関数
特定の関数内でのみ使用する関数を定義できる。
■スコープ
privateの上にあるプロシージャ > 画面上のコンポーネントのイベントによってのみ呼び出される。
Private内のプロシージャ > ソース内の同一Unit内から呼び出される。
Public句内のプロシージャ > 別Unitからも呼び出し可能。ソースから呼ばれる。
■関数をどこに定義すべきか?
var 以下に関数を定義すると、オブジェクトとして定義されない。
つまり、Unitをuses句にさえ入れていれば、 単純に関数名だけで呼び出すことができるため、
何のオブジェクトが持つ関数かわかりにくい。
public句に定義した関数の場合は、 オブジェクト名.関数 で呼び出す必要があるので、こちらの記述方法が推奨される。
・Odd
引数が奇数のときに True を返す