인턴/델파이

[델파이] 2. 델파이 소스파일의 구성

2021. 2. 18. 12:06
반응형

델파이 VCL 폼을 처음 만들면 기본적으로 다음처럼 되어있다.

unit ~
interface
  uses
    ~
  type
    ~
var
  ~
implementation

end.

unit 은 pas파일의 이름이다.

반드시 파일 이름과 같아야 한다.

 

interface는 자바의 인터페이스와 유사하다.

'선언부' 라고도 하는데 이 소스코드에서 사용할 함수와 객체를 모두 선언해둔다.

선언부에서 선언하지 않은 클래스와 객체는 사용할 수 없다.

델파이도 자바와 유사하게 클래스 구조로 되어있다.

메인이 따로 결정되어 있지 않고, 맨 처음 실행할 클래스는 직접 지정할 수 있다.

선언부 내에는 uses, type, var 이 들어간다.

 

uses

파이썬, 자바의 import와 동일하다. 사용할 모듈을 가져온다.

 

type

클래스를 선언하는 부분이다.

VCL폼을 만들면 기본적으로 TForm을 상속받는 폼 클래스가 선언되어있다.

클래스의 선언은 기본적으로 다음처럼 되어있다.

  TCMIFALARMSENDMAIL = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

자바와 유사하게 프라이빗, 퍼블릭으로 접근지정자를 나누어 변수를 쓸 수 있다.

 

var

프로그램 내에서 사용할 변수와 객체를 선언하는 부분이다.

VCL폼을 만들면 기본적으로 type에서 선언된 클래스 객체가 선언되어있다.

로컬 변수를 이곳에서 선언해 사용할 수 있다.

 

implementation

선언부에 선언된 함수, 프로시져의 '구현부'이다.

실제 코딩은 사실상 이곳에서 한다고 보면 된다.


프로젝트는 다음처럼 되어있다.

exe 실행파일이 있고,

그 아래로 pas 파일과 pas파일에 연결된 dfm 파일이 있다.

 

pas파일의 실행에 대한 정보는 저 exe 파일 내부에 있다.

exe파일을 클릭 - Cntr + V

또는 exe파일에 마우스 우클릭 - View Source 를 클릭하면 다음과 같이 되어있다.

 

program SendAlarmIF_AlarmSendList;

uses
  Forms,
  CM_IF_AlarmSendMail in 'Unit\CM_IF_AlarmSendMail.pas' {CM_IF_AlarmSendMail};

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TCMIFALARMSENDMAIL, CMIFALARMSENDMAIL);
  Application.Run;
end.

program은 실행파일의 이름이다.

반드시 같아야한다.

 

uses 는 동일하다.

자세히보면 이 실행파일이 있는 경로를 기준으로

Unit 폴더의 CM_IF_AlarmSendMail.pas 파일을 가져와 사용하고 있음을 알 수 있다.

그 옆의 { } 이 중괄호가 바로 폼 파일이다.

 

그 아래의 {$R } 은 컴파일러 지시자이다.

구체적인 기능은 잘 모르겠지만

프로그램 이름과 똑같은 이름의 res 파일을 활용하는 코드라고 이해했다.

실제 폴더에도 다음처럼 res 파일이 있다.

 

그 아래로는 begin, end로 구분된 실제 프로그램 실행 코드가 있다.

모든 VCL 폼 프로그램은 다음과 같은 구조를 가지는 것 같다.

 

Application.CreateForm(TCMIFALARMSENDMAIL, CMIFALARMSENDMAIL);

이 코드로 폼을 만든다.

TCMIFALARMSENDMAIL 이건 아까 코드에 적었던 폼 클래스 명

CMIFALARMSENDMAIL 이건 해당 폼 클래스의 객체 명이다.

반응형
저작자표시 비영리 변경금지 (새창열림)

'인턴 > 델파이' 카테고리의 다른 글

[프로젝트] 자동 메일 송신 프로세스 만들기(2) : 알람 전송 리스트 테이블 만들기  (0) 2021.02.18
[프로젝트] 자동 메일 송신 프로세스 만들기(1)  (0) 2021.02.08
[델파이] 1. 델파이 프로젝트의 구성  (0) 2021.01.08
[델파이 DB조작 예제] 3. Banded Table 사용해보기  (0) 2020.08.28
[델파이 DB조작 예제] 2. DB 데이터 조작하기  (0) 2020.08.28
'인턴/델파이' 카테고리의 다른 글
  • [프로젝트] 자동 메일 송신 프로세스 만들기(2) : 알람 전송 리스트 테이블 만들기
  • [프로젝트] 자동 메일 송신 프로세스 만들기(1)
  • [델파이] 1. 델파이 프로젝트의 구성
  • [델파이 DB조작 예제] 3. Banded Table 사용해보기
에버듀
에버듀
개발은 좋은데 뭘로 개발할까
에버듀
Blog. 에버듀
에버듀
전체
오늘
어제
  • 분류 전체보기 (587)
    • 개인 프로젝트 (43)
      • [2020] 카카오톡 봇 (9)
      • [2021] 코드악보 공유APP (22)
      • [2022] 유튜브 뮤직 클론코딩 (9)
      • 간단한 프로젝트 (3)
    • 팀 프로젝트 (22)
      • [2020] 인공지능 숫자야구 (4)
      • [2022] OSAM 온라인 해커톤 (10)
      • [2024] GDSC 프로젝트 트랙 (6)
      • [2025] 큰소리 웹 페이지 (2)
    • 알고리즘 (PS) (107)
      • BOJ (101)
      • Programmers (5)
      • 알고리즘 이모저모 (1)
    • CS (312)
      • 자료구조 (19)
      • 어셈블리 (41)
      • 멀티미디어응용수학 (7)
      • 컴퓨터 구조 (29)
      • 알고리즘 분석 (4)
      • 컴퓨터 네트워크 (38)
      • 프로그래밍언어론 (15)
      • HCI 윈도우즈프로그래밍 (26)
      • 기초데이터베이스 (29)
      • 운영체제 (23)
      • 오토마타 (24)
      • 문제해결기법 (11)
      • 블록체인 (22)
      • 소프트웨어공학 (12)
      • 기계학습심화 (12)
    • 자기계발 (35)
      • 동아리 (7)
      • 자격증 (2)
      • 코딩테스트, 대회 (8)
      • 생각 정리 (17)
      • 머니 스터디 (1)
    • WEB(BE) (5)
      • express.js (1)
      • flask (0)
      • Spring & Spring Boot (4)
    • WEB(FE) (2)
      • html, css, js (1)
      • React.js (1)
    • Tool & Language (6)
      • Edit Plus (1)
      • Git (1)
      • Python3 (2)
      • Java (2)
    • Infra (12)
      • AWS (1)
      • Oracle Cloud (8)
      • Firebase (2)
      • Network (1)
    • Android (18)
      • Java (6)
      • Flutter (12)
    • Window (2)
      • Visual Studio 없이 WPF (1)
      • MFC (1)
    • 독서 (14)
      • Inside Javascript (7)
      • Database Internals (6)
      • 한 글 후기 (1)
    • 인턴 (8)
      • 델파이 (7)
      • Oracle (1)

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.1.4
에버듀
[델파이] 2. 델파이 소스파일의 구성
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.