関数と手続きの概要
値を返すサブルーチンを関数(Function)、返さないサブルーチンを手続き(Procedure)と呼びます。手続きはC言語のvoid型の関数に相当します。関数はつぎのように呼び出します。
Y := Sin(X);
一方、手続きはつぎのように呼び出します。
Write('Hello');
手続きの構造
procedure <手続き名>(<引数>);
label
<ラベル>
const
<定数の宣言>
type
<型の宣言>
var
<変数の宣言>
<手続きおよび関数の宣言>
begin
<手続きの本体>
end;
手続き本体以外の節(label,const,type,varおよび「手続き、関数の宣言」は必要なければ省略できます。手続きの中で宣言した手続きまたは関数は、その手続きの中だけで使えます。
引数が複数個あるときはセミコロンで区切ります。
例
procedure MyProc(n:Integer; x:double);
label 10;
const
FilePath: string = 'C:\Temp\Data.TXT';
NMAX = 100;
type
TMyRecord = record
Code: Word;
Id: string;
Value: Longint;
var
Items: Array[0..NMAX] of Byte;
Dt: TMyRecord;
function LocalFunc(x: double): double; // ローカルな関数
var
y: double;
begin
・・・・
end;
begin
・・・・ // 手続き本体
・・・・
end;
関数の構造
関数の構造は基本的に手続きと同じですが、procedureがfunctionに変わり、引数の宣言の後に関数値の型を宣言します。
例
function f(x: double): double;
begin
Result := sqrt(1.0 + x * x);
end;
関数値は、例のようにResultに結果を代入します。また、f := sqrt(1.0 + x * x)のように関数名に代入してもかまいません。
標準手続きと関数
Delphiには、便利な標準手続きや関数がたくさん用意されています。これらは、uses節に必要なユニット名を追加することによって使うことができます。ふつうは、必要なユニット名をDelphiが追加してくれますが、特別な場合はユーザが追加する場合もあります。
標準手続き・関数はつぎのようなカテゴリーに分類されます。詳細は、「Visual Component Libraryヘルプ」(オンラインヘルプ)の「関数・手続き一覧」を参照してください。