FreePascal Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
FreePacal 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

FreePascal 강좌/문서
[2] 라자루스를 이용한 업무 프로그램 개발 - 1
어느좋은날 [freepascal] 1643 읽음    2020-06-13 22:27
라자루스로 업무 프로그램 개발이 가능할지 이것 저것 테스트 해보다가 괜찮은 것 같아서 정보를 공유할까 합니다. 취미로 프로그램을 개발하거나 중/소규모의 업무 프로그램을 개발하기에는 충분할 것 같네요. 크게 어려운 내용은 아니라서 능력자분들은 패스하셔도 됩니다. ^^ 이하 존칭은 생략하도록 하겠습니다.

0. 준비작업
0-1. 컴퍼넌트 설치 및 개발환경

개발툴 버전: lazarus-2.0.8-fpc-3.0.4-win64
사용 컴퍼넌트: Indy 10.6.2, zeoslib-7.3-r6603
데이터베이스: Firebird-3.0.5.33220_0_x64

Firebird DB는 Character Set을 UTF8이나 UNICODE_FSS로 생성해야 라자루스에서 한글이 깨지지않는다.
SQL> CREATE DATABASE 'D:\Data\TEST-UNI.FDB' PAGE_SIZE = 8192 USER 'SYSDBA' PASSWORD 'masterkey' DEFAULT CHARACTER SET UNICODE_FSS;

3티어로 개발할 것이기때문에 TCP/IP용 통신 컴퍼넌트가 필요하다. 본 강좌에서는 델파이에도 기본 설치되어있는 Indy 10을 사용하기로 한다.
Indy 컴퍼넌트는 아래 사이트에서 다운 받을 수 있다.
https://github.com/IndySockets/Indy
http://packages.lazarus-ide.org/Indy10.zip

Indy 컴퍼넌트를 라자루스에 설치하면 델파이에서보다 엄청 많은 수의 컴퍼넌트 탭이 생성 된다. 탭 마다 컴퍼넌트 개수가 줄어드는 장점은 있지만 탭이 많아서 스크롤 해야하는 문제가 생긴다. "IdDsnCoreResourceStrings.pas"와 "IdDsnResourceStrings.pas"에 있는 해당 변수의 값을 지우고 설치 하면 탭 개수를 줄일 수 있다.
// IdDsnCoreResourceStrings.pas
{$IFDEF FPC}
//  CoreSuffix = ' - Core'; // 2020.06.04 by K.I.S
  CoreSuffix = ''; // 2020.06.04 by K.I.S
{$ENDIF}

// IdDsnResourceStrings.pas
{$IFDEF FPC}
  //This is part of a workaround for the Lazarus IDE Toolbar being
  //unable to scroll.
// 2020.06.04 by K.I.S -- begin
//  RSProt = ' Protocols';
//  RSProtam = ' Protocols (am)';
//  RSProtnz = ' Protocols (nz)';
//  RSMappedPort = ' Mapped Port';
//  RSEncoder = ' Encoder';
//  RSDecoder = ' Decoder';
  RSProt = '';
  RSProtam = '';
  RSProtnz = '';
  RSMappedPort = '';
  RSEncoder = '';
  RSDecoder = '';
// 2020.06.04 by K.I.S -- end
{$ENDIF}


DB 접속용 컴퍼넌트는 기본적으로 SQLdb가 설치되어있는데 몇 가지 문제가 있어서 ZeosLib를 사용하기로 했다. 한가지 예를 들면, char 한 자리로 설정한 필드가 공백이 채워진 3자리의 문자 필드로 반환 되어서 엉뚱하게 처리 되는 문제가 있다.
ZeosLib는 아래 사이트에서 다운 받을 수 있다. 본 예제에서는 개발버전인 7.3을 사용한다. 7.3은 사이트의 Subversion 탭에서 받을 수 있다.
https://sourceforge.net/projects/zeoslib/

그 외 필요한 컴퍼넌트들은 아래 사이트에서 찾을 수 있을 것이다.
https://sourceforge.net/projects/lazarus-ccr/
http://packages.lazarus-ide.org

※ 기본 적으로 라자루스에서 컴파일한 실행 파일에는 디버깅 정보가 포함되어있어서 상당히 크다. 디버그 정보를 끄고 "Optimization levels"를 "-O3"으로 지정한 후 컴파일하면 실행파일의 크기를 줄일 수 있다.


+ -

관련 글 리스트
2 라자루스를 이용한 업무 프로그램 개발 - 1 어느좋은날 1643 2020/06/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.