Search results for 'Delphi/C++Builder'

OXml(XML 라이브러리) 소개

2014.07.22 17:05

파스칼에서 사용할 수 있는 XML 라이브러리를 하나 소개합니다.

OXml -XML 라이브러리

OXml은 델파이와 C++빌더, 라자루스, FPC에서 사용할 수 있는 XML 구문분석 외부 라이브러리입니다.
제품 소개에는 다음과 같은 타이틀이 눈에 띄네요. 자신감이 넘칩니다.
OXml - The next generation XML library for Pascal
OXml - 파스칼의 차세대 XML 라이브러리

아주 간단한 기능만 소개하면
  • Win32, Win64, OSX, iOS, Android를 모두 지원
  • Delphi 4 ~ XE6 버전 지원(C++빌더도 동일한 버전이나 테스트는 하지 않음)
  • 프레임워크(VCL, FMX, LCL)에 종속적이지 않은 방식으로 구현
  • Delphi 2007 이전의 버전에서도 유니코드를 지원
제품 웹사이트에 보면 자세한 소개와 샘플코드, 다운로드 안내등 다양한 정보가 있습니다.
  • http://www.kluug.net/oxml.php
그리고 제일 중요한 라이선스는 CPAL(Common Public Attribution License) 라이선스입니다.(C팔이라고 읽으면 안됩니다. 알파벳으로 읽으세요^^) 즉, 사용 시 저작자 정보를 표시해야 하는 라이선스 입니다.

마지막으로 
제작사에서 제공한 성능표는 대단하네요.
(저는 개인적으로 테스트하지 않았습니다.)

먼저 일기에 대한 성능입니다.


다음 쓰기에 대한 성능입니다.


XML 데이터 처리 시 검토해 보시면 좋겠습니다.


저작자 표시 비영리 동일 조건 변경 허락
신고

험프리.김현수 Delphi/C++Builder Delphi, OXml, xml

델파이를 이용해 구글크롬캐스트와 연결

2014.07.22 11:43

델파이를 이용해 구글 크롬캐스트에 연결해 유투브의 비디오를 TV에서 비디오를 재생하는 예제와 방법을 소개하는 아주 재미있는 글이 있어 포스팅합니다.


최근 구글 크롬캐스트가 스마트폰 미러링 기능을 지원하며 다시한번 화재가 되고 있습니다.


델파이에서는 구글에서 공개한 Google Cast API를 통해 일부 인디(Indy) 컴포넌트와  RESTClient 컴포넌트를 통해 연결합니다.


델파이와 크롬캐스트를 연결하는 구성은 간단합니다.

  1. 구글 크롬캐스트 발견(IdUDPClient와 IdHttp 컴포넌트가 사용됩니다.)
  2. 유투브앱을 실행하고 비디오 시작(RESTClient와 IdHttp 콤퍼넌트가 사용됩니다.)




구글 크롬캐스트와 델파이를 연결하는 자세한 내용과 소스코드는 해당 블로그(http://fixedbycode.blogspot.dk/)에 방문하셔서 확인하시기 바랍니다.


구글 크롬캐스트란?

크롬캐스트(Chromecast)는 구글에서 만든 멀티미디어 스트리밍 어댑터이다. 이 장치는 2 인치(5.1 cm) 동글이며 HDTV의 HDMI 포트에 꽂아 오디오나 비디오를 와이파이를 통해 수신해 TV에서 스트리밍 재생한다. 크롬캐스트는 HDMI 1.4+ 포트와 USB 포트, 전원 어뎁터로부터 전원을 공급받으며 구글 크롬 OS의 심플 버전을 탑재하고 있다.

위키백과 참조




참고글


저작자 표시 비영리 동일 조건 변경 허락
신고

험프리.김현수 Delphi/C++Builder 구글 크롬캐스트, 구글캐스트, 델파이

TFileStream 기반 파일진행 상황을 보여주기

2014.07.14 09:27

오랫만에 박지훈.임프님의 기술 글을 올리셨네요^^ 페이스북으로 확인하고 포스팅합니다.


이번글에서는 델파이, C++빌더 개발자들에게 아주 친숙한 TStream 중 TFileStream에 진행률 이벤트를 추가하고 사용하는 방법을 안내합니다.



직접 방문하셔서 확인해 보세요.

원글


저작자 표시 비영리 동일 조건 변경 허락
신고

험프리.김현수 Delphi/C++Builder C++빌더, Delphi, TFileStream

인터베이스 서버(InterBase Server)에 접속이 되지 않는 경우 대처사항

2014.07.10 12:52

RAD Studio 설치 시 함께 설치되는 인터베이스 서버와 연결 할 때 간혼 다음과 같은 오류가 발생하는 경우가 있습니다.

그에 따른 대처사항입니다.



Unavailable database.


Unable to complete network request to host "localhost:3050". Failed to establish a connection.

대상 컴퓨터에서 연결을 거부했으므로 연결하지 못했습니다.



1, 인텁베이스 서버 구동여부 확인 및 구동

 인터베이스 매니저(시작 > Embarcadero Interbase XE3 > InterBase Servr Manager)로 시작


 


2, 데이터베이스 연결 시 IP / Port로 연결

여러버전의 델파이를 설치한 경우 매번 Interbase를 설치하게되면 기본 포트번호로 접속이 되지 않는 경우가 있습니다.

해당경우에는 다음과 같이 TCP/IP로 접속할 수 있습니다.



  • 기본으로 설정된 값은 Protocol이 Local Server는 공백으로 되어 있습니다.

  • Protocol을 TCPIP로 설정하면 localhost/gds_db 형태로 IP(localhost)/포트(gds_db)로 슬래쉬로 구분해 지정할 수 있습니다.

  • gds_db는 인터베이스 매니저의 타이틀에 표시된 내용을 참고하시면 됩니다.(간혹 ibxe3로 구동되기도 합니다.)


저작자 표시 비영리 동일 조건 변경 허락
신고

험프리.김현수 Delphi/C++Builder appmethod, C++Builder, Delphi, IBLite, Interbase, Rad Studio

RAD Studio IDE(통합개발환경) 사용법

2014.07.10 09:13

데브기어 테크사이트(tech.devgear.co.kr)에 RAD Studio 통합개발환경을 설명하는 아주 좋은 문서가 추가되었습니다.

한번 훓어보시고 평소 사용하지 않았던 기능도 숙지하시면 개발이 더 편하고 재미있어 질것입니다.


참고



그리고, 이내용은 데이비드아이(David I)가 쓴 "윈도우와 맥개발을 위한 파이어몽키 코스북"의 일부입니다.

책의 전문을 PDF로 받으시려면 다음 링크를 통해 다운로드하세요.


저작자 표시 비영리 동일 조건 변경 허락
신고

험프리.김현수 Delphi/C++Builder IDE, Rad Studio

Delphi, C++Builder 64bit 실행 시 "Unable to ..." 오류 대응방법

2014.07.08 22:10

최근 64bit용 어플리케이션 개발이 잦아지고 있습니다.


델파이와 C++빌더에서 64비트 개발 시 "Unable to create process." 오류가 발생해 정보를 찾다가 좋은 정보가 있어 공유합니다.



원글 - http://jsf3rd.blog.me/202981750

[색즉시공 공즉사색] 딸기(jsf3rd)님 블로그입니다. 좋은 정보가 아주 많습니다.



1번 오류 - Unable to scan program's header.

 

2번 오류 - Unable to create process.

 

------------------------------------------------------ 

 

델파이 버전은 XE5 Update2 입니다.

 

위 두 오류는 델파이 버전에 관계없이 종종 나오는듯 하더군요....

 

하여튼, 델파이에서 32bit 컴파일 및 디버깅은 잘 되는데...

 

Target Platform을 64bit로 변경하고 디버깅 또는 실행을 했을때 1번 또는 2번 오류가 발생할 경우 해결책입니다.

 

 

 

1번 오류는 매우 간단합니다.

 

exe가 생성되는 경로에 한글과 같은 유니코드가 없어야 합니다. 쉽게 말해서 프로젝트 경로에 한글을 사용하지 마십시오.

 

 

 

문제는 2번 오류 입니다. 

 

좀 복잡하구요. 구글검색을 해보면 여러 의견이있는데,

 

정리해보면...

 

- 델파이를 관리자 권한으로 실행

- 윈도우 방화벽 종료

- 백신 프로그램 종료

- 인터넷 보안 프로그램 종료

- Option - Application - runtime theme 설정 해제

 

등등 입니다.

 

이것저것 다 해봤는데.... 저의 경우에는 인터넷 보안 프로그램 때문이었습니다. 

 

그 놈의 이름은 Image Safer 입니다.

(MarkAny라는 회사의 화면보안 솔루션 - http://www.markany.com/wp/?page_id=116 )

 

작업 관리자에...

 

ImageSAFERStart_X64.exe

ImageSAFERStart_X86.exe

ImageSAFERSvc.exe

 

이런 놈들이 떠있다면 ImageSafer가 설치 된것입니다. 일단 깔리면 서비스로 동작합니다. ㅡㅡ^

 

이런경우 2번 오류로 인해 델파이에서 64bit로 디버깅 및 실행이 불가 합니다.

 

삭제 방법은 관리 - 서비스에서 [Image Protect Service] 를 찾아 종료 하시고 

 

아래 링크를 참고 하십시오.

-----------------------------------------------------------------------------

http://www.clien.net/cs2/bbs/board.php?bo_table=lecture&wr_id=101622

 

커맨드 창에서 실행

%windir%\imagesafersvc.exe -remove

 

바로 리부팅 후 관리자 권한으로 커맨드 창 실행

del %windir%\system32\imagesafer*

-----------------------------------------------------------------------------

 

결국 2번 오류는 델파이 자체 설정 보다는 보안관련 외부 프로그램의 영향을 받는것 같습니다.


저작자 표시 비영리 동일 조건 변경 허락
신고

험프리.김현수 Delphi/C++Builder

FastReport 4 VCL(Embarcadero Edition) 설치 오류 우회방법

2014.07.08 22:00

RAD Studio XE6 구매시 함께 제공되는 FastReport 4 VCL 버전이 한국어 운영체제에서 설치할 경우 중간에 글자가 깨지는 오류 메시지가 나오며 설치가 되지 않는 이슈가 발생했습니다.


패스트 레포트사에 요청해 다음버전에서 패치를 약속 받았지만, 그 이전에 사용해야 하시는 분들을 위해 파이어몽키 네이버 까페에 올라온 글을 안내해 드립니다.



이하 카페의 글입니다. 방명록에 방문하셔서 직접 알려주신 가시님께 감사인사 드립니다.



FastReport VCL 4 버젼 설치시 Fontpack 하면서 에러나는 설치 에러가 있는데

이전 버젼에서는 설치가 잘 되었으나 최근에 수정되면서 설치가 안되는 현상입니다.

 

이것관련으로 데브기어 기술지원 게시판에도 이 오류 관련 질문이 올라왔으나

답변이 없고 해서 우회하는 방법 알려드립니다. 

에러는 아래와 같은 화면이 뜨면서 프로그램이 설치가 안됩니다.

 



 

우회방법은 아래와 같습니다.

1) 윈도우즈 7 기준으로 설명하며 제어판 - 국가 및 언어 - 관리자 옵션 탭을 선택합니다.

2) "유니코드를 지원하지 않는 프로그램용 언어"를 선택하여 "한국어(대한민국"

    "영어(미국)"으로 변경하고 윈도우즈를 다시 재시작합니다. 반드시 윈도우즈를

    재시작해야합니다



 

3) 다시 FastReport VCL를 설치하면 에러가 발생하지 않고 정상 설치가 됩니다.

4) Fastreport  설치 완료하면 다시 제어판 - 국가 및 언어 - 관리자 옵션 탭에서

   "유니코드를 지원하지 않는 프로그램용 언어"의 "영어(미국)"을 "한국어(대한민국)"으로

   원상 복귀하고 윈도우즈를 다시 재시작하면 끝나요.

 

FastReport에서 시스템로켈의 한국어를 제대로 인식하지 못하는거 같네요.

일본어하고 중국어는 정상적으로 설치해주는데요 ^^

이상... Fastreport Vcl 4 설치 오류와 관련으로 우회방법이었습니다.

저작자 표시 비영리 동일 조건 변경 허락
신고

험프리.김현수 Delphi/C++Builder FastReport VCL

JSON to Object 한줄이면 됩니다.

2014.06.16 09:26

신입때 잘몰라 헤메고 있으면, 연구소장님이 한마디 하셨어요. 이렇게 저렇게 한줄이면 되겠네~

그때는 참 야속했습니다. -_-);


근데 JSON을 Object(객체)로 바꾸는 작업은 정말 한줄이면 되네요.

(파싱하는 반복작업을 많이 줄이고, 자동화하는데 참고하면 좋을 것 같습니다.)

uses REST.JSON; // Also new System.JSON

procedure TForm1.Button1Click(Sender: TObject);
var
  Foo: TFoo;
begin
  Foo := TFoo.Create;
  try
    Foo.Foo := 'Hello World';
    Foo.Fee := 42;
    Memo1.Lines.Text := TJson.ObjectToJsonString(Foo);
  finally
    Foo.Free;
  end;
  Foo := TJson.JsonToObject(Memo1.Lines.Text);
  try
    Foo.Fee := 100;
    Memo1.Lines.Add(TJson.ObjectToJsonString(Foo));
  finally
    Foo.Free;
  end;
end;


저작자 표시 비영리 동일 조건 변경 허락
신고

험프리.김현수 Delphi/C++Builder JSON to Object

델파이 IDE 상에서 Github 소스 바로사용하기

2014.06.05 09:41

최근 소스관리 시스템으로 Github가 많이 사용되고 있습니다. 델파이 오픈소스도 Github를 많이 이용하는데요.

git client 소프트웨어를 이용하는 방식과 ZIP 파일 다운로드 방식(우측하단 Download ZIP 버튼클릭)으로 많이 사용하셨을 겁니다.


Jim McKeeth가 델파이 IDE 상에서 Github 소스코드를 사용할 수 있는 유용한 팀을 공개하여 소개해드립니다.

Github에서 다양한 인터페이스를 제공하는데 그중 Subversion 인터페이스를 이용해 IDE에서 사용하는 방식입니다.




간단히 설명해 드리면

  1. Checkout URL을 Subversion으로 변경

  2. Subversion URL로 델파이 IDE에서 서브버전으로 사용


RAD Studio IDE 상에서 서브버전 사용하는 방법은 아래의 문서를 참고하세요.


저작자 표시 비영리 동일 조건 변경 허락
신고

험프리.김현수 Delphi/C++Builder C++빌더, Delphi, github, IIDE, Subversion, svn

RAD Studio IDE의 소스코드 창과 폼 디자이너창 분리하기

2014.05.13 15:36

Delphi 7등과 같이 소스창과 폼디자이너창을 분리하는 방법입니다.


1, Classic Undocked로 Docking 분리


2, Tools > Options > Envrionment > VCL Designer 선택 후 Embedded designer 선택해제

(만약, 해당 메뉴가 없을 경우 레지스트리 변경 : 최신버전에서 사라짐)

  • 레지스트리 이용하여 설정
    • HKEY_CURRENT_USER\Software\Embarcadero\BDS\14.0\Form Design - 14.0은 RAD Studio 버전
    • Embedded Designer - False로 변경
3, IDE 재구동 




저작자 표시 비영리 동일 조건 변경 허락
신고

험프리.김현수 Delphi/C++Builder embedded designer, Rad Studio

RAD Studio 64bit 디버깅 시 "unable to create process" 오류 메시지가 나오는 경우 대처방안

2014.05.07 14:55


RAD Studio(Delphi, C++Builder)에서 64bit로 Target platform을 잡고 디버깅(F9) 시 일부 사용자에게 위와 같은 메시지가 표시되면 디버깅모드로 진입이 되지 않는 경우가 발생합니다.(Run without debugging은 정상 동작)


위의 오류가 발생하는 경우 대처방안입니다.


  1. 32 bit OS가 설치된 윈도우로 64bit 타겟 실행 시
  2. 관리자 권한으로 RAD Studio 실행
    • 일부 권한이 없는 디렉토리에 실행파일을 생성하지 못할 수 있습니다.
  3. Embarcadero Debugger Kernel을 윈도우 방화벽에 예외등록
    • Debugger kernel 프로그램명 dbkw64_nn_0.exe(nn 버전)
    • RAD Studio 실행파일 경로(e.g. c:\Program files(x86)\Embarcadero\studio\14.0\bin\)에서 dbkw64로 시작되는 파일을 방화벽에 추가 후 시도 바랍니다.(64의 경우 기존의 컴파일러와 다른 LLVM 기반으로 컴파일됩니다.)



혹시 이슈가 발생한다면 위의 내용으로 조치해보시고 결과 답변 주시면 감사하겠습니다.^^



저작자 표시 비영리 동일 조건 변경 허락
신고

험프리.김현수 Delphi/C++Builder dbkw64, Debugger kernel, Rad Studio

델파이 오류 메시지 한글로 보기

2014.04.03 10:40


개발하다보면 참으로 자주 만나는 것이 에러 메시지이지만, 가끔 발생하는 에러는 도무지 어쩌라는 것인지 이해 되지 않을 때가 종종있습니다. 

아래 링크를 확인하시면, 델파이에서 발생하는 오류 메시지를 한글로 확인하실 수 있습니다.

에러에서 발생하는 메시지 (E1038 ~~~~~)에서 앞의 코드로 검색하시면 해당하는 메시지를 쉽게 찾을 수 있습니다.



아래는 오류메시지를 상세하게 보는 화면입니다.(일본어를 자동 번역한 것이어서 약간의 의역은 있지만, 기술적인 부분은 충분히 이해하실 수 있을 것 같습니다.)



저작자 표시 비영리 동일 조건 변경 허락
신고

험프리.김현수 Delphi/C++Builder 델파이, 한글 오류 메시지

TPath에서 제공되는 경로 설명(Windows, OSX, iOS, Android)

2014.03.28 11:09


RAD Studio XE2이후 TPath를 이용해 경로를 얻어올 수 있습니다.(TPath는 RTL에 포함되기 때문에 VCL 및 FMX에서 사용하실 수 있습니다.)

TPath가 제공되기 전까지 각 플랫폼 별(윈도우의 경우 XP이전과 Vista이후 버전 별) 경로를 구하기 위해 플랫폼 별로 구하는 코드를 따로 작성했는데요.(또는 관련된 함수를 찾아서 사용했습니다.)


TPath가 포함되면서 위의 작업이 필요가 없어졌습니다.

하지만 저를 포함한 대부분의 분들이 TPath.GetHomePath, TPath.GetLibraryPath등 몇가지만 주로 사용했을 것입니다.


하지만, 엠바카데로 문서를 보니 너무나 다양한 경로를 얻어올 수 있었네요.

http://docwiki.embarcadero.com/RADStudio/XE5/en/Standard_RTL_Path_Functions_across_the_Supported_Target_Platforms


한번 확인해 보시고 필요하실 때 사용하시면 아주 큰 도움이 될 것 같습니다.


관련글



저작자 표시 비영리 동일 조건 변경 허락
신고

험프리.김현수 Delphi/C++Builder

Remote Debugging(원격 디버깅) - RAD Studio(Delphi, C++Builder)

2014.03.25 09:37


델파이와 C++빌더로 윈도우 어플리케이션을 만드는 경우가 많지만, 

장비에 들어가는 소프트웨어나 로봇에 들어가는 펌웨어, 소프트웨어를 만드는 경우도 대단히 많습니다.


만약, 장비나 로봇에 들어가는 소프트웨어에서 알수 없는 오류가 나타나는 경우 디버깅을 위해 해당 장비에 델파이나 C++빌더를 설치해서 직접 디버깅하시는 분들도 있습니다.


하지만, 그 절차가 매우 번거롭고, 라이센스 위반(RAD Studio는 개발자 라이센스입니다.) 될 수 있습니다.


위와 같은 경우 RAD Studio의 원격디버깅(Remote Debugging)을 이용하실 수 있습니다.


원격 디버깅 방식은 

소스코드를 컴파일하여 실행파일을 만들고, 실행파일을 원격디버거가 설치된 원격지에 복사한 후 로컬의 IDE상에서 디버깅을 하는 방법입니다. 자세한 내용은 아래의 링크를 통해 확인하세요.



저작자 표시 비영리 동일 조건 변경 허락
신고

험프리.김현수 Delphi/C++Builder Rad Studio, remote debugging, 원격디버깅

RAD Studio(델파이, C++빌더) 단축키

2014.03.24 10:02

RAD Studio(Delphi, C++빌더) 단축키 입니다.

(엠바카데로 문서 자동 번역 후 일부 보정했습니다.)


컴파일 시 여러건의 오류를 이동하는 단축키를 묻는 분이 있어 찾아보니 Alt + F7, Alt + F8이 있었네요.(저도 모르고 여지껏 마우스로 클릭했네요.^^)

다양한 단축키 알아두시면 개발도 빠르게 하고, 디버깅도 빠르게 할 수 있겠네요.


바로 가기작업

Alt + [

해당 구분 기호를 찾습니다 (앞으로).

Alt + ]

해당 구분 기호를 찾습니다 (역방향).

Alt + ←

Alt + ↑ 또는 Ctrl + 클릭 (선언 부로 이동) 작업 이전 위치로 돌아갑니다.

Alt + F7

Messages View에 표시되기 전에 오류 또는 메시지의 위치로 이동합니다.

Alt + F8

Messages View에 표시된 다음 오류 또는 메시지의 위치로 이동합니다.

Alt + PgDn

다음 탭으로 이동합니다.

Alt + PgUp

이전 탭으로 이동합니다.

Alt + →

Alt + ← 작업 이전 위치로 이동합니다.

Alt + Shift + ↓

커서를 한 줄 아래로 이동하여 원래의 커서 위치의 오른쪽에서 단일 열에을 선택합니다.

Alt + Shift + End

커서 위치부터 현재 줄의 끝까지 선택합니다.

Alt + Shift + Home

커서 위치부터 현재 줄의 처음까지 선택합니다.

Alt + Shift + ←

왼쪽의 열을 선택합니다.

Alt + Shift + PgDn

커서를 한 화면 아래로 이동하고 원래의 커서 위치를 유지합니다.

Alt + Shift + PgUp

커서를 한 화면 위로 이동하고 원래의 커서 위치를 유지합니다.

Alt + Shift + →

오른쪽의 열을 선택합니다.

Alt + Shift + ↑

커서를 한 줄 위로 이동하여 원래의 커서 위치의 오른쪽에서 단일 열에을 선택합니다.

Alt + ↑

선언 부로 이동합니다.

Click + Alt + Mousemove

열 단위 블록을 선택합니다.

Ctrl + /

선택한 코드 블록의 각 행에 // 를 추가하여 코드를 주석으로 처리하거나, 제거합니다.

Ctrl + Alt + F12

열려있는 파일의 드롭 다운 목록을 표시합니다.

Ctrl + Alt + Shift + End

커서 위치에서 화면의 끝까지 열을 선택합니다.

Ctrl + Alt + Shift + Home

커서 위치에서 화면의 시작까지 열을 선택합니다.

Ctrl + Alt + Shift + ←

왼쪽의 열을 선택합니다.

Ctrl + Alt + Shift + PgDn

커서 위치에서 현재 파일의 끝까지 열을 선택합니다.

Ctrl + Alt + Shift + PgUp

커서 위치에서 현재 파일의 시작 부분까지 열을 선택합니다.

Ctrl + Alt + Shift + →

오른쪽의 열을 선택합니다.

Ctrl + BackSpace

커서의 왼쪽으로 한 단어를 삭제합니다 (앞의 공백까지의 문자가 삭제됩니다.)

Ctrl + Click

선언 부로 이동합니다.

Ctrl + Delete

현재 선택된 블록을 삭제합니다.

Ctrl + ↓

아래에 한 줄 스크롤합니다.

Ctrl + End

파일의 끝으로 이동합니다.

Ctrl + Enter

커서 위치의 파일을 엽니 다.

Ctrl + Home

파일의 시작 부분으로 이동합니다.

Ctrl + I

커서 위치에 탭 문자를 삽입합니다.

Ctrl + J

템플릿 팝업 메뉴를 엽니 다.

Ctrl + K + n

커서 위치에 책갈피 설정 ( n 은 0 ~ 9의 숫자).

Ctrl + K + E

현재 단어를 소문자로 변환합니다.

Ctrl + K + F

현재 단어를 대문자로 변환합니다.

Ctrl + K + T

커서 위치의 한 단어를 선택합니다.

Ctrl + ←

한 단어 왼쪽으로 이동합니다.

Ctrl + n

책갈피로 이동합니다 ( n 은 0-9의 책갈피 번호).

Ctrl + N

커서 위치에 줄 바꿈을 삽입합니다.

Ctrl + O + C

열 단위 블록 모드를 선택합니다.

Ctrl + O + K

열 단위 블록 모드를 해제합니다.

Ctrl + O + L

행 방향 블록 모드를 선택합니다.

Ctrl + O + O

컴파일러 옵션을 삽입합니다.

Ctrl + P

다음 문자를 ASCII 시퀀스로 해석합니다.

Ctrl + PgDn

화면의 맨 아래로 이동합니다.

Ctrl + PgUp

화면 상단으로 이동합니다.

Ctrl + Q + #

커서 위치에 책갈피를 설정합니다.

Ctrl + →

한 단어 오른쪽으로 이동합니다.

Ctrl + Shift + C

커서 위치의 클래스 선언에 대응하는 클래스 보완을 시작합니다.

Ctrl + Shift + #

커서 위치에 책갈피를 설정합니다.

Ctrl + Shift + B

버퍼 목록을 표시합니다.

Ctrl + Shift + ↓

선언에서 구현 또는 구현에서 선언으로 이동합니다.

Ctrl + Shift + Enter

사용 항목을 검색합니다.

Ctrl + Shift + J

동기화 편집 모드를 선택합니다.

Ctrl + Shift K-A

모든 코드 블록을 확장합니다.

Ctrl + Shift K + C

모든 클래스를 축소합니다.

Ctrl + Shift K + E

코드 블록을 축소합니다.

Ctrl + Shift K-G

초기화 / 종료 또는 인터페이스 / 구현

Ctrl + Shift K + M

모든 메서드를 축소합니다.

Ctrl + Shift K + N

네임 스페이스 / 단위를 축소합니다.

Ctrl + Shift K + O

코드 축소를 활성화 또는 비활성화 전환합니다.

Ctrl + Shift K + P

중첩 된 절차를 축소합니다.

Ctrl + Shift K + R

모든 영역을 축소합니다.

Ctrl + Shift K-T

현재 블록의 축소 및 확장을 전환합니다.

Ctrl + Shift K-U

코드 블록을 확장합니다.

Ctrl + Shift + End

커서 위치에서 현재 파일의 끝까지 선택합니다.

Ctrl + Shift + G

새로운 글로벌 고유 식별자 (GUID)를 삽입합니다.

Ctrl + Shift + Home

커서 위치에서 현재 파일의 처음까지 선택합니다.

Ctrl + Shift + I

선택된 블록을 들여 씁니다.

Ctrl + Shift + ←

커서의 왼쪽으로 한 단어를 선택합니다.

Ctrl + Shift + P

기록 된 키 스트로크 매크로를 재생합니다.

Ctrl + Shift + PgDn

커서 위치에서 화면의 하단까지를 선택합니다.

Ctrl + Shift + PgUp

커서 위치에서 화면 상단에서을 선택합니다.

Ctrl + Shift + R

키 스트로크 매크로 기록 시작 / 정지를 전환합니다.

Ctrl + Shift + →

커서의 오른쪽으로 한 단어를 선택합니다.

Ctrl + Shift + Space

코드 파라미터 팝업 창을 엽니 다.

Ctrl + Shift + T

[To-Do 항목 추가 대화 상자를 엽니 다.

Ctrl + Shift + Tab

이전 코드 페이지 (또는 파일)로 이동합니다.

Ctrl + Shift + Tab

이전 페이지로 이동합니다.

Ctrl + Shift + U

선택된 블록 들여 쓰기를 해제합니다.

Ctrl + Shift + ↑

선언에서 구현 또는 구현에서 선언으로 이동합니다.

Ctrl + Shift + Y

커서 위치부터 줄 끝까지 삭제합니다.

Ctrl + Space

코드 완성 팝업 창을 엽니 다.

Ctrl + T

오른쪽으로 한 단어를 삭제합니다 (다음 스페이스까지의 문자가 삭제됩니다.)

Ctrl + Tab

다음 코드 페이지 (또는 파일)로 이동합니다.

Ctrl + ↑

한 행 위로 스크롤합니다.

Ctrl + Y

현재 행을 삭제합니다.

F1

선택된 정규화 된 네임 스페이스의 도움말을 표시합니다.

Shift + Alt + arrow

열 단위 블록을 선택합니다.

Shift + BackSpace

커서의 왼쪽 문자를 삭제합니다.

Shift + ↓

커서를 한 화면 아래로 이동하여 원래의 커서 위치의 오른쪽에서 현재 위치까지 선택합니다.

Shift + End

커서 위치부터 현재 줄의 끝까지 선택합니다.

Shift + Enter

커서 위치에 새 줄을 삽입합니다.

Shift + Home

커서 위치부터 현재 줄의 처음까지 선택합니다.

Shift + ←

커서의 왼쪽 문자를 선택합니다.

Shift + PgDn

커서를 한 화면 아래로 이동하여 원래의 커서 위치의 오른쪽에서 현재 위치까지 선택합니다.

Shift + PgUp

커서를 한 화면 위로 이동하여 원래의 커서 위치의 왼쪽에서 현재 위치까지 선택합니다.

Shift + →

커서의 오른쪽 문자를 선택합니다.

Shift + Space

공백을 삽입합니다.

Shift + Tab

커서를 왼쪽으로 한 탭 위치로 이동합니다.

Shift + ↑

커서를 한 줄 위로 이동하여 원래의 커서 위치의 왼쪽에서 현재 위치까지 선택합니다.

참고


저작자 표시 비영리 동일 조건 변경 허락
신고

험프리.김현수 Delphi/C++Builder C++Builder, Delphi, 단축키, 델파이, 씨빌더

  1. 오 이거 완전 감사^^

  2. Blog Icon
    싸커홍

    진심으로 감사합니다.

  3. 감사합니다
    출처남기고 퍼가겠습니다.

RAD Studio XE5에서 FastReport VCL 추가설치 방법

2014.03.05 18:20


RAD Studio XE5 설치 시 누락된 FastRerpot 4 VCL 컴포넌트가 저도 모르게 1월 16일 배포가 되었습니다.

설치는 아래의 링크를 통해 가능하구요. XE5 라이센스가 있는 계정을 통해 다운로드 가능합니다.



하지만, 추가 설치 시 이슈가 있습니다.

위 파일을 다운로드 받은 후 설치하면 라이브러리들이 FastReport 경로(C:\Program Files (x86)\FastReports\LibD19)에 복사가 되지만 컴포넌트가 설치되지 않는 현상이 있습니다.


위의 이유로 FastReport경로의 *19.dpk파일을 열어 일일히 Install해야합니다.

패키지 인스톨 방법

  1. 델파이 > File > Open > FastReport경로 이동 > dclfrx19.dpk 선택
  2. Project Manager > Install


위처럼 Package 파일을 Install시 frxReg.pas에서 오류가 나는 경우 아래의 내용으로 조치하면 해결됩니다.(정상적인 이슈해결 방법인지는 장담하지 못합니다. -_-;;)

frxReg.pas에서 frxDCtrl, (41 line)에서 오류가 나는 경우

  • frx.inc 파일을 열고 403 line의 주석을 제거합니다.
  • 변경 전 : //{$DEFINE FR_VER_BASIC}
  • 변경 후 : {$DEFINE FR_VER_BASIC}


혹시 문제가 되는 경우 댓글로 남겨주세요.

저작자 표시 비영리 동일 조건 변경 허락
신고

험프리.김현수 Delphi/C++Builder fastreport, FastReport 4 VCL

Runtime Packages 옵션으로 프로그램(배포) 용량 줄이기

2013.12.17 18:21

해당 글의 예제는 Delphi XE5로 테스트 했으며, 다른버전의 화면 및 메뉴 명칭은 약간 다를 수 있습니다.


   가끔 주위에서 배포 시 프로그램 용량이 너무 커서 dll 등으로 폼을 분리하는 방법을 문의합니다. 저는 되도록 UPX로 실행파일 압축을 권하지만, 근본적으로 실행파일 용량을 줄이고자 하시는 분들께 도움이되는 내용입니다.


Runtime Packages란?

  • Runtime packages는 실행파일에 라이브러리를 포함하여 컴파일할지 결정하는 프로젝트 옵션(Project > Options > Packages > Runtime Packages)입니다.
  • Runtime packages 옵션은 기본(신규 프로젝트 생성 시)으로 해제되어 있어, 컴파일된 실행파일에는 정적라이브러리(*.lib)가 모두 포함됩니다.
  • 해당 옵션을 해제하게 되면 옵션명대로 Runtime에서 Package들을 사용해야 합니다. 즉, 라이브러리(bpl: Borland Package Library)를 함께 배포해야 합니다. 대신 실행파일의 용량은 확실하게 줄어들게 됩니다.


| Runtime Package 설정 시 용량차이



  • IncludePackage.exe - 패키지가 포함된 실행파일(Runtime Packages 해제: 기본 설정)
  • RunTimePackages.exe - 패키지가 제외된 실행일(Runtime Packages 설정)

  위의 2개의 실행파일은 Delphi XE5로 신규 프로젝트(폼만 있는 빈 프로젝트)를 컴파일한 실행파일입니다. 빈 프로젝트를 컴파일 한 2개의 실행파일도 서로 용량 차이가 꽤 납니다. 


  Runtime packages으로 설정한 실행파일은 실행 시 라이브러리가 필요합니다. 위와 같이 Bpl파일을 함께 배포해야 합니다. 배포경로는 실행파일과 같은 위치 또는 윈도우 시스템 경로인 C:\Windows\System32, C:\Windows\SysWOW64에 Bpl파일을 복사하면 됩니다. 일반적인 Bpl파일은 델파이 실행파일 경로(C:\Program Files (x86)\Embarcadero\RAD Studio\12.0\bin)에 위치합니다.


  만약, Bpl파일을 배포하지 않는다면, 아래와 같은 오류가 발생합니다.(단, 델파이가 설치된 PC환경에서는 시스템 변수에 해당 경로가 등록되어 오류가 발생하지 않습니다.)



| 개발된 폼을 bpl로 배포하기


  기본 bpl을 제외해서 용량을 줄이는 방법 외에도 개발에 사용된 폼을 패키지 프로젝트로 작성하여 Bpl로 배포함으로 배포용량을 분산할 수 있습니다. 


  폼이 2개인 어플리케이션에서 하나의 서브 폼을 패키지로 작성 후 배포하는 예로 설명을 하겠습니다.

  전체적인 프로젝트 구성은 아래와 같습니다.


메인 프로젝트 생성

  1. File > New > VCL Form Application으로 프로젝트 생성
  2. Project Manager에서 Project를 선택하고 Add New > VCL Form으로 폼을 하나 추가
  3. File > Save로 프로젝트 및 Unit을 저장
    1. RunTImePackages.dpr로 프로젝트 저장
    2. 메인폼을 MainForm.pas로 저장
    3. 추가한 폼의 Name을 TfrmSecond로 지정 후 SecondForm.pas로 저장
  4. MainForm에 버튼을 올리고 ShowModal로 SecondForm을 호출하는 코드 추가
  5. uses
      SecondForm;
    
    {$R *.dfm}
    
    procedure TForm4.Button1Click(Sender: TObject);
    begin
      with TfrmSecond.Create(nil) do
      begin
        ShowModal;
        Free;
      end;
    end;
    

  6. 실행 및 테스트


Second Form Package 생성

  1. 위의 프로젝트의 Project Manager에서 Project Group1 > Add New Project > Package 선택 및 확인
  2. Project Manager > Package1(추가한 Package) > Contains 우측 마우스 클릭 > Add > 위의 프로젝트의 SecondForm.pas 선택
  3. 프로젝트 저장
    1. SecondFormPackage.dpk로 프로젝트 저장
  4. 컴파일(Ctrl + F9) - 다른 Package가 필요하다는 메시지 창이 표시되면 확인 후 OK 클릭

  5. 위와 같이 컴파일하면 Bpl기본 경로(C:\Users\Public\Documents\RAD Studio\12.0\Bpl)에 SecondFormPackage.bpl이 생성됩니다.


Main 프로젝트를 Runtime Packages로 설정

  1. Runtime Packages 옵션 호출(Project > Options > Packages > Runtime Packages)
  2. 아래 그림과 같이 설정
    • Runtime Packages > Inherit > True로 변경
    • 입력된 값을 모두 지우고, 위에서 만든 패키지 이름 입력



  위와 같은 과정을 거치면 실행파일과 각각의 폼을 Bpl로 분산이되어 배포 시 해당하는 파일만 배포하여 배포 용량을 줄일 수 있습니다.


| 주의할 사항


  • 패키지로 배포할 경우 패키지 파일에서 사용하는 패키지도 함께 배포해야 합니다.
  • 위의 이유로 사용하는 컴포넌트 및 패키지의 구조를 정확히 인지하는 경우만 위의 방식을 사용해야 합니다.
  • 배포 전 반드시 델파이가 설치되지 않은 위치에서 배포 테스트를 진행해야 합니다.


사실 저도 이번 기회에 패키지를 처음 만들어 봤습니다. 테스트하는 과정에서 나온 내용을 공유하는 것이니 혹시 잘못된 내용이나 개선사항이 보이시면 해당 댓글이나 hjfactory@gmail.com으로 보내주시면 수정반영하겠습니다.


감사합니다.


저작자 표시 비영리 동일 조건 변경 허락
신고

험프리.김현수 Delphi/C++Builder Runtime Package, 델파이, 배포용량 줄이기

  1. Blog Icon

    비밀댓글입니다

Delphi, C++ Builder Compiler Versions

2013.12.04 16:42
크게 몰라도 되지만 간혹 필요한 델파이 및 C++빌더의 버전 정보입니다.

Delphi conditional VER<nnn>ProductProduct VersionPackage Version

VER260

Delphi XE5 / C++Builder XE5 
(Delphi:Win32/Win64/OSX/iOS/Android) (C++Builder:Win32/Win64)

19

190

VER250

Delphi XE4 / C++Builder XE4 
(Delphi:Win32/Win64/OSX/iOS) (C++Builder:Win32/Win64)

18

180

VER240

Delphi XE3 / C++Builder XE3 
(Delphi:Win32/Win64/OSX/iOS) (C++Builder:Win32/Win64)

17

170

VER230

Delphi XE2 / C++Builder XE2 
(Delphi:Win32/Win64/OSX) (C++Builder:Win32)

16

160

161 is the version for the five FireMonkey packages (at XE2 Update 2): fmi161.bpl, fmx161.bpl, fmxase161.bpl, fmxdae161.bpl, and fmxobj161.bpl.

VER220

Delphi XE / C++Builder XE (Win32)

15

150

VER210

Delphi 2010 / C++Builder 2010 (Win32)

14

140

VER200

Delphi 2009 / C++Builder 2009 (Win32)

12

120

VER190

Delphi 2007 for .Net *

11

110

VER180 or VER185

Delphi 2007 / C++Builder 2007 for Win32 * 

11

110

VER180

Delphi 2006 / C++Builder 2006 (Win32/.Net) and Delphi/C++Builder 2007 for Win32

10

100

VER170

Delphi 2005 (Win32/.Net)

9

90

VER160

Delphi 8 for .Net

8

80

VER150

Delphi 7 (and 7.1)

7

70

VER140

Delphi 6 / C++Builder 6

6

60

VER130

Delphi 5 / C++Builder 5

5

NA

VER125

C++Builder 4

4

NA

VER120

Delphi 4

4

NA

VER110

C++Builder 3

3

NA

VER100

Delphi 3

3

NA

VER93

C++Builder 1

NA

NA

VER90

Delphi 2

2

NA

VER80

Delphi 1

1

NA

VER70

Borland Pascal 7.0

NA

NA

VER15

Turbo Pascal for Windows 1.5

NA

NA

VER10

Turbo Pascal for Windows 1.0

NA

NA

VER60

Turbo Pascal 6.0

NA

NA

VER55

Turbo Pascal 5.5

NA

NA

VER50

Turbo Pascal 5.0

NA

NA

VER40

Turbo Pascal 4.0

NA

NA


참고: http://docwiki.embarcadero.com/RADStudio/XE5/en/Compiler_Versions

저작자 표시 비영리 동일 조건 변경 허락
신고

험프리.김현수 Delphi/C++Builder Compiler Versions, Delphi

[XE3] 관리자 권한으로 실행 - Project Options 사용

2013.04.17 18:30

UAC가 적용된 윈도우에서 레지스트리나 서비스 등을 제어하기 위해서는 어플리케이션을 관리자 권한으로 실행 해야 합니다.

보통 오른쪽 마우스 버튼의 "관리자 권한으로 실행" 메뉴를 이용하면 아래와 같이 확인창이 뜨지요.



하지만 고객에게 우측마우스로 관리자 권한으로 실행해 주세요. 할 수는 없기에 실행하면 무조건 관리자 권한으로 실행되도록 해야 합니다. 

관리자 권한으로 실행되는 프로그램은 아래의 그림 우측과 같이 방패 아이콘이 표시가 됩니다.


관리자 권한으로 실행하는 프로그램을 작성하기 위해서는

프로젝트 리소스에서 Manifest를 변경하고 적용해야 합니다.


예전 버전의 델파이(델파이 7, 2007)로 설명된 글들이 몇개 보이지만 다소 복잡하기도 해서

정말 쉽게 사용할 수 있는 방법 공유합니다.


아래 예제는 Delphi XE3 기준으로 작성되었구요

하위 버전에서는 잘 될지 모르겠네요.(아... 무책임 하여라..)


| Manifest 파일 작성


1, 프로젝트 생성

프로젝트를 생성하고 프로젝트 파일(*.dpr)이 저장된 경로를 보시면 프로젝트 명과 동일한 리소스 파일(*.res)이 있습니다.



2, 리소스 파일 오픈

리소스 에디터로 리소스파일을 열어봅니다.

리소스 에디터?

 - 리소스 파일을 편집할 수 있는 툴, 다양한 무료 툴들이 있음

 - 제가 사용하는 XN Resource Editor(http://www.wilsonc.demon.co.uk/d10resourceeditor.htm)

    (https://stefansundin.github.io/xn_resource_editor/)

리소스?

 - 어플리케이션에 아이콘, 이미지, 커서, 데이터 등을 포함하기 위한 파일일

 - 델파이에서는 Project > Resources and Images... 메뉴를 통해 이용할 수 있다.


그럼 아래의 좌측 메뉴에서  XP Theme Manifest 항목을 선택하고 하위 메뉴를 선택하면 화면과 같은 XML이 표시됩니다.


3, Manifest 내용 복사 후 파일 생성

리소스 에디터의 Manifest XML 내용을 복사합니다.

프로젝트의 경로에 프로젝트명.manifest(파일명은 임의로 입력하셔도 상관 없음) 파일을 만들고  XML내용을 붙여 넣고 아래와 같이 수정합니다.


requestedExecutionLevel의 level 변경(asInvoker -> requireAdministrator)

<requestedExecutionLevel

          level="requireAdministrator"

          uiAccess="false"/>

        </requestedPrivileges>



| Manifest 적용


1, 프로젝트 옵션에서 Manifest 적용

델파이 IDE로 이동하여 프로젝트 옵션을 열고 Application 항목으로 이동합니다.


2, Custom Manifest 설정

[Runtime Themes]의 콤보박스를 Use custom manifest로 변경하고 활성화된 Custom Manifest를 위에서 만든 reqAdmin.manifest파일을 선택합니다.


3. 컴파일 및 팁

위의 옵션을 적용하고 컴파일을 하면 생성된 실행파일에 방패가 생기고 실행 시 관리자 권한을 자동으로 질의 합니다.


하지만 관리자 권한으로 실행 시 디버깅이 안된다는 문제점이 있습니다.

큰 문제는 아니지만 빠르게 개발할 때 많이 불편하지요.


그래서 저는 컴파일 타겟으로 구분을 했습니다.

 - Release 모드인 경우 Runtime Themes를 Use custom manifest 선택 후 적용하고

 - Debug 모드인 경우 Runtime Themes를 Enable runtime themes로 선택하여 디버깅 가능하게 했습니다.


위와 같이 사용하는 경우 

Release 모드로 컴파일 하는 경우 F9로 실해이 되지 않고 실행파일로 실행을 하는 반면 관리자 권한으로 실행됩니다.

Debug 모드로 컴파일 하는 경우 디버깅이 가능하지만 관리자 권한을 사용하는 기능을 사용하지 못한답니다.

간단한 UI 수정할때 사용하면 좋을 것 같네요^^


그럼 오늘도 끝~

저작자 표시 비영리 동일 조건 변경 허락
신고

험프리.김현수 Delphi/C++Builder Custom manifest, Manifest 설정, requireAdministrator, 관리자권한으로 실행

  1. 실행파일 속성에서 호환성 부분에서 관리자 권한으로 실행하기하면 Release / Debug 에 상관없이 관리자 권한 다 먹고 들어가요~ 요것두 팁!

  2. 그렇지요^^ 사용하실때는 실행파일 속성에서 관리자권한으로 실행 체크해 주면 편합니다. 좋은팁 감사^^

  3. 언제부터였는진 모르겠는데
    Project Options
    > Application
    > Manifest File
    > Tags to include
    > Enable Administrator Privileges

    로 관리자 권한 실행 추가 가능하네요~

  4. XE10 시애틀부터는 이 글을 참고하시면 됩니다.
    https://www.delmadang.com/community/bbs_view.asp?bbsNo=3&bbsCat=0&indx=450954&page=1

  5. 정보공유 감사합니다^^

Borland Compiler Conditional Defines

2012.03.06 20:29

컴포넌트 및 라이브러리 소스 만들 때 필요한 델파이 버전별 Conditionnal Define 값입니다.

아래 형태로 사용할 수 있습니다.

{$IFDEF VER270}

// XE6에서만 구현할 코드

{$ENDIF}

Delphi conditional VER<nnn>ProductProduct VersionPackage Version

VER270

Delphi XE6 / C++Builder XE6 
(Delphi:Win32/Win64/OSX/iOS/Android) (C++Builder:Win32/Win64/OSX/iOS/Android)

20

200

VER260

Delphi XE5 / C++Builder XE5 
(Delphi:Win32/Win64/OSX/iOS/Android) (C++Builder:Win32/Win64/OSX/iOS)

19

190

VER250

Delphi XE4 / C++Builder XE4 
(Delphi:Win32/Win64/OSX/iOS) (C++Builder:Win32/Win64/OSX)

18

180

VER240

Delphi XE3 / C++Builder XE3 
(Delphi:Win32/Win64/OSX) (C++Builder:Win32/Win64/OSX)

17

170

VER230

Delphi XE2 / C++Builder XE2 
(Delphi:Win32/Win64/OSX) (C++Builder:Win32/OSX)

16

160

161 is the version for the five FireMonkey packages at XE2 Update 2: 
fmi161.bpl, fmx161.bpl, fmxase161.bpl, fmxdae161.bpl, and fmxobj161.bpl.

VER220

Delphi XE / C++Builder XE (Win32)

15

150

VER210

Delphi 2010 / C++Builder 2010 (Win32)

14

140

VER200

Delphi 2009 / C++Builder 2009 (Win32)

12

120

VER190

Delphi 2007 for .Net *

11

110

VER180 or VER185

Delphi 2007 / C++Builder 2007 for Win32 * 

11

110

VER180

Delphi 2006 / C++Builder 2006 (Win32/.Net) and Delphi/C++Builder 2007 for Win32

10

100

VER170

Delphi 2005 (Win32/.Net)

9

90

VER160

Delphi 8 for .Net

8

80

VER150

Delphi 7 (and 7.1)

7

70

VER140

Delphi 6 / C++Builder 6

6

60

VER130

Delphi 5 / C++Builder 5

5

NA

VER125

C++Builder 4

4

NA

VER120

Delphi 4

4

NA

VER110

C++Builder 3

3

NA

VER100

Delphi 3

3

NA

VER93

C++Builder 1

NA

NA

VER90

Delphi 2

2

NA

VER80

Delphi 1

1

NA

VER70

Borland Pascal 7.0

NA

NA

VER15

Turbo Pascal for Windows 1.5

NA

NA

VER10

Turbo Pascal for Windows 1.0

NA

NA

VER60

Turbo Pascal 6.0

NA

NA

VER55

Turbo Pascal 5.5

NA

NA

VER50

Turbo Pascal 5.0

NA

NA

VER40

Turbo Pascal 4.0

NA

NA


끝~

신고

험프리.김현수 Delphi/C++Builder