프로시저 및 함수의 호출

프로시저나 함수를 호출하면 프로그램 제어는 호출이 발생한 지점에서 루틴의 바디로 넘어
갑니다. 선언된 루틴의 이름을 사용하거나 루틴을 가리키는 프로시저 변수를 사용하여 호출
할 수 있습니다. 두 경우 모두, 루틴이 파라미터와 함께 선언되었다면 호출할 때 선언했던
파라미터들을 해당하는 순서와 타입으로 파라미터를 전달해야 합니다. 루틴으로 전달된 파
라미터는 실제 파라미터(actual parameter)라고 하며, 루틴의 선언에 있는 파라미터는 형
식 파라미터(formal parameter)라고 합니다.

루틴을 호출할 때 다음 사항들에 주의해야 합니다.

 - 타입 지정 상수와 값 파라미터는 해당 형식 파라미터(formal parameter)의 타입과 대입 호환
    가능한 타입이어야 합니다.

 - 형식 파라미터가 타입이 지정되지 않은 경우가 아니라면, var 및 out 파라미터를 전달하는 표
    현식은 해당 형식 파라미터와 같은 타입이어야 합니다.

 - var 및 out 파라미터로는 대입 가능한 표현식만 사용할 수 있습니다.

 - 루틴의 형식 파라미터에 타입이 지정되지 않은 경우, 숫자 및 순수 상수를 실제 파라미터로 사
    용할 수 없습니다.


기본 파라미터 값을 사용하는 루틴을 호출할 경우, 기본값을 택할 첫 파라미터 다음에 오는
모든 실제 파라미터들도 기본값을 사용해야 합니다. SomeFunction(,,X)와 같은 형식의 호
출은 맞지 않습니다.
루틴의 모든 파라미터를 생략하여 기본값만이 전달될 경우 괄호를 생략할 수 있습니다. 예
를 들어, 프로시저가 다음과 같을 경우,

1.png

다음 호출들은 동일합니다.

2.png


개방형 배열 생성자

개방형 배열 생성자를 사용하면 함수나 프로시저 호출 내에서 직접 배열을 생성할 수 있습
니다. 개방형 배열은 개방형 배열 파라미터 또는 variant 개방형 배열 파라미터로만 전달할
수 있습니다.
개방형 배열 생성자는 집합 생성자처럼 콤마로 구분된 표현식들을 대괄호([])로 묶은 것입
니다. 예를 들어, 다음과 같이 선언한 경우,

3.png

다음과 같이 Add 프로시저를 호출할 수 있습니다.

4.png

이것은 다음과 동일합니다.

5.png

개방형 배열 생성자는 값 파라미터 또는 const 파라미터로만 전달할 수 있습니다. 생성자의
표현식들은 배열 파라미터의 기반 타입과 대입 호환 가능한 타입이어야 합니다. 가변 개방
형 배열 파라미터의 경우 표현식이 다른 타입일 수 있습니다.


번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 21785
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 20433
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 22471
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 28220
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 29504
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 24839
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 45786
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 181320
143 [10.2 도쿄][릴리즈2] FireMonkey 퀵에디트로 주요 속성을 시각적으로 빠르게 설정할 수 있습니다. file 험프리 2017.12.13 429
142 [고객 사례- 솔루션, 델파이] AlignMix - 시각화된 세일즈 관리 도구 관리자 2020.05.12 428
141 [고객사례-유틸리티, 델파이] ExBox 관리자 2020.02.19 428
140 [도서/PDF] 한 번에 개발하는 안드로이드&iOS 앱 with 델파이 2편 - 0장. 책 소개. 저자 소개. 목차 file 관리자 2020.02.06 428
139 [발표자료] 20191017 실전 사례로 살펴보는 소프트웨어 현대화 전략 file 관리자 2019.10.23 428
138 MODERNLISTVIEW 라이브러리 – 커스터마이징 가능한 강력한 크로스 플랫폼 라이브러리 활용 방법 관리자 2021.04.06 427
137 '눈에 확 띄는' 리눅스 앱을 만들고 싶다면 - Amakrits 스타일 관리자 2019.09.09 427
136 [도서/PDF] 한 번에 개발하는 안드로이드&iOS 앱 with 델파이 1편 - 5장. UI 컨트롤 기본 사용법 관리자 2020.02.04 425
135 [10.4 시드니][업데이트 1] 델파이 코드 인사이트 새로운 기능 관리자 2020.09.10 424
134 유투브(YouTube)와 워드프레스(WordPress)를 엔터프라이즈 커넥터로 연동해 활용하기 관리자 2019.08.21 423
133 윈도우 버전 점유율 변화: 2009년부터 2019년 현재까지! file 관리자 2019.11.18 421
132 플루언트 디자인 시스템으로 애플리케이션 현대화하기 관리자 2021.04.08 419
131 인터베이스와 FireDac에서 배열필드 사용하기 file 김원경 2020.04.16 419
130 현대화 작업, 바로 지금이 골든타임입니다! 관리자 2019.09.11 419
129 [3분 완성] C++로 안드로이드&iOS 용 사진공유앱 완성하기 관리자 2019.08.14 419
128 [10.2 도쿄][릴리즈3] CMake 커맨드 라인 지원 관리자 2018.03.30 419
127 [고객사례-유틸리티, 델파이] SyncBackPro - 데이터 백업/동기화 솔루션 관리자 2020.02.04 418
126 이 달의 기술자료 - 2016년 10월 file 험프리 2016.09.30 418
125 이 달의 기술자료 - 2020년 12월 험프리 2020.11.26 417
124 [도서/PDF] 한 번에 개발하는 안드로이드&iOS 앱 with 델파이 1편 - 4장. 다양한 UI 콘트롤 살펴보기 관리자 2020.02.04 416