델파이의 개요와 구성요소
주메뉴
스피드바
컴포넌트팔레트
오브젝트인스펙트
컴포넌트 팔레트
컴포넌트 팔레트는 컴포넌트 (Component) 들을 용도에 따라 모아둔 팔레트 정도로 생각하면 된다 . 컴포넌트의 성격과 쓰임새에 따라 다음과 같은 종류가 있다 .
Standard Component, Additional,Win32, System, Data Access, Data Controls, ADO, InterBase Midas,………
오브젝트 인스펙터
컴포넌트의 속성을 처리하는 창 , 혹은 객체 속성 창
객체 속성 창은 델파이의 객체 (Object) 항목들을 변경 시키거나 , 객체가 반응을 하게 되는 이벤트 (Event) 를 조정 하는데 편리한 인터페이스를 제공
코드에디터 프로그램 개발을 하는 프로그래머가 직접 델파이 코드를
입력하는 창 폼위에 디자인을 하고나서 실제적인 동작 코드를 입력 /
수정하는 편집창
탐색창코딩창
프로젝트의 구성
프로젝트 파일 (Project File) : 확장자 (*.DPR) 주 프로그램파일
유닛 파일 (Unit File) : 확장자 (*.PAS) unit 은 개별적으로 컴파일 된다 . 컴파일 된 unit파일은 확장자가 DCU 를 가진다 .
폼파일 (*.DFM) : 폼에서 마우스 오른쪽 클릭을 하여 View as Text를 선택하면 내용을 편집할 수 있다 .
폼이 없는 소스 코드 파일
컴포넌트의 구성요소
객체 = 컴포넌트 속성 (property)
객체가 가지는 특성 , 값
이벤트 (event) 객체가 행동을 하기 위한 메시지
메소드 (method) 객체의 행동
속성
컴포넌트의 정적인 형태 지정 컴포넌트의 특징을 정의하는 여러
가지 값들 예 )
객체의 이름 색상 크기 글자폰트
적용예 label1.font.size=20;
이벤트
실행중에 사용자에 의해 발생되는 사건
예 마우스 클릭 ( 왼쪽 , 오른쪽 )
OnClick() 으로 표현 키보드 클릭 OnKeyPress() 시간이 1 초 경과함
OnTimer()
메소드
컴포넌트의 동적인 형태를 지정 특정 컴포넌트에 연관된 프로시저나 함수 예 )
실행중에 해당 컴포넌트를 작동 시키는 일 실행후 컴포넌트에 자료를 넣는 일
사용예 procedure TForm1.Button1Click(Sender: TObject); form1 객체의 Button1 이 클릭되었을때의 메서드
델파이 프로그래밍 방법
(1) 문제 분석과 설계(2) 화면 (Form) 디자인
화면에 출력할 사용자 인터페이스를 디자인한다 .(3) 컴포넌트 배치 및 속성 설정
이것에 배치할 각종 컴포넌트 종류와 기능을 사용자가 숙지해야 한다 .
(4) 코딩델파이는 코드 작성을 쉽게 하도록 마련한 여러 가지 위저드와 도우미가 있다 . 이런 것들을 이용해서 코딩하면 보다 편리한 작업 환경에서 프로그램을 작성할 수 있다 .
(5) 컴파일 및 테스트프로그램을 컴파일하고 에러를 수정한다 .
(6) 실행프로그램을 실행한다 .
프로그래밍 예제 (P.52)
다음을 출력하는 프로그램 작성하시오 .
컴파일 , 테스트 및 실행
메뉴의 Run->Run 실행 빠른 도구모음의 클릭
델파이 기본 문법
오브젝트 파스칼 언어 1
주석문 { … } 또는 (* … *)
괄호 안에 있는 내용들을 주석으로 간주 //
한 줄 주석 할당 연산자 (:=)
a := 100; str := ‘hello’;
오브젝트 파스칼 언어 1
문장 작성법모든 코드는 세미콜론으로 분리 (;)begin .. end; 사이에 코드 작성unit 의 마지막 end 뒤에는 .(점 ) 으로 unit
의 끝을 알림 . end. procedure TForm1.Button1Click(Sender: TObject);
begin showmessage('델파이 ');end;
end.
오브젝트 파스칼 언어 1
변수변수선언 형식
var 변수명 1, 변수명 2, …: 변수의 자료형
변수 명명 규칙 255자 이하영어 알파벳이나 숫자 , 밑줄만 사용가능 (대소구별
없음 )첫자는 반드시 문자이어야 함 . 예약어 사용 불가능 . (ex. int, for 등등 )
var x, y : integer;
MyBook (o) MyBook@ (X)
오브젝트 파스칼 언어 1 – 자료형
자료형의 종류 ▶기본적인 자료형 (Primary Data types) Boolean(논리형 ), integer( 정수형 ), single(단정도부동소수점수 : 실수형 ) string( 문자열형 ), pchar( 문자열포인터형 ) ▶사용자 정의 자료형 (User –Defined Types) 배열 (Array) 형 , 집합형 (Set Type) 레코드 (Recoder) 형 , 부범위 (Subranges) 형 열거형 (Enumeration), 포인터 (Point) 형
오브젝트 파스칼 언어 1 – 정수 자료형▶Generic integer types 자료형 범위 크기Integer( 정수 ) -2147483648..2147483647 부호있는 32-bit
▶Fundamental integer types 자료형 범위 크기 Shortint -128..127 signed 8-bitSmallint -32768..32767 signed 16-bitLongint -2147483648..2147483647 signed 32-bitByte 0..255 unsigned 8-bitWord 0..65535 unsigned 16-bit
Longword 0..4294967295 unsigned 32-bit
오브젝트 파스칼 언어 1 – 실수형
▶실수형 자료형 범위 크기Real 2.9*10E-39..1.7*10E38 signed 48-bitSingle 1.5*10E-45..3.4*10E38 signed 32-bitDouble 5.0*10E-324..1.7*10E308 signed 64-bitExtended 3.4*10E-4932..1.1*10E4932 signed 80-bitComp -2*10E63+1..2*10E63-1 signed 64-bitCurrency -92337203685477.5808~ signed 64-bit 92337203685477.5807
오브젝트 파스칼 언어 1 – 문자형
문자형 (AnsiChar 형 , WideChar 형 )AnsiChar 형
1 바이트 아스키문자 하나 저장 보통 char 형으로 지정시 AnsiChar 형으로 지정됨
WideChar 형 2 바이트 유니코드 문자 저장
var c1, c2 : char;begin c1 := ‘a’; c2 := ‘b’;end
오브젝트 파스칼 언어 1 – 문자열형
문자열형 (string)연속 문자들의 집합 단일 따옴표로 지정
문자열 연결시에 “ +” 기호 사용
var str : string;begin str := ‘Hello’; end
var str1, str2 : string;begin str1 :=‘Hello’; str2 := str1 + ‘반가워요’ ; end
오브젝트 파스칼 언어 1–문자열형
포인터 문자열형 (pchar)Null 종료 문자열 사용위한 것으로 문자열에 대한
포인터를 말함 .
var P: PChar; Begin P:= ‘Korea25'; //P 는 ‘ Korea25' 란 Null 종료 문자열의 메모리 영역을 가리킵니다 .// showmessage(p); end;
오브젝트 파스칼 언어 1 – 문자열형
Const TempString: Array[0..8] of Char = ‘korea25'#0;
//#0 은 Null 을 의미합니다 .// var P: PChar; Begin P:= @TempString; //TempString의 주소를 P 에 할당 // ShowMessage( StrPas( P ) );
//‘korea25' 란 단어를 표시합니다 . // StrPas() 함수는 PChar 형의 데이터를 String형으로 변환
오브젝트 파스칼 언어 1 – 정적배열
배열 선언형식array [< 인덱스 >] of < 요소타입 >
인덱스 초기값은 임의 지정 가능
var Myarray : array[0..5] of char; // 인덱스가 0 에서 5 까지인 1차원 배열begin Myarray[0]:=‘A’; … end
var Myarray : array[2..5] of char; // 인덱스가 2 에서 5 까지인 1차원 배열begin Myarray[2]:=‘A’; … end
오브젝트 파스칼 언어 1 – 정적배열
다배열 선언형식array [<인덱스 1, 인덱스 2, ..>] of <요소타입 >
• Myarray : array[0..5, 0..2] of char; Myarray 배열은 6행 3열의 2차원배열이다 .• 사용예 Myarray [1,2] := ‘a’; 배열 인덱스의 하한값과 상한값을 알아내는 함수
LOW( 배열명 ) : 배열 인덱스의 하한값을 반환 HIGH( 배열명 ) : 배열 인덱스의 상한값을 반환
사용예 for i:=Low(Myarray) to High(Myarray) do
오브젝트 파스칼 언어 1 – 정적배열예제
var Myarray : array[0..5] of integer; // 배열선언 I : integer; Begin for i:=0 to High(Myarray) do // 배열인덱스크기만큼 for 문 수행 begin Myarray[i]:=i+10; // 배열 각 방에 i + 10 의 값을 넣음
memo1.lines.add(inttostr(Myarray[i])); // 메모컨트롤에 배열방에 할당된 값을 추가함 .
end;end;
오브젝트 파스칼 언어 1 – 동적배열
배열 선언형식array of <요소타입 > //범위지정을 하지 않음
setLength() 함수로 런타임시에 배열에 메모리를 할당하게 된다 .
동적할당 해제 배열명 := nil; 또는 Finalize( 배열명 );
var MyDynamicArray : array of char; begin setLength(MyDynamicArray,5); //0부터 4 까지의 총 5개의 인덱스를 가지는 배열이 된다 // 동적배열의 인덱스는 항상 0부터 시작한다 .end
오브젝트 파스칼 언어 1 – 변수범위
변수의 적용범위* 지역변수 (Grobal Variables) : 하나의 이벤트 핸들러 ( 프로시저 ) 또는 함수안에서
선언되는 변수 (핸들러의 시작과 begin 사이에 선언 )
* 전역변수 (Global Variables) : 두 개 이상의 이벤트핸들러에서 공통적으로 사용하는 변수
: interface 부분 또는 implementation 바로 전의 var 섹션에서 선언
오브젝트 파스칼 언어 1 – 변수범위
procedure TForm1.Button1Click(Sender: TObject); var a, b, c : boolean; //TForm1.Button1Click 프로시저 안에서 선언이므로 y, z :integer; // 지역변수이다 begin y:=strtoint(edit2.Text);
var Form1: TForm1; gVar : integer; //implementation 위에서 선언되었으므로 전역 선언이다
implementation
{$R *.dfm}
** 지역변수
** 전역변수
오브젝트 파스칼 언어 1 – 상수선언
상수 선언 형식 const [상수명 ] = [값 ]; 상수명은 대문자 표기 권장 선언 위치는 사용범위에 따라 변수의 범위와
동일함 . 예제
const PI = 3.14159; // PI 상수 선언
오브젝트 파스칼 언어 1 – 형변환
형변환 (p.100)하나의 자료형을 다른 자료형으로 변환하는 것형 변환을 위해서 형 변환 함수들을 사용한다 . IntToStr(), StrToInt(), StrToFloat(), StrToCurr(), Curr
ToStr(), FloatToStr(), StrPas()
형변환 예제 ( 입력받은 두수의 합 출력 )
procedure TForm1.Button1Click(Sender: TObject);var n1, n2, tot : integer;begin n1 :=strtoint(edit1.Text ); n2 :=strtoint(edit2.Text ); tot := n1 + n2; label1.Caption := inttostr(tot); label1.Font.Size :=15; label1.Font.Style := [fsitalic];end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);begin if key = #13 then edit2.SetFocus;end;end.
edit1
edit2
label1
오브젝트 파스칼 언어 1 – 연산자 연산자 (p.101)
연산자 PASCAL C
할당 := =
비교 = ,<>,>,<<=, >=
==,!=,>,<<=, >=
논리 And, or, not, xor &&, ||, !
산술 +,-,*,/(F)Div(I),mod
+,-,*,//,%
오브젝트 파스칼 언어 1 – 연산자 산술 연산자 (p.102)
나눗셈 연산자 / 연산결과가 실수형으로 나옴 div 연산결과가 항상 정수형으로 나옴
var I : integer; r : real;begin I := 10 div 3; //결과 3 r := 10/3; //결과 3.33333end;
Top Related