유닛은 상수, 데이터 형, 변수, 프로지셔, 함수의 집합체이다.
유닛은 프로그램을 짜맞출수있는 선언 라이브러리이며 프로그램을 분할하여 각각의 컴파일을 하기위한 것이다.
이렇게 프로그램을 분할하여 따로 컴파일을 할수있게하면 다음과 같은 좋은 점이 있다.

 * 파일이 커져서 다루기 어렵게되지 않는다.
 * 다른 프로그램이나 유닛에서 이용할 수있는 단위를 유닛으로 다룰 수 있다.
 * 프로그램을 일부 변경하더라도 전체 컴파일을 안해도 된다.

보통 상호간에 관련을 갖는 선언을 하나의 유닛으로 정리한다.
예를 들면 Strings 유닛은 NULL로 끝나는 문자열(PChar)를 처리하는 루틴의 모든 선언을 정리해둔 것이다.

■ 유닛의 구조
유닛은 인터페이스부(interface)와 실현부(implementation)으로 나누어져있다.
유닛을 사용할 때에는 uses절에 유닛이름을 쓰지만 이용하는 쪽에서 보면 유닛을 그 프로그램에서 선언한(그 프로그램에 포함되 있는) 것과 똑같이 취급한다.
일반적인 유닛의 구조는 아래와 같다.

unit <식별자>
interface
uses <유닛이름의 리스트>
여기에 상수, 데이터형, 변수, 프로시져나 펑션을 선언한다. (외부에 대해서 public인 것)
implementaion
uses <유닛이름의 리스트>
여기에 상수, 데이터형, 변수, 프로시져나 펑션을 선언한다. (외부에 대해서 private인 것)
프로시져나 함수의 본체
begin
    초기화 코드
end;
end.  // 마지막의 피이어드에 주목

위에 구조에서 필요없는 절이나 선언은 생략할 수 있다.
종종 초기화 코드는 생략되어지곤한다. 단순한 유닛에서는 실현부에는 프로시져나 펑션읜 본체만 씌여지는 경우도 많이 있다.
선언부에서는 주로 데이터형으로서 클래스가 선언 되어진다.

■ 선언
선언은 interface부와 implementation부의 두곳이 있다.
interface부의 선언은 외부에 대한 인터페이스의 선언이기 때문에 외부로 공개된다.
implementation부의 선언은 외부에 공개되지않게 때문에 다른 유닛에서 참조할 수 없다.

■ 표준유닛

델파이의 기본 루틴이나 컴포넌트를 사용할 때에는 uses절에 유닛명을 추가할 필요가 있다.
컴포넌트를 폼에 붙일때 자동적으로 필요한 유닛이 추가되어지지만 프로그램에서 Create 컨스트럭터를 사용하여 컴포넌트를 초기화할 때는 uses절에 수동으로 필요한 유닛을 추가해야만 된다.


( 출처 : http://wwwi.tistory.com/139 )

+ Recent posts