델파이의 procedure와 function
델파이의 procedure와 function
값을 반환하는 서브루틴을 펑션(Function)이라하며 값을 반환하지않는 서브루틴을 프로시져(Procedure)라고 부른다.
procedure는 C에서 void형의 함수에 해당한다.
■ 프로시져 procedure
▶ 구조
label;
<라벨>
const
<상수 선언>
type
<형 선언>
var
<변수 선언>
<프로시져 및 펑션 선언>
begin
<프로시져 본문>
end;
프로시져 본체이외의 label, const, type, var 및 프로시져, 함수의 선언은 필요없는 경우 생략할 수 있다.
프로시져 안에 선언된 프로시져 또는 함수는 그 프로시져 안에서만 사용할 수 있다.
인수가 여러개 있는 경우는 세미콜론으로 구분한다.
▶ 사용예
procedure TestProc(nA:Integer; dB:double);
label 10;
const
NoMax = 256;
type
TTestRcd = record
nIdNo: Integer;
steId: String;
nVal: integer;
end;
var
arrItem: Array[0..NoMax] of Byte;
TempRcd: TTestRcd;
function InFunc(dB:double):double;
var
dC:double;
begin
//...
end;
begin
//...
//...
end;
■ 펑션 function
▶ 구조
label;
<라벨>
const
<상수 선언>
type
<형 선언>
var
<변수 선언>
<프로시져 및 펑션 선언>
begin
<프로시져 본문>
<프로시져 이름>:=<반환값>;
end;
▶ 사용예
함수값은 Result에 결과를 대입한다.
함수명에 반환값을 대입해도 된다.
function Testfunc(nA:Integer; dB:double):integer;
label 10;
const
NoMax = 256;
type
TTestRcd = record
nIdNo: Integer;
steId: String;
nVal: integer;
end;
var
arrItem: Array[0..NoMax] of Byte;
TempRcd: TTestRcd;
function InFunc(dB:double):double;
var
dC:double;
begin
//...
end;
begin
//...
//...
Result := nA * 2;
end;