[델파이] 함수에서 동적 배열과 정적 배열을 파라미터로 넘기는 방법
함수에서 동적 배열과 정적 배열을 파라미터로 넘기는 방법
unit uMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm2 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
// 정적 배열형 선언
type
TArrVal = array[0..9] of Integer;
function StaticSum(ArrVal: TArrVal): Integer;
// 동적 배열형 선언
type
TDynArrVal = array of Integer;
function DynamicSum(DynArr: TDynArrVal): Integer;
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
{ TForm2 }
procedure TForm2.Button1Click(Sender: TObject);
var
ArrTestVal : TArrVal;
i : integer;
begin
for i := 1 to 10 do
ArrTestVal[i - 1] := i;
// 정적 배열 파라미터 함수 호출
Button1.Caption := IntToStr(StaticSum(ArrTestVal));
end;
// 정적 배열 파라미터 함수
function TForm2.StaticSum(ArrVal: TArrVal): Integer;
var
i : integer;
iSum : integer;
begin
iSum := 0;
for i := Low(ArrVal) to High(ArrVal) do
iSum := iSum + ArrVal[i];
Result := iSum;
end;
procedure TForm2.Button2Click(Sender: TObject);
var
DynArrTest : TDynArrVal;
i : integer;
begin
// 동적 배열 크기설정
SetLength(DynArrTest, 10);
for i := Low(DynArrTest) to High(DynArrTest) do
DynArrTest[i] := i + 1;
// 동적 배열 파라미터 함수 호출
Button2.Caption := IntToStr(DynamicSum(DynArrTest));
end;
// 동적 배열 파라미터 변수
function TForm2.DynamicSum(DynArr: TDynArrVal): Integer;
var
i : integer;
iSum : integer;
begin
iSum := 0;
for i := Low(DynArr) to High(DynArr) do
iSum := iSum + DynArr[i];
Result := iSum;
end;
end.
위 예제를 보면 특별히 설명이 필요없을 것같다.