일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- VB.NET
- winsock
- Visual Basic
- Firebird
- MySQL
- 파라미터
- 예제
- 파이어버드
- 기초
- vb
- PostgreSQL
- MFC
- 설치
- Delphi
- 데이터베이스
- dll
- 문자열
- 소니
- Visual Studio 2005
- 입문
- 시리얼 통신
- SQL
- 델파이
- xml
- 인스톨
- WIN32 SDK
- 셋업
- SDK
- 초보
- c#
- Today
- Total
프로그래밍 노트
[델파이] 함수에서 동적 배열과 정적 배열을 파라미터로 넘기는 방법 본문
함수에서 동적 배열과 정적 배열을 파라미터로 넘기는 방법
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.
위 예제를 보면 특별히 설명이 필요없을 것같다.