본문 바로가기
Delphi/Delphi란?

Delphi란...{2}

by MonoSoft 2021. 4. 23.
728x90
반응형

Delphi란...{2}

 

 

@ 본 강좌에 사용하는 용어 중에 특별히 구별하여 사용한 용어가

있습니다. 아래에 그 의미를 적겠습니다. 이해하는데 혼동하는 일이

없기를 바랍니다.

프로그램: 델파이로 작성한 응용프로그램.

개발자: 델파이를 사용하여 프로그램을 개발하는 사람.

사용자: 델파이로 만든 프로그램을 사용하는 사람.

 

< 델파이의 숨은 귀재들 >

다음에 설명할 것들은 델파이를 실행시키면 화면에 나타나지는 않지만

델파이의 메뉴에서 선택하여 실행시킬 수 있는 것들로 델파이에서 매우

중요한 역할을 담당하는 것들이다.

* 프로젝트 관리자(Project Manager)

프로젝트 관리자는 프로그램을 구성하는 파일들을 보여주고, 새

폼이나 유닛 등을 추가, 삭제 또는 수정할 수 있는 도구이다. 유닛과

프로젝트 관리자에 대하여는 나중에 보다 자세하게 다루도록 하겠다.

프로젝트 관리자는 메뉴의 View/Project Manager를 선택하면 실행된

다.

* 메뉴 작성기(Menu Designer)

델파이의 메뉴 작성기를 사용하면 폼에 아주 쉽게 메뉴를 추가할 수

있다. 메뉴를 작성하려면 컴포넌트 팔레트의 Standard 페이지에서

MainMenu 또는 PopupMenu 컴포넌트를 선택하여 폼에 위치시킨후 폼에

있는 MainMenu 또는 PopupMenu 컴포넌트를 더블 클릭하면 메뉴 작성기

가 실행된다.

일단 메뉴 작성기가 나타나면 개발자는 새로운 매뉴를 만들 수 있고,

또는 이미 만들어진 메뉴를 추가할 수도 있다.

메뉴 작성기에 대한 자세한 사용법은 차후에 다루도록 하겠다.

* 통합 디버거(Integrated debugger)

델파이는 델파이를 끝내지 않고 소스 코드를 디버그할 수 있는 막강한

기능의 통합 디버거를 제공한다. 디버거에는 많은 고급 기능들이 포함

되어 있는데, 구문 인식, 구문 평가, 워치(watches), 조건적

breakpoints, call stack을 볼 수 있는 기능 등이 있다.

디버거에 대한 자세한 사용법은 차후에 다루도록 한다.

* 오브젝트 브라우저(ObjectBrowser)

델파이의 오브젝트 브라우저는 프로그램에서 사용되는 오브젝트의

계층, 유닛, 전역 Symbol 등을 알기 쉽게 보여준다. 이 오브젝트 브라

우저를 사용하기 위해서는 프로그램을 컴파일할 때 Symbol Information

을 포함하여야 한다. 이 옵션은 기본적으로 설정되어 있다. 또한 이

기능을 실행시키기 전에 프로그램을 컴파일하여야 한다.

* 이미지 편집기(Image editor)

델파이에서 제공하는 이미지 편집기는 개발자가 개발하는 프로그램에서

사용하는 비트맵 파일(그림 파일)이나, 아이콘, 커서 모양 등을 새로

만들거나 수정하는 도구이다. 델파이는 기본적으로 이러한 비트맵, 아

이콘, 커서 모양을 많이 제공하므로 새로 만들지 않고 즉시 사용할 수

도 있으며, 제공한 것을 수정하여 사용할 수도 있고, 개발자가 개인적

으로 가지고 있는 라이브러리 등을 사용할 수도 있다.

이미지 편집기를 실행하기 위해서는 메뉴의 Tools/Image Editor를 선택

하면 된다.

< 델파이에서의 개발 단계 >

이제는 델파이로 프로그램을 개발하는 데 있어서 알아 두어야 할

기본적인 단계를 설명하도록 하겠다. 이 일은 델파이에서 제공하는 여러

양식들을 사용하여 매우 쉽게 할 수 있다.

델파이로 간단한 두 개의 프로그램을 작성하면서 과정을 설명하고자

한다. 첫번째 프로그램은 버튼을 누르면 폼의 색상을 변경시키는 간단한

프로그램이며, 두번째 것은 리스트 박스에 텍스트를 추가하고 삭제하는

프로그램이 될 것이다.

두개의 예제를 통하여 델파이로 프로그램을 작성하는 일반적인 단계인

다음의 단계들에 대하여 설명하고자 한다.

- 폼 디자인하기

- 이벤트 다루기

- 새 프로젝트 시작하기

< 폼 디자인하기 >

폼을 디자인하는 것은 아주 간단한 일이다. 이미 윈도우를 사용하고

있고 윈도우의 GUI(graphical user interface)에 익숙해져 있어서

오브젝트를 선택하고 옮기고 크기를 조정할 수 있다면, 폼을 디자인

하는 것을 모두 알고 있다고 생각해도 틀리지 않다. 단지 델파이에서

는 다루는 오브젝트가 컴포넌트이며, 윈도우가 델파이 폼인 것만 다를

뿐이다.

* 새로운 폼 작성

새로운 폼을 작성하는 방법은 여러가지가 있다. 기본적으로 설정되어

있는 환경에서 델파이를 처음 실행시키면 새로운, 그리고 비어있는 폼

이 나타날 것이다. 새 폼을 작성하는 다른 방법은 혼란을 피하기 위하

여 다음에 다루도록 하겠다. 여기에서는 델파이의 기본 환경에서 작업

하는 것으로 가정하겠다.

=> 델파이를 시작하라.

* 폼에 컴포넌트를 추가하기

=> 컴포넌트 팔레트의 Standard 페이지에서 버튼(Button) 컴포넌트를

클릭하여 선택하고, 폼의 중앙을 클릭하여 버튼을 폼의 중앙에 위치

시켜라. (컴포넌트 팔레트의 버튼 컴포넌트를 더블 클릭해도 같은

결과가 있게 된다.)

위와 같이 하면 폼의 중앙에 버튼이 하나 나타날 것이다.

* 컴포넌트 속성 설정

델파이에서 어떻게 컴포넌트가 화면에 나타날지, 그리고 그 컴포넌트가

실행되는 프로그램에서 어떻게 작동할지를 설정하는, 속성 설정하는

일은 매우 쉬운 일이다. 개발자는 프로그램 디자인 시에 오브젝트

인스펙터를 통하여 속성을 설정할 수 있고, 소스 코드 에디터에서

입력하는 소스 코드를 통하여 프로그램 실행시에 그 속성 값을 변경할

수 있다.

@ 프로그램 디자인 시에 속성을 변경하는 방법

1. 폼에서 속성을 변경시키고자하는 컴포넌트를 선택하라.

2. 오브젝트 인스펙터의 속성 페이지에서 변경시키고자하는 속성을

선택하라.

3. 새 값을 입력하여 속성을 변경하라.

=> Form1의 캡션(Caption) 속성을 '데모'라고 변경시켜라. 그리고

Button1의 캡션 속성을 '칼라 변경'이라고 변경시켜라. 이제 폼의

제목 막대에 '데모'라고 씌어 있을 것이고, 버튼에는 '칼라 변경'

이라고 씌어 있을 것이다. 이와 같이 캡션 속성은 해당 컴포넌트에

표시되는 글자를 지정하는 것이다.

* Name 속성

Caption 속성은 단지 화면에 나타나는 것에만 영향을 미치지만 Name

속성은 컴포넌트를 구별하는 식별자로서 중요한 역할을 한다.

그러므로 소스 코드 안에서는 Name 속성을 이용하여 컴포넌트를 구별

하고 다루게 된다. 그래서 Name 속성에 해당 컴포넌트의 기능에 부합한

이름을 지정하는 습관을 가지는 것이 좋다.

즉 기본적으로 나와 있는 Form1이나 Button1등의 Name 속성을 그대로

사용하기 보다는 해당 컴포넌트의 기능에 적합한 'NameCard',

'ShowCard' 등과 같이 변경하여 사용하는 것이 바람직하다.

@ 캡션 속성을 바꾸기 전에 이름(Name)속성을 바꾸면, 이름 속성과

같은 값이 캡션 속성에도 동일하게 지정된다. 즉 이름 속성을 'Card'

라고 바꾸면, 캡션 속성도 'Card'라고 함께 바뀐다. 그러나 캡션

속성을 먼저 바꾼 후에 이름 속성을 바꾸면 캡션 속성에 변화가 일

어나지 않는다. 반대로 캡션 속성을 바꾸면 이름 속성에는 아무런

변화도 일어나지 않는다.

그리고 캡션 속성에는 스페이스 등을 포함한 대부분의 글자를 사용할

수 있지만, 이름 속성의 값은 오브젝트 파스칼의 이름짓기 규정에

따라야 한다. 이름 지ㅎ기 규정은 나중에 자세하게 다루기로 하겠다.

* 프로그램 실행하기

개발자가 폼에 컴포넌트를 추가하자마자 델파이는 자동적으로 그에

상응하는 코드를 생성시킨다. 그와 같이 Run 명령을 선택하자마자

델파이는 단독 실행파일을 생성시킨다. 즉 어떠한 런타임 DLL파일도

필요가 없는 실행 파일(.EXE 파일)을 생성시킨다.

=> Run 메뉴에서 Run을 선택하라. 그러면 그대가 디자인한 프로그램이

예쁜 모습으로 실행될 것이다. 화면에 '데모'라는 타이틀바를 가진

윈도우가 열려 있을 것이며, 그 중앙에 그대가 추가한 '칼라 변경'이라

는 글자가 씌어진 버튼이 하나 있을 것이다. 이제 사용자는 그 윈도우

의 크기를 조정할 수 있고 최소화, 최대화 버틀을 이용할 수도 있으며

'칼라 변경'이라고 씌여있는 버튼을 마우스로 클릴할 수도 있다.

한번 '칼라 변경' 버튼을 클릭하여 보라. 이상하다. 아무런 반응도

없지 않은가? 그렇다. 아무런 변화도 없을 것이다. 왜냐하면, '칼라

변경' 버튼을 클릭하였을 때 할 일을 아직 지정하여 주지 않았기

때문이다.

사용자가 버튼을 클릭하거나 마우스를 끌고 가는 등의 일을 했을 때,

프로그램에서 어떻게 반응해야 할 것인가를 지정하는 코드를 작성하는

것은 필요한 일이다. 프로그래밍 용어로 그와 같은 사용자의 행동을

이벤트(events)라고 부른다. 즉 마우스를 클릭하는 것은 하나의

이벤트이다.

=> 컨트롤 메뉴 박스를 더블 클릭하여 실행된 프로그램을 종료시켜라.

< 이벤트 다루기 >

이벤트란 프로그램이 인식할 수 있는 사용자의 행동이나 시스템적인 발생

을 가리킨다. 즉 마우스 클릭 등과 같은 것이다. 그리고 컴포넌트가

이벤트에 반응하여 어떤 일을 할 것인가를 명시하여 놓은 코드를

이벤트 핸들러(event handler)라고 한다. 예를 들어 버튼 컴포넌트를

클릭하면 폼의 칼라를 바꾸는 코드를 작성하였다면 그 폼의 칼라를

바꾸는 그 소스 코드가 이벤트 핸들러인 것이다.

그리고 모든 컴포넌트는 여러 종류의 이벤트를 가지고 있어서 그것에

반응할 수 있다. 예를 들면 버튼 컴포넌트는 마우스 클릭 이벤트를

가지고 있어서 사용자가 마우스를 클릭하였을 때 반응할 수 있다는

말이다.

개발자는 오브젝트 인스펙터를 이용하여 폼이나 폼에 있는 컴포넌트의

이벤트 핸들러를 생성하고 작성할 수 있다. 예를 들어 다음의 코드는

Button1의 OnClick 이벤트를 위하여 델파이가 기본적으로 만들어 주는

코드이다. (OnClick 이벤트란 버튼을 클릭하였을 때 발생하는 이벤트

를 가리킨다.)

procedure TForm1.Button1Click(Sender: TObject);

begin

end;

위의 이벤트 핸들러의 첫째 줄은 procedure의 이름이 나와있고

(TForm1.Button1Click), begin과 end 블럭 사이에 OnClick 이벤트가

발생했을 때 실행될 코드를 쳐 넣으면 된다.

=> 이벤트 핸들러를 작성하기 위하여 다음과 같이 하다.

1. 폼에 있는 버튼 컴포넌트를 클릭하여 선택하라. 그리고

오브젝트 인스펙터의 밑부분에 있는 이벤트 페이지 탭을 클릭하여

이벤트 페이지를 열어라.

2. 이벤트 페이지에서 Onclick 이벤트의 오른쪽에 있는 값을 입력

하는 부분(Value column)을 더블 클릭하라. 그렇게하면 코드 에디터

가 열리면서 이벤트 핸들러가 생성되며 커서가 begin 과 end 블럭

사이에 위치하여 입력을 기다릴 것이다.

3. begin 과 end 사이에 다음과 같이 쳐 넣어라.

Form1.Color := clAqua;

이것은 사용자가 버튼을 클릭하면 폼 색깔을 Aqua색(연한 녹청색)

으로 변경시키라는 의미이다.

다음과 같은 모양으로 코드 에디터에 기록하면 된다.

procedure TForm1.Button1Click(Sender: TObject);

begin

Form1.Color := clAqua;

end;

4. 다시 Run메뉴의 Run을 선택하여 실행시켜보라. 그리고 '칼라 변경'

버튼을 클릭하여 보라. 그러면 폼의 색이 연한 녹청색으로 변하게 될

것이다. 그대는 이렇게 하여 아주 쉽게 윈도우용 프로그램을 하나

작성한 것이다.

5. 프로그램을 종료하라.

다른 하나의 프로그램은 다음 강좌에서 만들어 보기로 한다.

< 계속 >

// 두루물의 언어툴란에서 가져왔습니다.

728x90
반응형

'Delphi > Delphi란?' 카테고리의 다른 글

Delphi OOP와 C++과의 차이 [1]  (0) 2021.04.27
Delphi란...{6}  (0) 2021.04.26
Delphi란...{4}  (0) 2021.04.26
Delphi란...{3}  (0) 2021.04.23
Delphi란....  (0) 2021.04.22

댓글