프로젝트 구성
-
Upload
alan-frederick -
Category
Documents
-
view
50 -
download
2
description
Transcript of 프로젝트 구성
프로젝트• 델파이 프로그램의 기본 단위• 즉 , 델파이로 만드는 프로그램을
구성하는 모든 파일들의 집합• 구성파일 확인
– View 메뉴 -> Project Manager 메뉴– 프로젝트 파일 (DPR 확장자 )– 폼 관련 파일 (FRM 확장자 )– 소스 파일 (PAS 확장자 )
프로젝트 파일program Project1;
uses Forms, test in 'test.pas' {Form1};
{$R *.RES}
begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run;end.
프로젝트 파일uses Forms, test in 'test.pas' {Form1};
• Uses 절– 다른 소스 파일의 내용을 참고하고 싶을때 이용– In : Test.pas 소스 파일이 이 프로젝트에서
사용되는 파일이라는 것을 컴파일러에게 알려 줌– Test : 유닛의 식별자 (identifier) 이고 test.pas 는
유닛이 저장된 파일 이름– {Form1} : 유닛과 연결된 폼 이름을 위한 주석
프로젝트 파일begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run;end.
• 프로그램 실행시 실행 순서• Application.Initialize : 어플리케이션을
초기화하라는 명령• Application.CreateForm(TForm1, Form1) :
어플리케이션에서 사용할 폼 생성• Application.Run : 어플리케이션을 실제로
실행하는 명령
유닛 (Unit)
• 유니트는 델파이 프로그램의 기본이 되며 메인 프로그램과 매우 유사
• 새로운 프로젝트를 만들면 폼과 함께 생성• 유니트는 크게 세 부분 구성
– interface 부분 : 현재의 유닛 파일내에서 사용하고자 하는 변수와 다른 유닛 등을 지정하는 영역
– implementation 부분 : 유닛에서 사용되는 프로시져와 함수가 실행되는 부분을 지정
– finalization 부분 : 프로그램이 종료될 때 파일을 닫기 , 메모리 해제 등의 윈도우 자원들을 해제해 주는 영역
unit Unit1;
interface
usesWindows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
typeTForm1 = class(TForm)Label1: TLabel;Button1: TButton;Edit1: TEdit;procedure Button1Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;
varForm1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);begin
Edit1.Text := ' 안녕하세요 ';end;
end.
USES 문• uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
• 델파이가 만들어 놓은 유닛을 정의하여 이러한 유닛들이 포함되어 있는 변수나 상수 , 서브루틴을 프로그램에서 참조할 수 있게하는 역할 . => C 언어의 헤더파일과 같은 역할을 함
TYPE 문• type
TForm1 = class(TForm)Label1: TLabel;Button1: TButton;Edit1: TEdit;procedure Button1Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;
• 클래스를 선언할 수 있음 , 이벤트 핸들러 선언 부분• 폼에 객체를 배치하면 이 부분에 객체에 대한 사용 컴포넌트가 추가됨 => 대문자 T 로 시작하는 글자는 델파이가 미리 만들어 놓은 클래스를 의미하거나 유닛 객체를 의미
IMPLEMENTATION 문• implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);begin
Edit1.Text := ' 안녕하세요 ';end;
end.• 프로그램에서 필요한 프로시저 작성• {$R *.DFM} : 주석 => 컴파일러 지시자로 폼과 폼에 포함된
여러가지 컴포넌트의 속성을 읽어오라는 의미• interface 에 정의된 내용을 토대로 사용자가 프로시저 , 함수를
지정하거나 지정된 프로시저나 함수에서 사용할 변수나 상수 등 을 지정한다 . 여기서 지정하는 함수와 프로시저 혹은 변수나 상수 등은 모두 이들을 지정한 현재의 유니트에서만 사용할 수 있 다 . 즉 , 지역적으로만 사용할 수 있다 .
Unit < 유닛 이름 >; 소스코드가 저장될 파일 이름Interface
uses< 포함될 유닛 이름들 >;const< 상수이름 > := < 상수값 >;type
< 타입지시어 >:< 타입 >; 사용할 클래스 정의 , 폼에 추가한 컴포넌트 리스트정의
< 프로시저와 함수선언 >; 이벤트 핸들러의 선언들과 필요에 따라 만든 함수들 선언
private{ private declarations } < 변수이름 >:< 변수타입 >;
public{ public declarations }프로시저 ( 함수 ) 선언 ;
end; 타입의 끝 var < 객체이름 >:< 클래스 이름 >; 클래스 변수 정의
Implementation 앞에서 선언한 프로시저나 함수들을 자세히 구현
{$R*.DFM}// 구현코드부분 이 부분에 이벤트 핸들러 / 프로시저 / 함수
구현
Initialization 코드 실행시 맨 처음 실행되는 코드 코드 실행 중 초기값이 필요할때 설정
Finalization 메인 프로그램이 종료되고 실행 메모리나 시스템 자원 해제를 위한 처리
End.
파스칼의 역사• Nicklas 에 의해서 1960 년대 말에 개발
– Algol 언어를 모델• FORTRAN 이나 COBOL 보다 장점이 많음• 매우 복잡하고 배우기 어려운 단점
– 코드의 작성이 쉽고 , 배우기 쉽고 , 사용하기 쉬운 언어 설계
– 구조적 프로그래밍 지원하는 블록구조
• 1984년도 볼랜드의 터보파스칼• 객체지향 언어
언어의 구조Procedure 프로시저명 ;Begin…. 본문… .;
End;
예제 )Procedure TForm1.ButtonClick(Sender:TObject);Begin
End;
컴포넌트 처리
• Edit1.text => Form1.Edit1.text
• 소속 . 컴포넌트 . 속성– Form1.Edit1.text
• 소속 . 컴포넌트 . 함수– Form1.Button1.OnClick()
주석문
• {}– { 와 } 사이에 주석문 입력 =>{ 이건 주석 }
• (* *)– (* 와 *) 사이에 주석문 입력 =>(* 이건
주석 *)• //
– // 다음에 주석문 입력 => // 이줄은 주석
세미콜론 / 점 /begin…end;
• ;( 세미콜론 ) – 코드 한줄의 끝을 의미하는 기호
• .(점 )– 유닛 혹은 프로그램의 끝
• 블록– begin (블록의 시작 )– end (블록의 끝 )
• 모든 코드는 세미콜론으로 분리• Begin…end; 는 항상 한 쌍으로 사용• End; 앞에서의 세미 콜론은 생략 가능• 유닛의 마지막 end 뒤에는 .(점 ) 을 추가해서 유닛의 마지막임을 표시
변수란 ?
• 값을 저장하기 위한 공간
• 쓰이는 용도에 따라 각각의 형이 존재– 정수를 저장하기 위한 공간– 실수를 저장하기 위한 공간– 문자를 저장하기 위한 공간– 문자열을 저장하기 위한 공간
변수의 이름•각 변수를 구별하기 위한 방법• 이름 생성규칙
– 255 자를 넘을 수 없음– 영문자 알파벳 , 숫자 , 밑줄문자 “ _”로
구성– 대소문자 구별 안함– 이름의 첫번째 문자는 반드시 영문자
알파벳– 예약어들은 변수 이름이 될 수 없음
자료형• 변수가 가질 수 있는 값의 종류나 타입• 기본 자료형
– 숫자 관련 자료형 : Shortint, Integer, LongInt, Byte, Word, Real, Single, Double, Extended, Comp, Currency
– 문자형 : char– 문자열형 : string – 논리형 : Boolean
숫자관련 자료형• 정수형
– Shortint : 1Byte (-128 ~ 127)– Integer : 2Byte (-32767~32768)– LongInt : 4Byte (-2147483638 ~ 2..7)– Byte : 1Byte (0 ~ 255)– Word : 2Byte (0 ~ 65535)
숫자관련 자료형• 실수형
– Real : 6Byte (2.9*10E-39 ~1.7*10E38)– Single : 4Byte (1.5*10E-45 ~ 3.4*10E38)– Double : 8Byte (5.0*10E-45 ~ 1.7*10E308)– Extended : 10Byte (3.4*10E-4932 ~
1.1*10E4932)– Comp : 8Byte (-2*10E63+1 ~ 2*10E63-1)– Currency : 8Byte (-922337203685477.5808
~ 922337203685477.5807 ( 약 10 진수 15자리 )
문자형 (char)
• 문자형– AnsiChar : 1Byte
• ASCII 코드값 저장– WideChar : 2Byte
• 국제문자를 지원하는 유니 코드 문자 저장
• 문자값은 항상 어포스트로피 (‘’) 로 감싸야 함– ‘H’
• 선언예 ) a : char; a := ‘N’;
문자열형 (String)
• 문자열 : 연속된 문자들의 집합• 문자열 지정시 어포스트로피 이용해서
지정• 문자열 서로 연결할 때 + 연산자 사용
• 선언예 ) b : string; b := ‘문자열’ ;
논리형 (Boolean)
• 참과 거짓을 표시하기 위해서 True 혹은 False 값만을 가질 수 있는 자료형
• True 와 false 는 파스칼에서 미리 정의되어 있는 정의어
• 선언예 ) flag : boolean; flag := true;
배열 (array)
• 선언형식– Array [인덱스 ] of 요소의 타입 ;
•예 )– Var MyArray:array [1..10] of char;
0 1 2 3 4 5 6 7 8 9
MyArray
배열 (array)
• 사용법– 변수와 마찬가지로 초기화가 필요함– 각 요소 사용
•예 ) 배열의 2 번째 위치에 10 저장– MyArray[1] := 10;
0 1 2 3 4 5 6 7 8 9
MyArray
배열 (array)
• 다차원 배열– 선언형식
• Array [인덱스 1, 인덱스 2, …] of 요소의 타입 ;• 원하는 차원의 개수만큼 인덱스 지정
– 예 ) 2차원의 예• Var MyArray : array [0..2, 0..2] of integer
MyArray[1,0] := 11;
1,0 1,1
0,0 0,1
MyArray
Set 형• 한 타입의 여러 요소들이 모여 있는 집합• Integer, Boolean, Char, 열거형 등의
자료형만 set 형으로 만들 수 있음
• 역할 : 어떤 값이 특정 set 에 속해 있는지 여부를 확인할 때 사용
레코드 (record)
• 다른 종류의 자료형을 여러 개 포함할 수 있는 구조
• 연관있는 여러 종류의 데이터를 하나의 단위로 묶어서 처리할 경우 유용
• 선언형식– 변수명 : record 변수 1 : integer;
변수 2 : char; …
end;
레코드 (record)
var score:record
hak : integer;name : string;kuk : integer;eng : integer;mat : integer;
end;Begin score.hak := 2001; score.name := ‘ 홍길동’ ;
학번 이름
Score
국어
성적
영어 수학