390 likes | 735 Views
델파이의 개요와 구성요소. 컴포넌트팔레트. 주메뉴. 스피드바. 오브젝트 인스펙트. 컴포넌트 팔레트. 컴포넌트 팔레트는 컴포넌트 (Component) 들을 용도에 따라 모아둔 팔레트 정도로 생각하면 된다 . 컴포넌트의 성격과 쓰임새에 따라 다음과 같은 종류가 있다 .
E N D
컴포넌트팔레트 주메뉴 스피드바 오브젝트 인스펙트
컴포넌트 팔레트 • 컴포넌트 팔레트는 컴포넌트(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이 클릭되었을때의 메서드
델파이 프로그래밍 방법 • 문제 분석과 설계 • 화면(Form) 디자인화면에 출력할 사용자 인터페이스를 디자인한다. • 컴포넌트 배치 및 속성 설정이것에 배치할 각종 컴포넌트 종류와 기능을 사용자가 숙지해야 한다. • 코딩델파이는 코드 작성을 쉽게 하도록 마련한 여러 가지 위저드와 도우미가 있다. 이런 것들을 이용해서 코딩하면 보다 편리한 작업 환경에서 프로그램을 작성할 수 있다. • 컴파일 및 테스트프로그램을 컴파일하고 에러를 수정한다. • 실행프로그램을 실행한다.
프로그래밍 예제(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 –문자형 • 문자형(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(), CurrToStr(), FloatToStr(), StrPas()
형변환 예제(입력받은 두수의 합 출력) edit1 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. edit2 label1
오브젝트 파스칼 언어 1 –연산자 • 연산자 (p.101)
오브젝트 파스칼 언어 1 –연산자 • 산술 연산자 (p.102) • 나눗셈 연산자 • / 연산결과가 실수형으로 나옴 • div 연산결과가 항상 정수형으로 나옴 var I : integer; r : real; begin I := 10 div 3; //결과 3 r := 10/3; //결과 3.33333 end;