1. dpr(delphi project) 

프로젝트 파일 이라고 부르며 여러 개의 pas 파일과 dfm 파일의 정보를 가지고 있다.

※ 통프로그램(하나의 exe 파일)으로 개발 시 dpr 파일은 반드시 하나만 존재한다.

※ DLL 분할 프로그램으로 개발 시 DLL파일 개수만큼 dpr 파일이 생성된.

 

 

2. dpg(delphi project group) 

프로젝트 그룹 파일 이라고 부르며 여러 개의 프로젝트 파일의 정보를 가지고 있다.

여러 개의 프로젝트 파일을 관리할 때 사용하는 파일이다.

 ※ 여러 개의 DLL파일도 bpg로 관리하면 편리하다.

 

 

3. pas(pascal) 

유닛 파일 이라고 부르며 하나의 폼에서 실행되는 처리 코드를 저장하는 텍스트 파일이다.

※ 무조건 pas 파일과 dfm 파일은 1:1 매칭을 이룬다.

 

 

4. dfm(delphi form) 

폼 파일 이라고 부르며 하나의 폼에 관련된 모든 속성을 저장하는 텍스트 파일이다.

※ 델파이4.0 까지는 바이너리 파일이었으나 5.0부터 텍스트 파일로 생성된다.

※ dfm 파일을 에디터나 메모장으로 열어 수정하고 저장하면 에러가 난다. 반드시

델파이 상의 오브젝트 인스펙터창을 이용하여 수정해야 한다.

 

 

5. dsk - 델파이 환경설정 파일

dpr 파일과 파일명이 같으며 해당 프로그램의 환경설정 내용을 가지고 있는 파일이다.

삭제하더라도 프로그램 컴파일 시 자동으로 만들어지는 파일이다.

※ F12키로 잘 보이던 폼이 안 보일 때는 dsk파일을 삭제 후에 다시 컴파일 + 빌드한다.

※ 특정 DLL소스에 브레이크 포인트가 갑자기 들지 않을 때는 이 파일을 삭제 후에 다시

컴파일 후 브레이크 포인트를 적용해본다.

※ 위의 방법으로도 브레이크 포인트가 들지 않으면 bpg파일에 있는 dpr파일을 모두

삭제한 후 다시 추가하거나 그래도 안되면 델파이를 종료 후 다시 실행한다.

 

 

6. dpk(delphi package) - 델파이 패키지 파일

델파이 패키지 파일로 컴포넌트 소스인 .pas(유닛파일)를 하나로 합쳐 패키지로 만든

파일이다. 델파이에 컴포넌트를 쉽게 추가하기 위한 목적을 가진 패키지 파일이다.

 

 

7. dll(dynamic link library) - 동적 링크 라이브러리

※ 자주 사용하는 함수는 공유파일 이진파일로 만든다.

 

 

8. dcu

델파이의 소스를 컴파일해서 생기는 object파일 이진파일이다.

 

 

9. exe - 프로그램 설치 파일

 델파이의 object파일을 실행 가능한 파일로 만든 것이다.

 

 

10. RES 

컴파일 된 이진 리소스 파일

 

 

11. bpl(borland package library) - 델파이 패키지 라이브러리

볼랜드 패키지 라이브러리 파일이며 다이나믹 링크 라이브러리(DLL) 파일과 비슷하지만

bpl은 볼랜드 제품에서만 호환되며 dll은 MS 제품에서도 사용 가능하다.


델파이의 procedure와 function

값을 반환하는 서브루틴을 펑션(Function)이라하며 값을 반환하지않는 서브루틴을 프로시져(Procedure)라고 부른다.

procedure는 C에서 void형의 함수에 해당한다.

■ 프로시져 procedure

  ▶ 구조

procedure <프로시져 이름>(<인수>);
label;
    <라벨>
const
    <상수 선언>
type
    <형 선언>
var
    <변수 선언>

<프로시져 및 펑션 선언>

begin
    <프로시져 본문>
end;


프로시져 본체이외의 label, const, type, var 및 프로시져, 함수의 선언은 필요없는 경우 생략할 수 있다.
프로시져 안에 선언된 프로시져 또는 함수는 그 프로시져 안에서만 사용할 수 있다.
인수가 여러개 있는 경우는 세미콜론으로 구분한다.

  ▶ 사용예

procedure TestProc(nA:Integer; dB:double);
label 10;
const
  NoMax = 256;
type
  TTestRcd = record
    nIdNo: Integer;
    steId: String;
    nVal: integer;
  end;
var
  arrItem: Array[0..NoMax] of Byte;
  TempRcd: TTestRcd;

function InFunc(dB:double):double;
var
  dC:double;
begin
  //...
end;

begin
  //...
  //...

end;

■ 펑션 function

  ▶ 구조

function <프로시져 이름>(<인수>):<반환값의 데이터형>;
label;
    <라벨>
const
    <상수 선언>
type
    <형 선언>
var
    <변수 선언>

<프로시져 및 펑션 선언>

begin
    <프로시져 본문>
    <프로시져 이름>:=<반환값>;
end;


  ▶ 사용예

함수값은 Result에 결과를 대입한다.
함수명에 반환값을 대입해도 된다.

function Testfunc(nA:Integer; dB:double):integer;
label 10;
const
  NoMax = 256;
type
  TTestRcd = record
    nIdNo: Integer;
    steId: String;
    nVal: integer;
  end;
var
  arrItem: Array[0..NoMax] of Byte;
  TempRcd: TTestRcd;

function InFunc(dB:double):double;
var
  dC:double;
begin
  //...
end;

begin
  //...
  //...
  Result := nA * 2;
end;

+ Recent posts