DELPHI/기본 교육 자료

[델파이] 기본 개념 -1 [프로젝트, 함수, 프로시저]

Kim.Sung 2017. 10. 10. 10:25
728x90

공부하면서 나중에 생각 안나면 보려고 혼자 끄적이는 기록 입니다.

델파이 기본

1.     프로젝트파일

-       프로젝트 확장자 파일은(.Dpr(ver.10~) .Dproj(ver.2009~)[MS빌드옵션정보포함 되어 있는 확장 자 이며, 그로 인하여 파일 용량이 크다]) 프로그램의 메인 으로 다른 유닛이나 폼들을 포함하는 총 연결 파일이다.

-       메인 이지만 많은 코딩은 하지 않는다

2.     프로젝트관리

-       New Form을 하면 폼 파일(*.dfm)과 유니트(*.pas)파일이 추가 된다.

-       폼파일은 화면에 대한 정보(폰트, 크기, 색상 등)를 가지고 있는 이진 파일로 델파이 5.0부터 텍스트 파일로 저장된다.

-       유니트 파일은 상수,변수,타입,프로시저나 함수 등을 코딩하는 소스 이다.

-       주로 코딩하는 곳이 유니트 파일(*.pas)이며, 화면 디자인은 폼 파일(*.dfm)에 한다.

-       프로젝트 생성시 반드시 저장을 하며, 해당 프로젝트에 맞게 이름을 정해준다.

-       File - Save Project As를 선택하여 프로젝트 이름을 저장 한다.

-       New Unit를 선택하면 프로젝트에 새로운 유니트가 추가 된다.

-       글로벌 베리어블(Global Variable,전역변수) 또는 여러 곳에서 호출 할 수 있는 Funtion,Procedure 사용 예정 시 Unit만 추가 하여 사용 할 수도 있다.

-       각각의 유니트들은 컴파일하여 DCU(Delphi Compiled Unit,)를 만듭니다.

3.       프로젝트 매니저

-       프로젝트관리와 각 프로젝트 옵션 추가 가능하며, 프로젝트 소스 구성들을 보여주고 추가/삭제가 가능 하다.

 

4.      Unit 4개의 구조로 구분 된다.(순서대로).

-        Interface(default)

n  Type, const, var, proccdure, function 선언 하는 하는 곳

n  다른 유니트에서 이곳에 정의된 var, proccdure, function을 사용 할 수 있음

(, uses 절에 해당 유니트를 선언해야 한다.)

n  Type 선언 하는 방법

Ø  Ex) interface

    Type

      Country – array [0..2] of string; // ‘country’ 라는 변수에 배열을 선언

     

 // 여러 개의 속성들을 묶어 관리하는 것을 record 또는 구조체 라고 한다.

Person – record  //’person’ 이라는 구조체 생성

         Name : string;

       Age   : byte;

         Address: string;

                        End;

                                P_person = ^Person;  //’person’이라는 구조체에 포인트type 라고 선언

                     Var

                                P: p_person;

                                Ps: p_pchar;  //문자열 포인터

                                // Pansichar, pwidechar, punicodechar 로 구분

n  Var (변수 선언) : ex) s : String; (일반적으로 unicodeString  사용 현재)

Ø  ver 1.0 : shortstring

Ø  ver 2.0 : Ansistring

Ø  ver 2009 ~ 현재 : unicoedstring

n  Var (변수 선언) : ex) I ; integer(주로 사용 하는 데이터형)

Ø  크기가 정해져 있는 데이터 Type (Fundamental Type 38Page 참고)

Ø  16 bit Integer : integer / 32 bit Integer : longinteger

Ø  Natibeint : 32 bit 또는 64 bit 사용시 시스템에서 자동적으로 변경 함

Ø  Default 값 사용 문법 ex) I : integer = 100;  // i변수에default값으로100 사용

n  B :Boolean

Ø  기본적인 true / false 사용시 사용하는 변수

n  Array(배열) : 연속해서 여럿 데이터를 관리 할 때 사용하는 type

Ø  Ex) Country : array[0..2] of string; // 0~2 까지 문자형 배열 변수 선언  

Ø  Ex) county : array of string;  //dynamic Array 동적 배열로 선언

Ø  Ex) county : array of array string;  //dynamic Array 동차 2차원 배열로 선언

n  Procedure function 의 대하여 설명

Ø  Procedure는 리턴(반환) 값이 없음

Ø  Function은 리턴 (반환) 갑이 있음

Ø  같은 이름의 함수 프로시저 금지 ( overload 사용 시 가능)

Ø  Ex) Procedure Test;

//위에서 선언된 루틴들을 구현하는 곳

//type, const, var, 선언 : 다른 유니트에서는 사용 할 수 없고 해당 유니트의   구현 부분에서만 사용 가능

Ø  Ex) function   add(x, y : integer) : integer;

// Interface 에 선언하는 방법

Ø  Ex) function   add(var x, y : integer) : integer;  //  call by Reference

// Interface 에 선언하는 방법

Ø  Ex) function   add(out x, y : integer) : integer;  //  out

// Interface 에 선언하는 방법

Ø  Ex) function   add(const x,y: integer) : integer;  //  상수

// Interface 에 선언하는 방법

Ø  Ex) function   Divide(x,y: integer) : integer ; overload; //정수형 디비드

// 같은 명을 사용 시 overload 사용

Ø  Ex) function   Divide(x,y: real) : real; overload; // 실수형 디비드

// 같은 명을 사용 시 overload 사용

 

 

-       Implementation(default)

n  Uses  //주로 interface 에 선언

n  Procedure 선언 방법

Ø  Procedure Text;

Var

   K : integer;  //초기 처리 불가

Begin

    ShowMessage(‘test called’);

End;

n  Function 선언 방벙

Ø  Function add(x, y : integer) : integer; // interface 에있는 function 명과 변수가 동일 해야한다.

Begin

//  Add  := X + Y;

   Result  := x + y;

                      // exit(x+y);   //2010 부터 exit(리턴값) 가능

end;

Ø  Function add(var x, y : integer) : integer; // call by Reference

Begin

//  Add  := X + Y;

   Result  := x + y;

                          X := 20;

end;

 

 

Ø  Function Divide(var x, y : integer) : integer;

// overload 사용하여 같은 명 함수 사용 가능

Begin

Result  := x div y; 

end;

Ø  Function Divide(var x, y : real) : real; // call by Reference

 // overload 사용하여 같은 명 함수 사용 가능

Begin

Result  := x / y; 

end;

 

 

 

-       Initialization

n  Uses 절을 만나면 실행 : 초기 처리 : 변수의 초기 값 지정, 메모리 할당

n  사용 법 (static array 방식)

Ø  Ex) initialization

Begin

       Countries[0] := ‘한국’;

       Countries[1] := ‘미국’;

       Countries[2] := ‘일본’;

 // static array 방식

// 메모리 절약 안되는 방식

 // 배열 변수가 [0..2]로 잡혀있는 경우 2가 넘어갈 경우 에러

                       End;

n  사용 법 (dynamic array 방식)

Ø  Ex) initialization

Begin

       Setlength(countries,2);

Countries[0] := ‘한국’;

// Dynamic array 방식

// setlength : 배열을 사용 전에 실시간으로 “countries”에 방(메모리) 2개 생성

                       End;

n  사용 법 (dynamic array 2차원 배열 방식)

Ø  Ex) initialization

Begin

       Setlength(countries,2,2);

Countries[0,0] := ‘한국’;

// Dynamic array 방식

// setlength : 배열을 사용 전에 실시간으로 “countries”에 방(메모리) 2개 생성

                       End;

#델파이 #기초 #혼자끄적끄적

728x90