<프로젝트 파일 소스 구조>
view -> project source

1. program [프로젝트명]
파스칼 프로그램은 항상 program 이라는 예약어로 시작합니다.
program 이라는 예약어 다음에는 프로젝트의 이름이 사용됩니다.
2. use 절
여기에는 프로젝트에서 사용할 외부 모듈(파스칼에서는 모듈을 unit이라 합니다.)의 목록이 있습니다.
"Unit1 in 'Unit1.pas' {Form1}" 은 사용되는 폼 {Form1}과 유닛 {Unit1}을 프로젝트에 포함시키는 내용입니다.
3. begin~end 절
실제로 프로그램이 시작되는 부분입니다. 위의 그림에 나타난 문장의 의미는 이렇습니다.
첫번째 문장은 프로그램을 초기화 합니다. 각 유닛에는 유닛의 초기화를 수행하는 부분이 있습니다.
(프로그램을 초기화 한다는 것은 이런 유닛들의 초기화 기능을 호출하는 등 관련 작업을 수행합니다.)
두번째 문장은 폼을 생성하고
세번째 문장은 프로그램을 수행하도록 합니다.

1. unit [유닛 명]
예약어 unit은 유닛 파일의 시작을 의미합니다.
unit 다음에는 유닛 파일의 이름이 사용됩니다.
2. interface (선언 영역)
interface로 시작되는 부분은 유닛의 선언 영역입니다.
이 영역에서는 uses 절을 사용해서 현재 유닛 파일에서 사용되는 다른 프로그램이나 유닛 파일을 지정합니다.
또한, 선언 영역에서는 상수와 변수, 프로시저와 함수등을 선언할 수 있습니다.
만약, 새로운 폼을 열어서 설계한다면, 폼의 자료형과 인스턴스 변수 등이 모두 interface영역에서 선언됩니다.
이벤트가 발생할 때 사용되는 이벤트 핸들러의 선언문 역시 여기에 포함됩니다.
이 영역에는 uses 절, 새로운 자료형을 정의하는 type절, 변수를 선언하는 var절, 그 밖에 상수를 선언하는 const 절 등이 포함됩니다.
3. uses 절
현재 유닛 파일에 포함시킬 다른 유닛을 지정하는 데 사용됩니다.
uses절은 interface 영역뿐 아니라, implementation 영역에서도 사용될 수 있습니다.
interface 영역의 uses 절에서는 프로그램 설계와 관련된 유닛들의 목록,
예를 들어 여러가지 컴포턴트들을 선언하고 잇는 유닛들을 포함시키지만,
implementation 영역의 uses 절에서는 설계시보다는 실행시에 필요한 유닛들
(주로, 객체들을 동적으로 사용할 때나 폼이 없는 유닛들)의 목록을 포함시킵니다.
implementation 영역에서 uses를 사용하는 대표적이 예로 MDI 응용 프로그램이 있습니다.
MDI 응용 프로그램에서는 종속 창(하위 창)을 실행 시간에 원하는 대로(다수의 객체) 생성해야 하므로
implementation 영역의 uses 절에서 하위 창에 대응하는 유닛을 포함시켜야 합니다.
4. type 절
유닛에 정의된 자료형을 나열합니다.
위의 그림에서는 TForm1 이라는 클래스를 정의하고 있는데, 실제로 이 클래스는 유닛에 대응하는 폼을 하나의 객체로 정의하고 있습니다.
5. var 절
유닛에서 사용 될 전역 변수를 선언합니다.
6. implementation (처리영역)
implementation 영역은 선언 영역에서 선언했던 모든 함수나 프로시저의 코드를 실제로 작성하는 곳입니다.
이 영역에도 함수나 프로시저, 상수, 변수 등의 선언문을 포함시킬 수 있지만,
이곳에서 선언되는 내용은 다른 유닛에서 참조할 수 없고, 단지 현재 유닛 파일에서만 사용할 수 있습니다.
7. initialization (초기화 영역)
유닛 파일에서 사용하는 데이터를 초기화할 필요가 있을 때에는 초기화 영역에서 데이터를 초기화해야 합니다.
이 영역에 포함되는 코드는 유닛의 다른 어떤 부분보다 먼저 실행됩니다.
8. finalization (정리 영역)
유닛의 initialization 영역에 대응하는 부분으로, 주로 initialization 영역에서 할당했던 윈도우즈의 자원들을 해제하는데 사용됩니다.
참고로, initialization 영역이나 finalization 영역의 코드는 마지막에 하나의 end 문으로 끝나야 합니다.
[출처] 4. 델파이(delphi) - 프로젝트 소스 구성 요소-|작성자 버그밤
댓글 없음:
댓글 쓰기