기술탐구

라자루스로 만들어 보는 비밀번호 관리 프로그램 [뭐였더라] (1) 폼 디자인

appleii 2021. 8. 11. 11:00

파스칼 언어로 작성하는 GUI 개발 도구인 라자루스로 간단한 비밀번호 관리 프로그램을 만들어 보자.


비밀번호를 종이에 적어서 관리할 수도 있고 엑셀로 관리할 수도 있지만 종이는 분실되기 쉽고 엑셀은 오피스가 설치된 PC 에서만 사용이 가능하다. 간단한 입력화면을 가진 전용 프로그램을 만드는 것이 제일 좋은 해결 방법이다. GUI 개발도구는 여러가지가 있지만 오브젝트 파스칼 언어로 작성하는 라자루스가 제일 편하다. 데이터베이스는 SQLite3 를 사용한다. whatwas.zip 에는 실행파일과 SQLite3 가 있다. whatwas_source 에는 소스코드가 있다. whatwas.exe 를 실행시키면 경고창이 뜨면서 다운로드 받은 파일임을 알린다. [추가정보]를 누른 후 [실행] 을 누른다. whatwas_source.zip 을 다운로드 받은 후에 압축을 풀어서 whatwas.lpi 를 더블 클릭하면 프로젝트가 열린다.

whatwas.zip
2.03MB

 

whatwas_source.zip
0.87MB

1. 라자루스 설치

라자루스 IDE 는 다음 사이트에서 다운로드 받아 설치한다. [DownLoad Now] 버튼을 누르면 다운로드 된다.
https://www.lazarus-ide.org/

IDE 의 폰트 문제는 다음을 참고하여 수정하고 라자루스 IDE 를 다시 빌드시키면 된다.
https://appleii.tistory.com/172

SDI 방식이므로 툴들을 화면에 적당히 배치시켜야 한다. 배치가 끝났으면 Desktop 을 저장한다.


메인 메뉴에서 Project -> New Project -> Application 순서대로 선택한다.


새로운 폼이 화면에 뜬다. 이제 폼위에 컨트롤을 배치해 본다. 컴포넌트 팔렛트에서 Standard 탭을 선택한 후에 Button을 선택한 후 Form위에 올려 놓는다.



버튼을 더블 클릭하면 클릭 이벤트 핸들러가 만들어 진다. 원하는 동작을 채워 넣으면 된다. Close; 를 입력하고

procedure TForm1.Button1Click(Sender: TObject);
begin
  Close;
end;     


F9키를 눌러서 실행한다. 이 버튼을 누르면 프로그램이 종료된다. 이런식으로 이벤트 핸들러를 채워 나가면서 개발한다.

2. 폼 디자인

기본적인 디자인은 입력폼과 DB 내용을 표시하는 DBGrid , 그리고 제어하는 버튼들로 구성된다.


비밀번호를 관리하기 위해서는 데이터베이스에 한글이름, 영문이름, 웹사이트, 비밀번호가 저장되어야 한다. 저장된 데이터를 불러와서 화면에 출력하면 되는 것이다. 다음 컨트롤이 필요하다.

(1) 데이터를 입력받기 위한 Edit, Memo
(2) 입력해야 하는 데이터를 설명하는 Label
(3) 관련되는 컨트롤을 모아서 보여주는 GroupBox
(4) 원하는 동작을 하기 위한 Button
(5) 데이터베이스에서 데이터를 읽어 화면에 표시하는 DBGrid

위의 컨트롤들은 폼 화면에 표시되는 컴포넌트(Visual Component) 이다. 폼에 직접적으로 나타나지는 않지만 폼 위에 올릴 수 있는 컴포넌트는 보이지 않는 컴포넌트(Non-Visaul Component)이다. 데이터베이스를 읽고 쓰기 위해서는 관련 컴포넌트를 폼위에 올려 놓아야 한다.

실행시에는 보이지 않지만, 디자인시에 값을 바꿀 수 있다. 배치가 끝났으면 Unit1.pas 대신에 frmMain.pas 로 저장한다. 프로젝트 이름은 whatwas.lpi 로 저장한다. whatwas.lpr 도 같이 생성된다. lpr 은 실질적인 메인 진입 코드이다. lpi 에는 프로젝트 관리에 필요한 파일의 위치, 리소스 등이 저장된다. 폼이 새로 만들어지면 폼의 데이터를 저장하는 파일이 생성된다. 확장자는 lfm 이다. frmMain.pas 는 폼의 논리적인 작동방법이 나타나 있고, frmMain.lfm 에는 폼에 올려져 있는 컨트롤의 위치 등이 저장되어 있다. frmMain.pas 에서 F12 키를 누르면 폼 화면으로 전환되어 폼 디자인을 할 수 있고, 폼 디자인 상태에서 F12 키를 누르면 frmMain.pas 로 전환된다. 만들어지는 파일은 다음과 같다.

whatwas.lpi 프로젝트 
whatwas.lpr 메인 진입코드
whatwas.lps 세션
whatwas.ico 아이콘 
whatwas.res 리소스 
frmMain.pas 폼의 논리구조를 구현하는 코드
frmMain.lfm 폼위에 오려진 컨트롤 크기 , 위치 등의 데이터

폼의 크기를 조절하지 못하도록 하기 위해서 Object Inspector 에서 Properties 탭을 선택한 후 BorderStyle 을 bsSingle 로 지정한다.


Object Pascal 언어는 Property 를 통해서 값을 넣고 빼는 작업을 할 수 있다. 라자루스 에서는 Property 들을 Object Inspector에서 관리할 수 있도록 하고 있다.  Form 의 Name 을 MainForm 으로 바꾸면 Object Inspector 의 트리뷰에서도 이름이 바뀐다. 또한 소스코드상에서의 이름도 자동으로 바뀐다.

그럼 화면에 표시되는 내용을 바꾸려면 어떻게 해야 할까. 화면에 표시되는 내용은 Caption 에서 바꿀 수 있다. Button 의 Name 을 btnInsert 로 바꾸고 Caption 을 추가 로 바꾸면 소스코드상에서의 버튼의 이름은 btnInsert 로 바뀌고 화면에 표시되는 버튼위의 글자는 '추가'로 바뀌는 것이다. 이런식으로 폼위에 위치한 컨트롤들을 하나하나 바꾸어 나간다.

2편에서는 SQLite 와 데이터베이스 처리를 구현해 본다.

2 편에서 계속
https://appleii.tistory.com/175

파스칼 언어로 작성하는 GUI 개발 도구인 라자루스로 간단한 비밀번호 관리 프로그램을 만들어 보자.