1페이지
2페이지
3페이지
4페이지
5페이지
6페이지
7페이지
8페이지
9페이지
메뉴
현재 페이지 위치 : Home > 커뮤니티 > 자료실

보기

RAD Studio 버전별 신기능

작성일2018-06-06 오전 11:05:55
  • no : 181
  • 작성자 : 관리자
  • 조회 : 9960
RAD Studio 버전별 신기능
델파이10.2 도쿄 주요 기능 정리

델파이10.1 베를린 주요 기능 정리

델파이10 시애틀 주요 기능 정리

델파이(2005~XE8) 주요 기능 정리

 

■ 새로운 컴파일러 기능(10.2 도쿄)

델파이에서 하나의 소스코드로 리눅스, 윈도우, 맥OS, 안드로이드, iOS용 네이티브 앱을 빌드하고 컴파일할 수 있습니다.

□ 델파이 리눅스 컴파일러

 

공식 지원하는 리눅스

  • Ubuntu Server (Ubuntu 16.04 LTS)
    RedHat Enterprise Linux (7 버전)
    대부분의 배포판에서 작동할 것으로 예상됨

→ 자세히 보기: http://tech.devgear.co.kr/delphi_news/431377

 

 


iOS 11 지원과 iPhone X 지원이 추가되었습니다. 

□ iPhone X 지원

RAD 스튜디오 10.2.2에서 iOS 11 지원과 iPhone X 지원이 추가되었습니다. IDE에서 iPhone X 고유의 스플래쉬 이미지 지원 및 응용 프로그램 레이아웃 업데이트, iPhone X의 '노치(V 또는 U자로 움푹패인 자리)'에 맞춘 표시등이 포함됩니다.

→ 자세히 보기: http://tech.devgear.co.kr/438385

 

 


 

■ 새로운 FMX 기능(10.2 도쿄)

주요 속성을 빠르고, 시각적으로 설정할 수 있는 퀵에디트 기능을 이제 파이어몽키에서도 사용할 수 있습니다.

□ FireMonkey 퀵에디트(Quick Edit) 지원

 
→ 자세히 보기: http://tech.devgear.co.kr/438351

 

 


iOS의 시스템 상태 표시줄 동작을 변경하기 위한 두 가지 속성이 추가되었습니다.

□ iOS의 새로운 시스템 상태 표시 줄 옵션

 

iOS의 시스템 상태 표시줄 동작을 변경하기 위한 SystemStatusBar.BackgroundColor, SystemStatusBar.Visibility 두 가지 새로운 속성이 TForm에 추가되었습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/431389

 


TMultiView의 기능이 개선되었습니다.

□ BorderOption 속성 추가: 테두리 모양 관리 가능

 

□ 도킹 패널 모드의 Placement 속성에 Top, Bottom 항목 추가

 
→ 자세히 보기: http://tech.devgear.co.kr/431389

 

 


델파이 코드가 자바 UI 쓰레드에서 실행되어, 델파이로 자바 UI 코드 작성 시 쓰레드 동기화가 필요없습니다.

□ 안드로이드에서 델파이와 자바 쓰레드 통일

 

공식 지원하는 리눅스

10.1 베를린 이전 procedure ToastMessage(const AValue: string);
begin
   CallInUiThread(procedure)
   begin
    TJToast.JavaClass.makeText(ShareActivityContext,
    StrToJCharSequence(AValue),
    TJToast.JavaClass.LENGTH_SHORT).show;
   end);
end;
10.2 도쿄 이후 procedure ToastMessage(const AValue: string);
begin
    TJToast.JavaClass.makeText(ShareActivityContext,
    StrToJCharSequence(AValue),
    TJToast.JavaClass.LENGTH_SHORT).show;
end;

→ 자세히 보기: http://tech.devgear.co.kr/431389

 

 


TBitmap, TCanvas, TContext3D에 대한 멀티 스레딩을 지원합니다.

□ TBitmap, TCanvas, TContext3D에 대한 멀티 스레딩 지원

 

  • ? TBitmap: 완벽한 멀티 스레딩 지원. 동기화없이 모든 스레드에서 생성, 삭제 및 수정 가능
    ? TCanvas: 한 번에 여러 스레드에서 사용되는 것을 지원하지만 내부적으로 직렬화 됨
    ? TContext3D: 한 번에 여러 스레드에서 사용되는 것을 지원하지만 내부적으로 직렬화 됨

→ 자세히 보기: http://tech.devgear.co.kr/431389

 

 


맥 및 안드로이드용 새로운 파이어몽키 스타일이 추가되었습니다.

□ 새롭게 추가된 파이어몽키 스타일

 

  • ? C:\Users\Public\<x-documents\Embarcadero\Studio\19.0\Styles\MacOS\macOSgraphite.fsf 

    ? C:\Users\Public\<x-documents\Embarcadero\Studio\19.0\Styles\Android\AndroidWearDarkBlue.fsf 

→ 자세히 보기: http://tech.devgear.co.kr/431389

 

 


 

■ 새로운 RTL 기능(10.2 도쿄)

RAD 서버 싱글 사이트 라이선스를 제공합니다.

□ RAD 서버 싱글 사이트 라이선스 제공

RAD 서버는 즉시 사용가능한 턴키방식의 미들웨어 서버입니다. 주요 기능으로 범용적인 REST API 개발해 서비스 할 수 있으며, 엔터프라이즈 데이터베이스 제공, 통합 미들웨어 역할 수행, IoT 엣지웨어(사물인터넷 정보 수집) 등의 기능과 서비스를 모니터링 및 관리할 수 있는 웹 콘솔 서비스를 제공합니다. 

무료로 제공되는 추가혜택: 동봉된 싱글 사이트 RAD 서버 라이선스에 의해 단일 위치(single location)에 한해 BeaconFence를 배포할 수 있습니다.(사용자 및 면적 제한 없음)

→ 자세히 보기: http://tech.devgear.co.kr/438369

 

 


설치 기능이 더욱 강화되었습니다 (다크 테마 지원, 플랫폼 선택 설치 가능) 

□ 설치 기능 강화

IDE의 다크 테마가 설치 프로그램에도 적용되었습니다. 혹시 설치 중 선택하지 못한 플랫폼 또는 기능을 추가하려면 IDE의 Tools > Manage Platforms... 메뉴를 선택해 플랫폼 및 기능을 추가할 수 있습니다. Starter 에디션이 설치된 환경에서도 손쉽게 상위 에디션으로 업그레이드 할 수 있습니다.

→ 자세히 보기: http://tech.devgear.co.kr/438385

 

 


FireDAC BatchMove 아키텍처에 TFDBatchMoveJSONWriter 컴포넌트가 추가되었습니다.

□ 데이터셋(TDataSet)과 JSON 매핑 지원

RAD 스튜디오 10.2.2에서 FireDAC BatchMove 아키텍처에 TFDBatchMoveJSONWriter 컴포넌트가 추가되었습니다. 이 컴포넌트는 TData 에서 JSON 데이터를 쉽게 매핑할 수 있습니다. 원하는 필드 이름을 정의하고, JSON 형식을 여러 방법으로 설정합니다. 

최근 빈번히 사용되는 REST API 연동과 다양한 JSON 데이터를 익숙한 데이터셋형식으로 손쉽게 사용할 수 있습니다.

→ 자세히 보기: http://tech.devgear.co.kr/438385

 

 


Firebird(파이어버드) 기능이 개선되었습니다.

□ Firebird(파이어버드) 개선 사항

Direct I/O 백업 기능 지원을 위해 새로운 Direct 속성 추가 
→ 자세히 보기: http://tech.devgear.co.kr/431411

 


MySQL 기능이 개선되었습니다.

□ MySQL v 5.7 지원

 

→ 자세히 보기: http://tech.devgear.co.kr/431411

 


MariaDB 기능이 개선되었습니다.

□ MariaDB v 5.5 이상 지원

 

FireDAC의 MySQL 노드를 사용하여 MariaDB에 연결합니다. 
→ 자세히 보기: http://tech.devgear.co.kr/431411

 


TFDMemTable 컴포넌트가 개선되어 설계 시점에서 TFDMemTable 데이터 셋을 편집할 수 있습니다.

□ TFDMemTable 개선

  

TFDMemTable 컨텍스트 메뉴에 컴포넌트 데이터를 편집하여 양식에 저장할 수 있는 Edit DataSet ... 항목을 제공합니다. 데이터는 런타임에서도 사용할 수 있습니다 (참고: Edit DataSet ...을 사용하기 전에 TFDMemTable.FieldDefs에 대한 필드 정의를 지정하거나 영구 필드를 만들어야 합니다). 
→ 자세히 보기: http://tech.devgear.co.kr/431411

 


VCL의 TDBImage가 JPEG과 PNG 그래픽 형식을 추가 지원합니다.

□ TDBImage JPEG과 PNG 그래픽 형식 지원

→ 자세히 보기: http://tech.devgear.co.kr/431411

 


Blob 형식의 데이터를 클래스 형식 또는 문자열로 표현할 수 있습니다.

□ Blob Field Display 옵션 강화

 

DisplayValue로 표시 형식을, DisplayWidth로 표시 길이를 지정할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/431411

 


64-bit 리눅스에서 네이티브 HTTP 클라이언트 라이브러리(libCurl)를 지원합니다.

□ HTTP 클라이언트에서 개선된 비동기 지원

→ 자세히 보기: http://tech.devgear.co.kr/431498

 


64-bit 리눅스에 대한 표준 RTL 경로 기능 지원을 제공합니다.

□ 64-bit 리눅스를 위한 RTL 지원

표준 시스템 함수, 스트림 및 IOUtils 유닛을 사용하여 리눅스 파일 시스템을 지원합니다. 또한 64-bit 리눅스에 대한 표준 RTL 경로 기능 지원을 제공합니다.
→ 자세히 보기: http://tech.devgear.co.kr/431498

 


RAD서버가 다중 테넌시를 지원합니다.

□ RAD 서버 다중 테넌시 지원

 

다중 테넌시 지원을 사용하면 하나의 RAD 서버 데이터베이스 연결을 사용하는 단일 RAD 서버 인스턴스가 분리된 다중의 테넌트를 지원할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/431498

 


앱 테더링 기능이 개선되었습니다.

□ 앱 테더링 속성 추가

TTetheringManager와 TTecheringProfile의 새로운 SynchronizeEvents 속성은 메인 스레드와의 이벤트 동기화를 제어합니다. 이제 관리자와 프로파일은 이벤트 핸들러가 메인 스레드에서 실행되는지 여부를 제어할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/431498

 


 

■ 새로운 IDE 기능(10.2 도쿄)

IDE에서 기존의 회색 테마 외에도 다크테마를 추가했습니다. 야간 작업 또는 오랫동안 작업 시 눈의 피로를 줄일 수 있습니다.

□ 다크 테마와 라이트 테마 지원

IDE 데스크탑 툴바에서 "Dark" 또는 "Light"로 테마를 변경할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/delphi_news/431419

 


기본 컴포넌트의 아이콘들이 전체적으로 심플하고 모던하게 변경되었습니다.

□ 기본 컴포넌트 아이콘 변경

  
→ 자세히 보기: http://tech.devgear.co.kr/delphi_news/438339

 

 


IDE의 시작페이지가 개선되어 다양한 메뉴를 바로 접근할 수 있습니다. 

□ 시작 페이지 업데이트

IDE의 시작페이지가 개선되어 다양한 메뉴를 바로 접근할 수 있습니다. 이번에 추가된 이벤트 화면을 통해 향후 진행되는 웨비나와 행상정보를 확인할 수 있습니다. 유투브 채널의 비디오 항목을 통해 다양한 기술을 확인할 수 있습니다.

→ 자세히 보기: http://tech.devgear.co.kr/438385

 

 


View 메뉴가 분류별로 재배치되어 더 빠르게 메뉴를 찾을 수 있습니다.

□ View 메뉴 분류별로 재배치 개선

  

<x-object Inspector, Structure, Messages 등의 도구 창은 Tool Windows 하위 메뉴로 이동하였으며, 새 Editor 하위 메뉴에는 편집기의 컨텍스트 메뉴에 있는 여러 가지 편집기와 유용한 기능이 포함되어 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/delphi_news/431419

 


코드 에디터 탭의 컨텍스트 메뉴에 “Show in Explorer” 메뉴가 추가되었습니다.

□ 코드 에디터 탭에 “Show In Explorer” 추가: 편집 중인 파일 위치의 탐색기 바로 열기 가능

 

코드 에디터 탭에 추가된 “Show In Explorer” 메뉴를 이용해 편집 중인 파일 위치의 탐색기를 바로 열 수 있습니다. 프로젝트 매니저에 있는 “Show In Explorer” 메뉴는 프로젝트 파일 위치의 탐색기를 바로 열 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/delphi_news/431419

 


 

■ 새로운 VCL 기능 (10.2 도쿄)

새로운 VCL 컨트롤 4종을 사용할 수 있습니다.

□ 새로운 VCL 컨트롤 - TCardPanel

TCardPanel은 여러장의 카드를 관리하는 패널 컴포넌트입니다. 한번에 하나의 카드만 표시되며, 메소드(PreviousCard, NextCard, ActiveCard, ActiveCardIndex)를 호출해 카드를 전환할 수 있습니다. 

각 카드는 다른 컨트롤들을 포함하는 컨테이너 역할을 합니다. TCardPanel 컴포넌트를 제스처(TGestureManager)와 연결해 스와이프 시 카드를 전환하는 등으로 활용할 수 있습니다.

→ 자세히 보기: http://tech.devgear.co.kr/438358

 

 


□ 새로운 VCL 컨트롤 - TStackPanel

 

TStackPanel은 컨트롤들을 담는 컨테이너로, 컨트롤들의 자체 크기를 유지하며 수직 또는 수평으로 정렬할 수 있습니다. 컨트롤 모두를 대상으로 위치(왼쪽, 중안, 오른쪽, 채우기)를 지정할수도, 개별 컨트롤 마다 위치를 지정할 수 있습니다.

→ 자세히 보기: http://tech.devgear.co.kr/438358

 

 


□ 새로운 VCL 컨트롤 - TDatePicker / TTimePicker

  

윈도우 10 룩앤필을 제공하는 새로운 형식의 날짜 및 시간 선택 컨트롤입니다. 날짜 포맷(DateFormat)과 시간 포맷(TimeFormat)을 직접 지정할 수 있어 원하는 날짜 형식으로 제공가능합니다. 드롭다운 메뉴의 갯수 지정, OK/Cancel 버튼 표시, 분단위 증가량 등을 사용자 지정할 수 있습니다. 이 컴포넌트들은 자체적으로 윈도우즈10 룩앤필을 제공하며, 윈도우즈 7과 윈도우즈8에서도 동일한 윈도우즈10 룩앤필을 지원합니다.

→ 자세히 보기: http://tech.devgear.co.kr/438358

 

 


고 해상도(DPI)를 지원합니다.

□ 고 해상도(DPI) 지원 

 

  • ? 폼의 경계는 WM_DPICHANGED 메시지에 대한 응답으로 올바르게 조정됩니다.
    ? 시스템에 해상도가 다른 여러 모니터가 있는 경우, 적합한 배율로 폼이 열립니다.
    ? 해상도가 다른 모니터 간에 폼을 이동할 때 컨트롤 위치가 동일하게 유지됩니다.
    ? 폼 상속에서 몇 가지 이슈가 해결되었습니다. 계승된 폼에서 ParentFont가 true로 설정된 패널 위에 컨트롤들이 배치될 때 정확한 포트 사이즈를 사용할 수 있습니다. TListView 컬럼 사이즈는 상속된 폼에서 그대로 유지됩니다.

→ 자세히 보기: http://tech.devgear.co.kr/delphi_news/431419

 

 


\

 

■ 새로운 IDE 기능(10.1 베를린)

폼 디자이너 화면을 분리해 여러 폼화면을 동시에 보고 편집할 수 있습니다.

□ 폼 디자이너 분리

델파이 7 등과 같이 폼 디자이너 화면 여러개를 동시에 보고, 편집할 수 있습니다. 이제 멀티 모니터를 더욱 적극적으로 활용할 수 있습니다. 분리된 폼디자이너를 사용하려면, Tools > Options > Form Designer > Embedded designer 옵션을 변경하면 됩니다. 변경된 내용은 IDE 재시작시 적용됩니다. 
→ 자세히 보기: http://tech.devgear.co.kr/delphi_news/421500

 


설치 작업이 개선되어 원하는 기능만 신속히 설치, 변경할 수 있습니다.

□ 설치 작업 개선

 

설치 작업이 개선되어 설치시간을 단축되고, 설치 용량도 줄일 수 있게 되었습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/delphi_news/421515

 


ListView 레이아웃을 입맛에 맞게 변경할 수 있습니다.

□ ListView 아이템 디자이너 개선

 

RAD Studio 10.1 베를린에서 개선된 ListView 아이템 디자이너를 통해 ListView 아이템을 여러분들 입맛에 맞게 변경할 수 있습니다. 그리고, ListView 아이템에 원하는 항목을 직접 추가할 수 있는 DynamicAppearance 외관이 추가되어 원하는 레이아웃을 설정할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/delphi_news/421584

 


 

□ Dynamic Appearance

 

ListView 컴포넌트의 ItemAppearance 속성 중 DynamicAppearance를 선택하면, 원하는 ListView 아이템의 하위 객체를 추가할 수 있습니다. 추가된 항목은 DesignMode에서 위치 및 크기 등을 조정해 원하는 레이아웃을 구성할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/delphi_news/421584

 


스타일 디자이너에 미리보기, 클립보드 기능등이 강화되어 더욱 사용하기 편리해 졌습니다.

□ 스타일 디자이너(Style Designer) 개선

스타일 디자이너는 UI 컨트롤의 외관을 여러분들이 원하는 스타일로 변경(Customizing)할 수 있는 IDE에 내장된 도구입니다. TStyleBook 컴포넌트를 더블클릭하거나, UI 컴포넌트의 우측 마우스 "Edit Custom Style" 또는 "Edit Default Style" 메뉴를 선택해 UI 컴포넌트의 외관을 변경할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/delphi_news/421717

 


Dialog 사용법이 상당부분 변경되고, 기능이 추가되었습니다.

□ 메소드 변경

많이 사용하는 MessageDlg, ShowMessage, InputBox, InputQuery 등이 새로운 메소드로 많이 변경 되었습니다. Async 와 Sync 형태로 체계화 되었고 기존 함수들은 컴파일시 에러는 안나지만 비정상 작동합니다. 
→ 자세히 보기: http://tech.devgear.co.kr/delphi_news/422020

 


TBufferedFileStream을 이용해 TFileStream 보다 더 빠르게 파일을 읽고, 쓸수 있습니다.

□ 버퍼를 이용한 파일 스트림 - TBufferedFileStream

 

버퍼링을 지원하는 파일스트림을 이용해 파일 I/O 작업을 더 빠르게 진행할 수 있는 TBufferedFileStream이 RAD Studio 10.1 베를린에 추가되었습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/delphi_news/422069

 


퀵에디트(QuickEdits) 메뉴가 추가되었습니다.

□ 새로 추가된 쿽에디트 메뉴를 통해 손쉽고, 빠르게 화면을 제작할 수 있습니다.

 

→ 자세히 보기: http://tech.devgear.co.kr/delphi_news/427298

 


 

■ 새로운 VCL 기능(10.1 베를린)

윈도우 태스크바 알림 뱃지를 제어할 수 있습니다.

□ RAD 스튜디오 베를린에서는 윈도우 10 알림기능을 지원합니다. 

 

윈도우 10주년 업데이트에서는 아래 그림과 같이 알림 아이콘에 알림 뱃지를 포함합니다. 그에 맞춰 베를린 업데이트 1에서는 VCL과 파이어몽키 애플리케이션에서 알림은 물론 알림 뱃지를 제어할 수 있게 업데이트 되었습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/delphi_news/425596

 


개발한 애플리케이션을 윈도우 10 스토어에 배포할 수 있습니다.

□ 데스크탑 브릿지 기술을 이용해 윈도우 10 스토어에 배포를 지원합니다.

 


→ 자세히 보기: http://tech.devgear.co.kr/delphi_news/427290

 


새로운 윈도우 10 스타일을 적용할 수 있습니다.

□ 새로운 윈도우 10 스타일 3종(다크블루, 그린, 퍼플)을 추가 제공합니다.

 

→ 자세히 보기: http://tech.devgear.co.kr/delphi_news/427295

 


윈도우 10 캘린더를 활용할 수 있습니다.

□ 추가된 캘린더 컴포넌트(2종)를 이용해 윈도우 10 룩앤필을 제공할 수 있습니다.

 

→ 자세히 보기: http://tech.devgear.co.kr/delphi_news/427301

 


 

■ 새로운 FMX 기능(10.1 베를린)

TGrid 네이티브 렌더링 지원 - iOS

□ TGrid가 네이티브 랜더링을 지원해 더 부드럽고 강력한 기능을 제공합니다.

TGrid의 ControlType 속성을 변경해 스타일과 플랫폼 렌더링을 선택할 수 있습니다. ControlType에서 플랫폼을 선택한 경우, 코코아와 같은 네이티브 SDK를 이용해, 부드러운 네이티브 스크롤 및 성능을 제공합니다. ControlType에서 스타일을 선택한 경우, GPU 기본 렌터링을 활용하며, 보너스 팩에 포함된 스타일 또는 프리미엄 스타일을 사용해 사용자 정의 UI 스타일을 구현할 수 있습니다. (TGrid 네이티브 랜더링 기능은 현재 iOS만 지원합니다.) 
→ 자세히 보기: http://tech.devgear.co.kr/delphi_news/425609

 


폼 디자이너 화면을 분리해 여러 폼화면을 동시에 보고 편집할 수 있습니다.

□ 개발중인 앱의 디자인을 장치에서 실시간으로 확인하며 개발할 수 있습니다.

FireUI 앱 미리보기는 폼 디자이너에서 작업 중인 화면을 여러분의 아이폰, 안드로이드 폰, 윈도우 PC, 맥을 통해 실시간으로 디자인을 확인할 수 있는 기능입니다. 폼 디자이너의 변경사항은 연결된 실시간으로 장치에 반영됩니다. 이 기능은 기본으로 내장된 앱 테더링 기능을 이용합니다. 
→ 자세히 보기: http://tech.devgear.co.kr/delphi_news/421580

 


연락처 컴포넌트(TAddressBook)로 연락처 정보를 읽고 쓸수 있습니다.

□ 연락처 컴포넌트

 

TAddressBook 컴포넌트를 이용해 iOS와 안드로이드 연락처를 읽고, 새로운 연락처를 추가하고, 기존 연락처를 변경하거나 삭제할 수 있습니다. 그리고 연락처 그룹을 추가/삭제할수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/delphi_news/421632

 


 

■ 새로운 IDE 기능(10 시애틀)

IDE 메모리 개선으로 더 큰 프로젝트를 더 빠르게 코딩하고, 컴파일 할 수 있습니다.

□ IDE 메모리 개선

RAD Studio 10 시애틀의 IDE와 내장된 컴파일러는 이전 버전(XE8)에 비해 2배의 메모리를 사용할 수 있습니다. 새롭게 재설계된 컴파일러의 유닛 캐싱 매커니즘은 가용 메모리가 부족한 경우 오래된 메모리를 해제해 메모리를 사용하도록 개선되었습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/416097

 


 

IDE가 멀티-모니터를 지원해 여러 모니터에 맞춰 개발환경 레이아웃을 구축할 수 있습니다.

□ IDE 멀티 모니터 지원

 

폼과 패널을 다른 모니터에 배치해 더욱 생산성 있는 개발환경 레이아웃을 구축할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/415012

 


 

오브젝트 인스펙터에 필터링 기능이 추가되 속성 및 이벤트 찾기가 쉬워졌습니다.

□ 오브젝트 인스펙터 필터링

 

폼과 패널을 다른 모니터에 배치해 더욱 생산성 있는 개발환경 레이아웃을 구축할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/415038

 


 

논비주얼 컴포넌트를 감출수 있어 화면 디자인이 더 편리해 집니다.

□ 논비주얼 컴포넌트 감추기/보이기

 
→ 자세히 보기: http://tech.devgear.co.kr/415038

 

 


 

스트럭처 뷰의 컴포넌트 목록에 아이콘이 표시되어 식별이 쉬워집니다.

□ 스트럭처 뷰 아이콘 표시

 

→ 자세히 보기: http://tech.devgear.co.kr/415038

 

 


 

작업 중 비정상 종료 시 저장되지 않은 작업을 복구할 수 있습니다.

□ File Recovery

IDE는 저장하지 않은 작업을 주기적으로 임시위치에 저장하고, 비정상 종료 발생 시 복구를 지원합니다. 
→ 자세히 보기: http://tech.devgear.co.kr/416073

 


 

클래스 선언부와 구현부 메소드의 파라메터를 손쉽게 동기화 할 수 있습니다.

□ Sync Prototypes

 

클래스에 구현된 메소드의 선언부와 구현부의 파라메터를 동기화할 수 있습니다. 코드에디터의 팝업 메뉴(Sync Prototypes) 또는 단축키(Ctrl + Shift + Alt + P)로 사용할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/415038

 

 

■ 새로운 VCL 기능 (10 시애틀)

윈도우 10 가이드라인에 맞는 애플리케이션을 만들 수 있습니다.

□ 윈도우 10 공식지원

 

마이크로소프트 윈도우 10, 윈도우 8, 윈도우7 API 용 윈도우 SDK를 지원합니다. 클래식 Win32/Win64와 WinRT API 모두 호출할 수 있습니다. 

 


 

윈도우 10 알림 기능을 구현할 수 있습니다.

□ 윈도우 10 알림센터

 

NotificationCenter 컴포넌트를 활용해 윈도우 10 알림 기능을 구현하고 사용자의 알림 선택 이벤트를 받아 처리할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/414873

 


 

윈도우 10 계약 기능을 구현할 수 있습니다.

□ 윈도우 10 계약

 

SharingContract 컴포넌트를 활용해 다른 윈도우 10 애플리케이션과 데이터를 공유할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/414873

 


 

VCL 스타일을 적용해 쉽고, 빠르게 윈도우 10 최신 룩앤필을 적용할 수 있습니다.

□ 윈도우 10 VCL 스타일

 

윈도우 10 모던 UI VCL 스타일 3종(Windows 10, Windows 10 Blue, Windows 10 Dark)을 제공합니다. Application Appearance(Project > Options > Application > Appearance) 옵션에서 윈도우 10 스타일을 추가하고 선택할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/414848

 


 

윈도우 10 스타일로 작업 진행 중을 표시할 수 있습니다.

□ TActivityIndicator 컴포넌트

 

윈도우 10 스타일로 작업 진행 중임을 표시할 수 있습니다. 3종류의 Indicator Type을 지원하며, 지연시간(Frame Delay), Indicator크기, 색상(흑/백)을 지정할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/414834

 


 

윈도우 10 스타일의 에디터와 검색기능을 함께 제공할 수 있습니다.

□ TSearchBox 컴포넌트

 

검색 버튼을 제공하는 Edit입니다. 검색 버튼을 누르거나 엔터키를 누르면 OnInvokeSearch 이벤트가 발생됩니다. 
→ 자세히 보기: http://tech.devgear.co.kr/414834

 


 

윈도우 10 스타일로 컨트롤을 정렬할 수 있는 새로운 레이아웃 컴포넌트를 제공합니다.

□ TRelativePanel 컴포넌트

 

RelativePanel은 자식 컨트롤을 다른 자식 컨트롤 또는 부모 패널을 기준으로 위치하고 정렬할 수 있는 레이아웃 패널입니다. 
→ 자세히 보기: http://tech.devgear.co.kr/414834

 


 

윈도우 10 스타일의 스위치 컴포넌트 윈도우 10 룩앤필을 제공할 수 있습니다.

□ TToggleSwitch 컴포넌트

 

윈도우 10 룩앤필의 스위치입니다. TToggleSwitch와 TCheckBox를 화면에 맞게 적절히 사용할 수 있습니다. On/Off 캡션과 캡션위치, 색상등을 설정할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/414834

 


 

VCL 스타일이 공용 대화상자와 웹브라우저에 추가 적용되어 더 일관된 스타일을 제공할 수 있습니다.

□ VCL 스타일 개선

 

→ 자세히 보기: http://tech.devgear.co.kr/414855

 

 


 

고해상도 모니터와 멀티 모니터를 지원합니다.

□ 고해상도(4K) 모니터 지원

 

프로젝트 옵션(Project > Option > Application)의 Manifest 설정으로 4K 모니터를 지원합니다. ㅁ 멀티-모니터 지원(모니터 당 DPI 지원) 해상도가 다른 멀티 모니터 환경에서 각 모니터의 설정에 따라 스케일링하는 기능인 모니터 당 DPI(Per-monitor DPI)가 적용됩니다. 이 기능은 윈도우 8.1과 윈도우 10 환경에서 적용됩니다.(운영체제에서 지원필요) 
→ 자세히 보기: http://tech.devgear.co.kr/416060

 

 

■ 새로운 FMX 기능 (10 시애틀)

데스크탑용 비주얼 컨트롤에 롤오버되는 힌트를 표시할 수 있습니다.

□ 컨트롤 힌트

 

파이어몽키 UI 컨트롤의 Hint속성과 ShowHint 속성을 이용해 마우스 롤오버시 표시되는 힌트를 추가할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/415125

 


 

윈도우 비주얼 컨트롤을 네이티브로 랜더링할 수 있습니다.

□ 파이어몽키 네이티브 윈도우 컨트롤

 

TEdit, TMemo, TPresentedScrollBox(신규) 세가지 컨트롤을 파이어몽키 스타일과 네이티브로 표시할 수 있습니다. ControlType 속성을 Styled와 Platform을 선택해 적용할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/415125

 


 

클립보드에 이미지를 포함해 복사하고 붙여넣을 수 있습니다.

□ 이미지를 지원하는 클립보드

 

→ 자세히 보기: http://tech.devgear.co.kr/415125

 

 


 

구글 매터리얼 디자인 가이드에 따른 터치 애니메이션을 지원합니다.

□ 안드로이드 터치 애니메이션

 

안드로이드 플랫폼에는 구글 매터리얼 디자인 가이드에 따른 터치 애니메이션을 제공합니다. 이 애니메이션은 기본으로 활성화 되어 있으며, TListBox와 버튼(TButton, TConnerButton, TSpeedButton 등)에 포함됩니다. → 자세히 보기: http://www.devgear.co.kr/products/rad-studio/featurelist http://docwiki.embarcadero.com/RADStudio/Seattle/en/What%27s_New#Touch_Animation_for_Android

 


 

백그라운드에서 돌아가는 안드로이드 서비스 앱을 개발할 수 있습니다.

□ 안드로이드 서비스 개발

 

RAD Studio IDE를 통해 안드로이드 서비스를 지원합니다. 프로젝트 위저드를 통해 안드로이드 서비스를 생성하고, 기존 안드로이드 앱에 안드로이드 서비스를 추가할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/415128

 


 

안드로이드 플랫폼에서 모든 종류의 인텐트 액션을 처리할 수 있습니다.

□ 안드로이드 인텐트 강화

10 시애틀에서는 RAD Studio 내장 Java 내장 라이브러리 Androidapi.JNI.Embarcadero를 사용해 모든 종류의 인텐트 액션을 처리할 수 있도록 애플리케이션을 등록할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/416115

 


 

블루투스 LE를 지원하는 디바이스에서 비콘 광고데이터를 발생할 수 있습니다.

□ TBeaconDevice 컴포넌트

 

TBeaconDevice 컴포넌트는 블루투스LE를 지원하는 장치에서 비콘 광고데이터 신호를 발생해 비콘 장치를 시뮬레이션 할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/415128

 


 

스타일북 컴포넌트에 여러개의 플랫폼 스타일을 담을 수 있습니다.

□ 파이어몽키 스타일 디자이너 강화

 

TStyleBook 컴포넌트는 플랫폼 별로 별도의 스타일을 설정할 수 있습니다. 이제 하나의 TStyleBook으로 여러 플랫폼의 스타일을 관리할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/415102

 

 

■ 새로운 RTL 기능 (10 시애틀)

WinRT API 호출을 지원합니다.

□ WinRT API 호출 지원

40여개의 오브젝트 파스칼용 인터페이스가 유닛에 구현되어 Win32/Win64 뿐아니라 WinRT API 모두 호출할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/414873

 


 

NoSQL DB 중 첫번째로 몽고DB를 지원합니다.

□ 몽고DB 지원

 

FireDAC NoSQL 드라이버로 몽고 DB를 지원합니다. 몽고 DB 전용 데이터셋(TFDMongoDataSet, TFDMongoQuery, TFDMongoPipelie)을 제공을 위해 MongoDB API 웨핑(Wrapping) 클래스를 제공합니다. 
→ 자세히 보기: http://tech.devgear.co.kr/411080

 


 

스트리밍 방식으로 JSON을 처리할 수 있는 Reader와 Writer가 추가되었습니다.

□ 스트리밍 방식의 JSON 처리

추상화된 TJsonReader, TJsonWriter 클래스 기반으로 JSON 텍스트 지원을 위한 TJsonTextReader와 TJsonTextWriter 클래스가 포함되었습니다. 바이너리(Binary) JSON 지원을 위해 TBsonReader와 TBsonWriter 클래스가 포함되었습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/416103

 


 

윈도우 10 기반으로 커스텀 스타일을 제작할 수 있습니다.

□ 윈도우 10 스타일(Windows Modern Style) 제공

 

Bitmap Style Designer(Tools > Bitmap Style Designer)에서 윈도우 10 기반으로 여러분만의 스타일을 제작할 수 있습니다. New Modern (Dark)VCL Style로 VCL 용 윈도우 10 스타일을, New Windows Modern (Dark)Style로 FMX용 윈도우 10 스타일을 제작할 수 있습니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/Seattle/en/Bitmap_Style_Designer

 

 

■ 새로운 언어와 컴파일러 기능 (10 시애틀)

32비트 윈도우, 64비트 윈도우 프로젝트에서 표준 C++11 코드를 공유할 수 있습니다.

□ Win32용 C++11 CLANG 기반 컴파일러(bcc32c)

 

32비트 윈도우, 64비트 윈도우 그리고 안드로이드, iOS, OS X에서 표준 C++ 코드를 공유할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/415119

 

 

 

델파이 2005~XE8에 추가된 기능들

 

 

■ 새로운 IDE 기능

[XE8~] 코드 분석 정보를 보면, 품질이 보입니다. 코드의 품질을 향상 시킬 수 있습니다.

□ 코드 품질을 추적하는 코드 분석기

 

코드의 라인 수, 파라미터의 수, 중첩된 구문들, 순환 복잡도(Cyclomatic Complexity) 등 몇 가지의 코드 분석 통계를 제공합니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Code_Analysis

 


 

[XE8~] 여러분의 개발 패턴을 파악해 개발 생산성을 높일 수 있습니다.

□ 개발자에게 프로젝트 통계 제공

 

활동 추적을 통해 생산성의 명확한 그림을 제공합니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Project_Statistics

 


 

[XE8~] 번거로운 컴포넌트 검색과 설치를 손쉽게 할 수 있습니다.

□ 겟잇(Getit)-패키지 관리자

 

갯잇 패키지 관리자를 통해 소스코드 라이브러리, 컴포넌트와 기타 기능들을 엠바카데로 갯잇 서버에서 손쉽게 찾고, 다운로드 받고 업데이트할 수 있습니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/GetIt

 


 

[XE8~] 클립보드 이력에 클립보드 내용을 유지, 개발자가 이전에 복사했던 내용을 붙여넣기 가능

□ 클립보드 히스토리

 


→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Clipboard_History

 


 

[XE8~] 동일한 붙여넣기를 여러 소스코드 줄에 한번에 붙여 넣을 수 있습니다.

□ 다중 붙여 넣기

 


→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/How_to_Use_Multipaste_Tool_(Castalia)

 


 

[XE8~] 코드가 중단되는 지점을 시각적으로 알 수 있습니다.

□ 코드 흐름 강조

 

코드를 건너뛰는 흐름을 코드 에디터 안에서 눈에 띄도록 표시합니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Castalia_Overview

 


 

[XE8~] 복잡한 For문, If문의 시작과 끝을 한눈에 알아볼 수 있습니다.

□ 구문 강조표시

 

구문의 구조가 바로 파악되도록 표시 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Castalia_Overview

 


 

[XE8~] 유닛 테스트 마법사를 통해 쉽고 빠르게 유닛테스트와 유닛테스트 프로젝트 생성할 수 있습니다.

□ 유닛 테스트 도구 - DUnitX

 

File > New > Other > Delphi Projects > DUnitX로 이용할 수 있습니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/DUnitX_Overview

 


 

[XE5~] 마이그레이션 시 컴포넌트 변경, 속성변경, 유즈절 정리등의 수작업을 줄여줍니다.

□ reFind.exe 마이그레이션 시 수작업을 줄여주는 도구

 

reFind는 정규표현식 패턴을 이용해 텍스트파일의 문자열을 찾아 바꿔주는 커맨드라인 도구입니다. reFind는 델파이 소스코드(*.PAS)와 폼파일(*.dfm, *.fmx)의 속성과 유닛명을 일괄적으로 치환(replace)하거나 제거 할 수 있어 마이그레이션의 수작업을 대폭 줄여줍니다. 
→ 자세히 보기: http://tech.devgear.co.kr/410746

 


 

[XE5~] RESTful 방식의 웹서비스를 분석하고 분석내용이 포함된 컴포넌트를 복사해 웹서비스 연동 애플리케이션을 신속하게 개발할 수 있습니다.

□ REST 디버거: RESTful 방식의 웹서비스를 분석할 수 있는 도구

 

RESTful 방식의 웹서비스에 요청, 응답, 인증, 연결 정보를 입력 해 웹서비스 인터페이스를 분석하고 검증할 수 있는 도구입니다. 분석한 결과는 Copy Component 버튼으로 클립보드로 복사 후 델파이 프로젝트에 붙여넣기하면 분석한 결과가 포함된 REST Client 컴포넌트 셋이 복사되어 개발에 사용할 수 있습니다.
REST 디버거는 Tools > REST Debugger 메뉴로 이용할 수 있습니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/REST_Debugger_Tool

 


 

[XE~] SVN, Git, Mercurial의 버전 관리 저장소에 연결하여 IDE 안에서 직접 체크아웃, 커밋 등을 처리할 수 있습니다.

□ 버전관리 컨트롤이 IDE 안에 통합됨

 

File > Open From Version Control 메뉴에서 소스 코드 저장소에 바로 연결할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/delphi_news/410924

 


 

[2010~] 키 입력 만으로 IDE의 모든 기능을 편리하고 신속하게 사용할 수 있습니다.

□ IDE 인사이트

 

단축키 F6(또는 Ctrl + .)을 누르면 IDE Insight에 포커스가 옮겨집니다. 이후 키워드 입력 시 키워드가 포함된 “컴포넌트, 코드 템플릿, 프로젝트, 옵션" 등의 기능을 목록에 표시합니다. 항목 중 기능을 선택하면 기능이 실행되거나 IDE에서 관련 화면으로 이동합니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/IDE_Insight

 


 

[2010~] 여러 디렉토리를 대상으로 파일의 내용을 검색할 수 있습니다.

□ 개선 Find in Files

 


→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Find_in_Files

 


 

[2010~] 규모가 큰 프로젝트를 컴파일 중에도 IDE에서 계속 작업할 수 있습니다.

□ 백그라운드 컴파일

 

컴파일 시간이 오래 걸리는 대형 프로젝트 컴파일 작업을 위해 백그라운드 컴파일 기능이 추가되었습니다. 이 기능을 이용하면 컴파일 하는 동안 코드 에디트, 리뷰 등 다른 작업들을 계속할 수 있습니다. 컴파일 하기 직전의 유닛들의 메모리 스냅샷으로 컴파일하므로 추가로 코드를 수정하더라도 컴파일에 영향을 주지 않습니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Background_Compilation

 


 

[] 프로젝트 그룹에서 주요 프로젝트로 정렬하고, 팝업메뉴로 실행 등 더 다양한 프로젝트 매니저 기능을 이용할 수 있습니다.

□ 프로젝트 매니저 강화

 

 

  • 프로젝트 정렬 : 프로젝트와 프로젝트의 파일을 “이름, 수정일, 경로, 타입"으로 정렬
    빌드 그룹 : 빌드 그룹에서 선택(체크)된 프로젝트를 일괄 빌드/컴파일
    컨텍스트 메뉴 추가 : 버전관리 기능 메뉴, 실행(Run, Run Without Debugging) 메뉴, Show in Explorer(프로젝트 경로의 탐색기 열기) 메뉴 등이 추가

→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Options

 

 


 

[2009~] 유사한 프로젝트 옵션끼리 재분류되어 옵션을 더 빠르고, 쉽게 찾을 수 있습니다.

□ 개선된 프로젝트 옵션

 


→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Project_Manager

 


 

[2009~] 개발용 프로젝트 옵션과 배포용 프로젝트 옵션을 다르게 설정하고, 파일로 저장해 재사용 할 수 있습니다.

□ 빌드 컨피그레이션

     

빌드 컨피그레이션은 디버그 또는 릴리즈 모드에 따라 프로젝트 옵션을 별도로 설정하는 기능입니다. 별도로 설정된 옵션 값은 프로젝트 매니저의 빌드 컨피그레이션의 선택에 따라 디버그 또는 릴리즈 설정 정보를 포함해 앱이 만들어 집니다. 빌드 설정은 별도 옵션셋 파일(*.opt )로 저장하고 파일을 불러올 수 있어 다른 프로젝트에서 옵션 설정 정보를 재사용할 수 있습니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Build_Configurations_Overview

 


 

[2009~] 프로젝트에서 필요한 리소스 파일을 추가해서 사용할 수 있습니다.

□ 리소스 파일을 관리할 수 있는 리소스 매니저

 

델파이 7에서는 별도의 이미지나 폰트파일 등의 리소스를 프로젝트에 추가하려면 리소스 스크립트 파일(*.rc)을 직접 만들어 프로젝트에 추가해야 했습니다. 이제 리소스 매니저(Project > Resources and Images…)를 이용해 리소스 파일을 추가하고 프로젝트를 컴파일 하면 리소스 스크립트 파일이 자동으로 생성됩니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Resources

 


 

[]Reopen 메뉴 표시 항목 수를 조정하고 불필요한 항목을 정리 할 수 있습니다.

□ Reopen 메뉴 설정하기

 

열어본 프로젝트와 파일 표시 갯수와 불필요한 Reopen 항목을 정리 할 수 있습니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Reopen_Menu_Properties

 


 

[2009~] 필터링 검색기능 강화로 유즈절 추가가 쉬워졌습니다.

□ Use Unit

 

File > Use Unit(Alt + F11)로 Use Unit 창을 호출하고 입력창에 필터링 검색해 유즈절에 추가할 파일과 등록 영역(Interface / Implementation) 선택 해 손쉽게 유즈절에 추가할 수 있습니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Use_Unit

 


 

[2007~] 툴팔레트에서 필터링 검색으로 컴포넌트를 빠르게 찾을 수 있습니다.

□ 툴팔레트 검색

 

툴파레트 검색창에 키워드 입력 시 키워드가 포함된 컴포넌트만 목록에 표시됩니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Tool_Palette

 


 

[2005~] 사전에 등록한 템플릿으로 자주 사용하는 코드를 빠르게 완성해 코딩 생산성을 높일 수 있습니다.

□ 라이브 템플릿

     

라이브 템플릿은 템플릿(View > Templates)에 정의된 템블릿 코드를 이용해 코드의 뼈대를 자동으로 만들고 입력항목을 추가해 코드를 빠르게 완성할 수 있습니다. 여러개의 입력항목은 탭키로 이동하며, 엔터키를 눌러 입력을 완료합니다. 

템플릿 코드는 View > Templates 메뉴를 통해 관리할 수 있습니다. 여러분이 자주 사용하는 코드를 기존 템플릿 코드를 참고해 추가하면 코딩 생산성을 높일 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/411080

 


 

[2005~] 코드에디터에서 선택된 블록에서 같은 문자열을 한번에 변경할 수 있습니다.

□ Sync Edit 모드

     

코드 에디터에서 여러줄의 코드를 선택 후 왼쪽에 표시된 연필두자루 아이콘을 클릭하면 Sync Edit 모드로 변경(선택한 코드 블록의 배경색 변경)됩니다. 문자열을 클릭하면 코드 블록내의 동일한 문자열에 박스가 생기고 문자열 하나를 변경하면 같은 문자열 모두가 일괄적으로 함께 변경됩니다. 
→ 자세히 보기: http://tech.devgear.co.kr/411080

 


 

[2005~] 선택된 여러줄의 코드를 한번에 주척처리하고 주석 해제할 수 있습니다.

□ 블록 커맨드

코드 에디터에서 여러줄 선택 후 Ctrl + / 로 주석, 주석해제 할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/411080

 


 

[2005~] 코드 포맷이 맞지 않는 코드를 사전에 지정된 포맷으로 일괄 포맷적용 할 수 있습니다.

□ 코드 포맷터

     

들여쓰기나 IF, FOR문의 begin...end, 줄바꿈 등의 코드 포맷을 지정된 포맷으로 일괄적용할 수 있습니다.

  • 현재 열려진 소스에 코드 포맷 적용 : View > Format 메뉴(또는 Ctrl + D)
    프로젝트의 모든 소스코드를 한번에 코드 포맷 적용 : Project > Format project Sources… 메뉴

포맷설정은 환경설정(Tools > Options > Formatter)에서 원하는 소스포맷을 설정할 수 있습니다.
(델파이 XE 부터 프로젝트의 모든 소스스코드를 한번에 코드 포맷 적용 기능과 포맷 변경 전 확인 다이얼로그가 추가되었습니다.) 
→ 자세히 보기: http://tech.devgear.co.kr/411080

 


 

[2005~] 한눈에 변경된 라인을 알아볼 수 있습니다.

□ 체인지 바

 

변경된 코드 영역을 라인번호 옆에 표시해 줍니다. 변경이 저장된 경우 녹색으로, 저장 후 변경된 경우 노란색으로 표시됩니다. 
→ 자세히 보기: http://tech.devgear.co.kr/411080

 


 

[2005~] 주요코드에 집중할 수 있도록 코드를 접고 펼 수 있습니다.

□ 코드 폴딩

 

→ 자세히 보기: http://tech.devgear.co.kr/411080

 

 


 

[] 코드 에디터 상에서 검색 결과가 강조되어 한눈에 알아볼 수 있습니다.

□ 검색 결과 하이라이팅

 

→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Find

 

 


 

[2005~] 파일 저장 시 히스토리 파일이 생성돼 이전 작업 내용에서 변경된 부분을 비교하고 잘못 변경된 내용을 되돌릴 수 있습니다.

□ 히스토리 관리자

 

히스토리 매니저는 IDE에서 관리하는 파일버전을 표시하고 서로 비교할 수 있습니다.

  • IDE에서 저장 시 버전별로 히스토리 파일 생성
    사용자의 로컬에 변경을 저장
    작업 중인 파일에 대한 변경도 표시
코드에디터 하단의 History 탭에서 이용할 수 있습니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/History_Manager

 

 


 

[] 리팩토링으로 원래의 코드 동작을 유지하며 코드의 구조를 재구성하고 코드의 성능과 가독성을 높일 수 있습니다 .

□ 리팩토링

 

리팩토링은 원래의 코드의 동작을 바꾸지 않고 그 코드를 다시 구성하거나 변경하는데 사용할 수 있는 기술입니다. 리팩토링을 이용하면 애플리케이션 코드의 성능과 가독성을 높여주고, 코드를 간소화 및 개선할 수 있습니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Refactoring_Overview

 


 

[] 한눈에 프로젝트의 클래스 구조와 인터페이스를 파악할 수 있습니다.

□ 클래스 탐색기

 

View > Class Explorer 메뉴로 이용할 수 있습니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Class_Explorer_Overview

 


 

[] 데이터 탐색기에서 데이터베이스 연결을 쉽게 만들고 관리할 수 있습니다. 또한 데이터 소스를 프로젝트에 드래그 앤 드롭해 DB 애플리케이션을 신속하게 개발할 수 있습니다.

□ 데이터 탐색기

 

데이터 탐색기에서 테이블, 필드, 저장프로시저, 트리거, 인덱스와 같은 DB 서버 고유의 스키마 객체를 참조할 수 있습니다.
데이터 탐색기는 FireDAC과 dbExpress 연결 유형을 제공합니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Data_Explorer

 


 

[] 컨트롤 위치 이동 시 가이드라인을 제공해 배치와 정렬하기 쉬워졌습니다.

□ VCL 가이드 라인

 

→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Design_Guidelines_(VCL_Only)

 

 


 

[] 다국어를 지원하는 국제화된 애플리케이션을 만들 수 있습니다.

□ 다국어지원 도구: 국제화된 다국어 애플리케이션 만들기

 

델파이에서 다국어 지원을 위해서는 3가지 작업을 해야 합니다.

  • 다국어 지원할 언어 추가: Project > Languages > Add 메뉴를 통해 추가
    화면의 문자열 다국어 처리 : 프로젝트 매니저에서 언어 리소스 편집
    코드의 문자열 다국어 처리 : ResourceString 기반으로 문자열 사용 변경

→ 자세히 보기: http://tech.devgear.co.kr/408214

 

 

 

 

■ 새로운 VCL과 RTL 기능

[XE8~] 근거리 위치기반 사물인터넷 서비스를 개발할 수 있습니다.

□ 비콘

 

이제 비콘 컴포넌트(TBeacon)을 이용해 근거리 위치기반 서비스를 개발할 수 있습니다. 비콘은 일정 주기로 비콘식별정보와 거리를 계산할 수 있는 작업 데이터를 주변으로 송출하는 장비입니다. 
비콘은 iBeacon과 AltBeacon 2가지의 표준을 제공하며 델파이에서는 TBeacon 컴포넌트를 이용해 iBeacon과 AltBeacon을 모두 지원하며, 비콘 영역의 입출입, 근접한 비콘의 정보 등을 이벤트로 제공해 비콘을 이용한 사물인터넷 서비스를 개발할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/410888

 


 

[XE7~] 블루투스를 이용해 원격의 장치와 센서 등을 여러분의 앱과 연결할 수 있습니다.

□ 클래식 블루투스, 블루투스LE 컴포넌트

 

블루투스를 이용해 원격의 장치와 연결하고 원격 애플리케이션과 데이터를 주고 받을 수 있습니다. 델파이는 클래식 블루투스 컴포넌트와 블루투스 LE(저전력) 컴포넌트를 각각 제공합니다. 
→ 자세히 보기: http://tech.devgear.co.kr/405916

 


 

[XE7~] 윈도우 작업표시줄 아이콘의 팝업메뉴에 바로가기 메뉴를 추가할 수 있습니다.

□ TJumpList 컴포넌트

 


→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/VCL_Taskbars

 


 

[XE7~] 멀티코어 CPU를 이용해 최적의 성능을 내는 애플리케이션을 개발할 수 있습니다.

□ 병렬 커뮤팅 라이브러리 지원

델파이는 멀티코어 CPU 장비의 성능을 최대한 활용할 수 있는 병렬 컴퓨팅 라이브러리를 이용할 수 있습니다.

  • 멀티코어 CPU를 이용해 최적의 성능을 낼 수 있도록 다수의 CPU에서 병렬(페러럴)로 작업
    비동기 연산작업에 사용되어 멀티코어 컴퓨터와 장비 최대한 활용 가능
    기존 코드에 손쉽게 통합하도록 라이브러리 형태로 지원

→ 자세히 보기: http://tech.devgear.co.kr/405868

 

 


 

[XE6~] 윈도우 작업표시줄 아이콘에 애플리케이션 미리보기와 제어버튼, 진행률을 표시할 수 있습니다.

□ TTaskBar 컴포넌트

 


→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/VCL_Taskbars

 


 

[XE6~] VCL 애플리케이션에 제공하는 데이터로 손쉽게 모바일 앱으로 확장할 수 있습니다.

□ VCL 앱을 모바일앱으로 확장할 수 있는 앱테더링 컴포넌트

 

앱테더링은 VCL 애플리케이션과 모바일앱이 상호 커뮤니케이션 할 수 있도록 지원하는 컴포넌트입니다. 앱테더링을 이용해 기존의 윈도우 애플리케이션과 모바일 앱의 상호 기능 보완과 확장할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/406984

 


 

[XE5~] 새로운 양방향 데이터셋으로 멀티-디바이스 데이터 액세스 애플리케이션 개발이 더 쉽고 재미있어 집니다.

□ FireDAC - 범용 데이터 액세스 컴포넌트

 

다양한 데이터베이스를 제어할 수 있는 통합 API를 제공합니다. 데이터베이스 별 고유 기능을 사용하고, 최적의 성능을 발휘할 수 있는 DBMS 별 네이티브 데이터베이스 드라이버를 지원합니다. 
→ 자세히 보기: http://tech.devgear.co.kr/410454

 


 

[XE5~] FireDAC으로 DBMS 사용내역을 추적하고 모니터링 할 수 있습니다.

□ FireDAC 추적과 모니터링

FireDAC의 추적기능을 이용하면 애플리케이션과 데이터베이스 사이의 통신내용을 상세하게 보거나 기록할 수 있습니다. 이 추적 정보에는 이벤트 발생시간, API 호출내역, DB로 전송된 SQL, 파라메터와 필드 값, 오류와 경고 등이 기록되어 여러분의 DB 애플리케이션으 문제점을 디버깅하고 해결하는데 유용하게 사용할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/409890

 


 

[XE5~] FireDAC으로 캐쉬를 이용해 업데이트 후 DBMS에 일괄 업데이트, 취소할 수 있습니다.

□ FireDAC - 캐쉬를 이용한 업데이트

캐쉬 업데이트는 애플리케이션의 메모리 영역(즉, 데이터셋)에 업데이트 내역을 기록하고, DBMS에 한번에 업데이트하거나 일괄취소할 수 있는 기능입니다. 캐쉬 업데이트를 사용하면 작업내용을 로컬에서 관리하므로 DBMS와의 트래픽을 줄일 수 있고, 사용자는 인터넷속도와 관계없이 빠르게 작업할 수 있습니다. 그리고 부가적으로 작업이력을 확인(변경된 레코드 조회, 변경된 값 확인 등)하고, 작업을 되돌리는 기능(최종작업 되돌리기, 선택 레코드 되돌리기 등)등을 제공되는 메소드를 이용해 손쉽게 구현할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/409889

 


 

[XE5~] 30배 빠르게 복수의 데이터를 입력할 수 있습니다.

□ FireDAC - Array DML

 

FireDAC의 Array DML은 쿼리 전송 시 매개변수(Parameters)를 배열을 이용해 한번에 DBMS로 전달해 데이터 입력, 수정, 삭제 명령의 실행속도를 빠르게 하는 기능입니다. 이 방법은 DBMS와 애플리케이션 사이의 통신비용을 줄이고 DBMS 명령 요청을 줄입니다. 그 결과 실행 속도가 향상됩니다. 
→ 자세히 보기: http://tech.devgear.co.kr/409950

 


 

[XE5~] 쿼리의 결과가 많은 경우 일부 데이터만 가져오는 작업을 옵션 설정만으로 구현할 수 있습니다.

□ FireDAC 캐스캐이딩 옵션

FireDAC은 FetchOptions(DBMS에서 데이터를 어떻게 취득할지 제어하는 검색옵션), FormatOptions(DBMS의 데이터형식을 FireDAC 데이터형식으로 또는 반대로 매핑하는 형식옵션), UpdateOptions(DBMS 업데이트 전송방법을 제어하는 업데이트 옵션), ResourceOptions(시스템 리소스 사용과 데이터셋의 지속성을 제어하는 자원 옵션), TxOptions(트랜젝션 실행방법을 제어하는 트랜젝션 옵션)을 이용해 다양한 기능과 성능을 제어할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/409959

 


 

[XE5~] 오라클과 SQL서버, MySQL에서 모두 돌아가는 유연한 쿼리를 만들 수 있습니다.

□ FireDAC 커맨드 텍스트 전처리

커맨드 텍스트 전처리는 SQL 명령을 데이터베이스에 전달하기 전 파라메터를 치환하고, FireDAC 매크로 함수를 DBMS에 맞도록 치환할 수 있습니다. 대체변수(파라메터 확장을 위해 SQL 문의 일부를 치환), 이스케이프 시퀀스(한번 작성하면 서로 다른 DBMS에서 그대로 사용할 수 있는 DBMS에 의존적이지 않은 SQL문 생성), 조건부 대체(연결된 DBMS에 따라 조건부로 실행되는 SQL 문 작성)를 사용할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/409997

 


 

[XE5~] 데이터베이스 내용을 엑셀 형식의 CSV 파일로 내보내고 가져오는 기능을 구현할 수 있습니다.

□ FireDAC ETL

 

FireDAC의 ETL은 Extract, Transform, Load의 약자로 아래 역할을 합니다.

  • Extract(추출) : 같은 종 또는 이기종 데이터 소스로부터 데이터를 추출
    Transform(변환) : 쿼리 또는 분석하기 위한 데이터로 저장하기 위해 적절한 포맷과 구조로 변환
    Load(로드) : 최종 목적(데이터베이스, 더 구체적으로, 운용 데이터 저장소, 데이터 마트, 또는 데이터 창고)으로 로드

FireDAC ETL로 아래의 기능을 구현할 수 있습니다.
  • Query문으로 조회한 데이터를 엑셀에서 사용할 수 있는 CSV 파일로 내보내기
    텍스트파일의 데이터를 데이터베이스 테이블로 가져오기
    데이터베이스에서 다른 데이터베이스로 데이터 이동하기

→ 자세히 보기: http://tech.devgear.co.kr/410458

 

 


 

[XE5~] 데이터베이스 연결 없이 메모리에 데이터를 올려 데이터셋의 필터링 정렬 등의 기능을 사용할 수 있습니다.

□ FireDAC - TFDMemTable

TFDMemTable은 메모리 기반 데이터셋입니다. 즉, 데이터베이스 연결 없이 파일 데이터나 코드로 추가한 데이터를 메모리에 올려 데이터셋의 기능(필터링, 정렬 등)을 사용할 수 있습니다. TFDMemTable은 아래 기능을 할 수 있습니다. 

  • 디자인타임과 런타임 시 파일 불러오기(Load File), 파일로 내보내기(Save File), 다른 데이터셋의 데이터가져오기(Assign Data) 기능 사용
    런타임 시 파일과 스트림으로 데이터 내보내기, 불러오기 기능을 사용할 수 있으며, JSON, XML, Binary 포맷 선택 가능
    멀티티어 애플리케이션(REST 클라이언트, 데이터스냅 등)에서 수신 데이터를 보관하는 데이터셋 역할
    내부에서 데이터 보관할 시 컬랙션객체(TList, TStringList) 대신 메모리테이블 사용 시 데이터셋의 기능(UI 컨트롤에 데이터바인딩, Local SQL, 필터링, 정렬 등)을 사용해 다양한 기능 손쉽게 구현가능
    Local SQL을 이용해 메모리테이블(데이터셋)에서 쿼리 실행
    ETL 기능으로 다른 데이터소스(텍스트, CSV 등)에서 가져온 데이터 보관

→ 자세히 보기: http://tech.devgear.co.kr/410575

 

 


 

[XE5~] DB에서 가져온 데이터를 대상으로 다시 SQL 쿼리를 실행할 수 있습니다.

□ FireDAC - LocalSQL

Local SQL은 DB로부터 애플리케이션의 메모리 상으로 가져온 데이터(데이터셋: TDataSet을 상속받은 객체)를 대상으로 다시 SQL 쿼리를 할 수 있는 기능으로 아래와 같이 사용할 수 있습니다.

  • 여러 이기종 DB들에 대한 쿼리 : 다양한 DB에서 가져온 여러 데이터셋을 대상으로 원하는 데이터 쿼리(조인 가능) 
    인 메모리 데이터베이스 : TFDMemTable은 메모리상에 있는 데이터셋의 역할
    오프라인 모드 쿼리 : 원격 DB에 연결할 수 없는 경우에도, 이미 가져온 데이터셋을 대상으로 쿼리 실행
    데이터스냅 클라이언트 쿼리 : 데이터스냅 서버(미들웨어)에서 받아온 데이터셋을 대상으로 쿼리 실행
    간편한 마이그레이션 : 애플리케이션 내에서 써드파티를 통해 가져온 데이터셋 객체를 대상으로 쿼리 실행

→ 자세히 보기: http://tech.devgear.co.kr/410465

 

 


 

[XE3~] 윈도우8의 메트로 UI 모양과 느낌의 애플리케이션을 개발 할 수 있습니다.

□ 메트로 UI 애플리케이션 개발

 

화면 터치에 최적화된 메트로 UI 애플리케이션을 만들 수 있습니다. File > New > Other 메뉴에서 Delphi Project > VCL Metropolis UI Application 으로 메트로 UI 애플리케이션 개발을 시작할 수 있습니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Developing_Metropolis_UI_Applications

 


 

[XE2~] VCL 애플리케이션의 외관을 별도 코드 추가없이 멋진 현대식 스타일을 적용할 수 있습니다.

□ VCL 스타일

     

VCL 스타일은 VCL 애플리케이션의 모든 컨트롤, 폼의 테두리, 메뉴, 시스템 메뉴까지 일관되게 현대식 스타일을 적용할 수 있습니다. 별도의 코드 추가나 컴포넌트 추가 없이 프로젝트 옵션의 Appearance 화면(Project > Options > Application > Appearnace)에서 스타일 선택 및 적용할 수 있습니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/VCL_Styles_Overview

 


 

[XE2~] 여러분만의 VCL 스타일을 만들 수 있습니다.

□ Bitmap Style Designer

 

Bitmap Style Designer는 VCL과 파이어몽키 스타일 파일 저작 도구입니다. File > New > VCL Style 메뉴로 새로운 스타일을 만들거나, Open 메뉴로 기존의 스타일 파일을 불러와 편집해 새로운 스타일 파일을 만들 수 있습니다. Tools > Bitmap Style Designer 메뉴를 통해 사용할 수 있습니다. (기본 제공되는 VCL 스타일 파일의 경로는 C:\Users\Public\<x-documents\Embarcadero\Studio\16.0\Styles(XE8 기준) 입니다.) 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Bitmap_Style_Designer

 


 

[XE~] 정규표현식을 이용하는 프로그램을 개발할 수 있습니다.

□ TRegEx 클래스로 정규표현식 지원

 

TRegEx 클래스를 이용해 정규표현식을 지원하니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/Libraries/XE8/en/System.RegularExpressions.TRegEx

 


 

[2010~] 경로, 파일, 디렉토리 관련된 함수 사용이 편리해 졌습니다.

□ System.IOUtils 클래스

TDirectory, TPath, TFile 등의 클래스들을 지원하여 로컬 디스크상의 디렉토리, 파일들을 훨씬 간단하게 검색, 액세스 가능합니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/Libraries/XE8/en/System.IOUtils

 


 

[2010~] 키오스크나 태블릿 개발에 유용한 가상키보드를 개발할 수 있습니다.

□ TTouchKeyboard 컴포넌트

 

가상 키보드 컴포넌트인 TTouchKeyboard가 추가되어, 터치나 마우스 클릭으로 키 입력을 할 수 있게 되었습니다. 키오스크나 태블릿 개발에 아주 유용합니다. 터치키보드는 상속하여 간단히 원하는 언어 키보드를 구현할 수 있으며, 숫자 키패드로 바꿀 수도 있습니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Touch_Keyboard_Overview

 


 

[2010~] TCanvas와 유사한 TDirect2DCanvas로 Direct2D 개발이 가능합니다.

□ Direct2D 지원

 

이제 델파이에서도 손쉽게 Direct2D 개발을 할 수 있습니다. 더욱이, 델파이 개발자들이 익숙한 TCanvas와 유사하게 TDirect2DCanvas로 만들어져 기존의 TCanvas로 개발해본 개발자라면 누구나 쉽게 배워 활용할 수 있습니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Using_the_Direct2D_Canvas

 


 

[2010~] TIFF와 RAW 포맷을 이미지컴포넌트에서 사용할 수 있습니다.

□ TIFF 및 RAW 이미지 지원

WIC(Windows Imaging Components)를 지원함으로써, 스캐너, 팩스 등 수많은 분야에서 사용되는 범용 이미지 포맷 중의 하나인 TIFF를 직접 지원하게 되었습니다. 또한 최근 디지털 카메라에서 고급 이미지를 위해 많이 사용되는 RAW 포맷들도 WIC를 통해 지원하게 되었습니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/Libraries/XE8/en/Vcl.Graphics.TWICImage

 


 

[2009~] MS 오피스와 같은 리본 인터페이스를 복잡한 코딩 없이 컴포넌트로 개발할 수 있습니다.

□ 리본 컨트롤

 

MS 오피스에서 도입된 리본컨트롤을 컴포넌트로 지원해, 다른 개발툴들처럼 복잡한 코딩 없이 폼 디자인만으로 간단히 리본 컨트롤을 추가하고 다룰 수 있습니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Creating_an_Application_that_Uses_Ribbon_Controls

 


 

[2009~] 특별한 코딩 없이 컴포넌트 수준의 설정으로 멀티터치와 제스처를 지원할 수 있습니다.

□ 멀티터치 / 제스처 지원

 

이제 델파이의 모든 컨트롤에서 터치 인터페이스를 지원하게 되었으며, 특히 특별한 코딩 없이 컴포넌트 수준의 설정만으로도 터치와 제스츄어를 지원합니다. 이를 위해 델파이 2010에서는 대부분의 VCL 컨트롤에서 Touch 속성이 추가되었으며, 여기서 지정된 GestureManager 컴포넌트를 통해 제스처도 지원됩니다. 기존 애플리케이션에도 간단히 터치 인터페이스를 추가할 수 있습니다.

델파이에서는 기본적으로 30개의 표준 제스처를 지원하며, 개발 중에 Custom Gesture를 추가하거나 혹은 런타임에 GestureRecorder 컨트롤을 이용하여 쉽게 사용자 제스츄어를 기록할 수 있습니다.
 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Gesturing_Overview

 


 

[2009~] 비슷한 범주의 버튼을 그룹으로 묶어서 제공할 수 있습니다.

□ TButtonGroup 컴포넌트

 

비슷한 범주의 버튼을 그룹으로 묶어서 사용할 수 있습니다. 델파이 IDE의 툴 팔레트 카테고리 선택 UI도 TButtonGroup으로 제작되었습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/411088

 


 

[2009~] 이미지 버튼을 갖는 에디터 컴포넌트를 사용할 수 있습니다.

□ TButtonEdit 컴포넌트

 

에디트 컴포넌트에 이미지 버튼을 가진 컴포넌트입니다. LeftButton, RightButton 속성에 이미지를 지정할 수 있으며 OnLeftClick, OnRightClick 이벤트로 클릭을 제어할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/411088

 


 

[] 표준 HTML 링크를 포함한 라벨을 사용할 수 있습니다.

□ TLinkLabel 컴포넌트

 

위의 사진은 Caption에 " 데브기어 홈페이지를 클릭하세요."을 입력하고 실행한 결과입니다. 링크를 클릭하면 OnLinkClick 이벤트가 발생합니다. 
→ 자세히 보기: http://tech.devgear.co.kr/411088

 


 

[] 사용자의 결정 필요 시 여러가지 선택지를 제공해 사용자의 의견을 정확하게 받아낼 수 있습니다.

□ TTaskDialog 컴포넌트

 

TTaskDialog 컴포넌트는 비스타에서 새로 도입된 태스크 다이얼로그 기능을 사용할 수 있게 해주는 컴포넌트입니다. 개발자는 오브젝트 인스펙터를 이용하여 TaskDialog의 모양을 커스터마이즈할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/411088

 


 

[2009~] ListView의 그룹을 직접 설정하고, 그룹마다 이미지를 지정할 수 있습니다.

□ ListView 그룹화

     
→ 자세히 보기: http://tech.devgear.co.kr/411088

 

 


 

[2009~] 사용자 알림에서 제목, 설명과 이미지를 추가할 수 있습니다.

□ TBalloonHint 컴포넌트

 
→ 자세히 보기: http://tech.devgear.co.kr/411088

 

 


 

[2009~] 아웃룩의 사이드바와 같이 접었다 펴지는 UI를 제공할 수 있습니다.

□ TCategoryPanelGroup 컴포넌트

 

아웃룩의 사이드바와 같은 작업을 합니다. 여러개의 다른 패널을 추가할 수 있고 각기다른 패널에 VCL 컴포넌트를 추가할 수 있습니다. 타이틀, 이미지, 정렬과 아이콘을 각기 다르게 구현할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/411088

 


 

[2009~] 아웃룩 사이드바와 같은 카테고리 별 그룹과 버튼을을 갖는 UI를 제공할 수 있습니다.

□ TCategoryButtons 컴포넌트

 
→ 자세히 보기: http://tech.devgear.co.kr/411088

 

 


 

[2009~] 그리드 컴포넌트의 스타일을 지정할 수 있습니다.

□ 그리드 컴포넌트의 DrawingStyle 속성

 

Themed, Gradient 스타일이 그리드 컴포넌트에 추가되었습니다.(기본값 = gdsThemed) 
→ 자세히 보기: http://tech.devgear.co.kr/411088

 


 

[] 작업표시줄 영역에 트라이아이콘을 추가하고 풍선 도움말과 팝업메뉴를 제공할 수 있습니다.

□ TTrayIcon 컴포넌트

 

TTrayIcon 컴포넌트는 VCL 애플리케이션이 태스크 트레이에 아이콘을 넣을 수 있도록 해줍니다. 이 컨트롤은 풍선 도움말과 팝업 메뉴를 지원합니다. 
→ 자세히 보기: http://tech.devgear.co.kr/411088

 


 

[] 컨트롤의 여백을 설정해 컨트롤 배치를 더 다양하게 할 수 있습니다.

□ VCL - Margins와 Padding

 

모든 VCL 컨트롤에 Padding 및 Margin 프로퍼티가 추가되었습니다. 이 두 프로퍼티는 HTML에서와 비슷하게 동작하는데, Padding은 컨테이너 컨트롤이 내부의 컨트롤과 가지는 여유 공간의 픽셀 길이입니다. Margin 프로퍼티는 컨트롤의 바깥 여유 공간입니다. 컨트롤의 AlignWithMargins 프로퍼티가 True로 지정되고 Align 프로퍼티가 alNone이 아닌 값으로 지정되면 해당 컨트롤의 Margin 프로퍼티 값에 따라 배치됩니다. 예를 들어, 그림은 폼 위에 있는 TPanel을 보여줍니다. 이 패널은 Align이 alClient로, AlignWithMargins 속성이 True로 지정되었으며, Margin 속성은 20으로 지정된 상태입니다. 또한 폼의 Padding.Bottom 속성은 30으로 지정되었습니다. AlignWithMargins와 Margin 속성을 이용하면 기존의 Align 속성만 이용할 때보다 훨씬 쉽고 풍부하게 컨트롤들을 배치할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/411088

 


 

[] PNG, GIF를 지원할 수 있습니다.

□ PNG, GIF 지원

bmp, jpeg 이미지 지원에 이어, 이제 VCL에서 PNG 및 GIF이미지 포맷도 지원됩니다. 또한 이미지 리스트 컴포넌트에서 png 파일을 직접 읽어 들일 수 있어 전보다 더 편리하게 되었습니다 

 


 

[2007~] 최신 윈도우의 가이드라인에 맞는 애플리케이션을 만들 수 있습니다.

□ 최신 윈도우 공식지원

 

델파이 XE3에서 Windows 8을 델파이 2010에서 Windows 7을 델파이 2007에서 Windows Vista를 공식 지원합니다. 
따라서 델파이로 빌드한 애플리케이션은 마이크로소프트의 윈도우 가이드라인을 준수하게 되며, 해당 윈도우에서 아무 문제 없이 동작합니다.

 


 

[2007~] 프로젝트 옵션 설정으로 윈도우 테마 지원 적용을 간단하게 할 수 있게 되었습니다.

□ 윈도우 테마 지원 개선

 

Delphi 7에서는 Windows XP의 테마 기능을 지원하기 위해 XPMan (TXPManifest 컴포넌트) 방식을 사용했습니다. 
Delphi 2007 이후로는 이런 테마 지원이 더 네이티브 해져서, 프로젝트 옵션에서 Runtime Theme 선택(또는 Enable runtime Themes 체크)하면 전체 프로젝트에 대해 간편하게 테마 지원을 추가할 수 있습니다. 이 옵션은 Delphi 2007 이상에서 새로 만든 프로젝트에서는 기본으로 적용되며, Delphi 2006 이하의 구버전에서 작성된 소스에 대해서는 호환성을 위해 체크가 안되어 있습니다. (XPMan 방식을 사용한 경우 이 체크를 하면 충돌하며, 그런 경우 이 개선된 테마 지원을 사용하려면 프로젝트의 모든 유닛들의 uses 리스트에서 XPMan 유닛을 제거해야 합니다) 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Disabling_Themes_in_the_IDE_and_in_Your_Application

 


 

[2006~] 메모리 매니저교체와 RTL 함수교체로 성능향상된 애플리케이션을 만들 수 있습니다.

□ FastMM 메모리 매니저 도입

FastMM은 전통적인 Delphi의 메모리 매니저인 borlndmm.dll을 대체하는 것으로서, 이전보다 훨씬 빠른 메모리 루틴들을 제공하여 Delphi로 개발된 애플리케이션의 속도를 비약적으로 끌어올려줍니다. 또한 FastMM으로 인해 Delphi의 RTL에 메모리 관리 관련의 새로운 기능들이 많이 추가되었습니다. 전역 변수인 ReportMemoryLeaksOnShutdown에 True 값을 설정해두면, 프로그램이 종료될 때 메모리 누수 상황에 대해 알려주며, 메인 exe와 dll 사이에 메모리를 간단히 공유할 수도 있습니다.

 


 

[2006~] 마우스 중앙 버튼을 누르면 스크롤링 하는 기능을 개발할 수 있습니다.

□ 인텔리마우스 지원

 

VCL 인텔리마우스 API를 지원합니다. 예를 들어 아래 그림처럼 TMemo 컴포넌트 위에서 마우스 중앙 버튼을 누르면 사용자로 하여금 메모 내에서 스크롤링 하기 위해 마우스를 사용할 수 있도록 해 줍니다. 델파이 코드 에디터도 이 기능을 지원합니다.

 

 

 

■ 새로운 언어와 컴파일러 기능

[XE7~] 문자열과 같이 동적배열을 쉽게 사용할 수 있습니다.

□ 동적배열 개선

동적배열이 사용하기 쉽게 개선되었습니다

  • 동적배열 초기화가 쉬워짐
    문자열과 같이 + 기호로 배열을 연결
    Insert, Delete, Concat 함수 지원
var
   di: array of Integer;
   i: Integer;
begin
   di := [1, 2, 3]; 
   di := di + di;
   di := di + [4, 5];

di := [1, 2, 3, 4, 5, 6];
   Insert ([8, 9], di, 4);
   Delete (di, 2, 1); // remove the third (0-based)

for i in di do
   begin
     Memo1.Lines.Add (i.ToString);
   end;

 

 


 

[XE2~] 프로젝트 매니저에서 타겟플랫폼을 64-bit Windows로 선택 해 64비트 애플리케이션을 개발할 수 있습니다.

□ 64-비트 컴파일러 지원

 

델파이 XE2에서 64비트 윈도우 애플리케이션 개발을 지원합니다. 64비트 애플리케이션은 더 빠른 연산과 더 많은 메모리(4G 이상)를 사용해야 하는 경우 적합 합니다.
델파이에서는 프로젝트 매니저에서 타겟 플랫폼을 64-bit Windows로 선택 후 빌드해 64비트 애플리케이션을 개발할 수 있습니다. 만약, 여러분의 프로젝트가 VCL과 RTL만 사용한 경우 Win32와 Win64 플랫폼에서 동일한 소스코드를 사용할 수 있습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/411111
http://docwiki.embarcadero.com/RADStudio/XE8/en/64-bit_Windows_Application_Development

 


 

[XE2~] 유닛에 범위이름을 포함해 더 명확한 유닛 이름으로 지정할 수 있습니다.

□ 유닛 범위 이름(Unit Scope Names)

 

uses
   Winapi.Windows, Winapi.Messages, System.SysUtils,
   Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls
 

유닛 이름 앞에 범위 이름을 추가할 수 있어 유닛의 역할이 더 명확해 졌습니다. VCL과 RTL 유닛이 모두 범위이름을 포함하도록 변경되었고 여러분의 유닛에도 범위이름을 포함해 저장할 수 있습니다. 
하지만 반드시 범위이름을 지정해야 하는 것은 아닙니다. 유즈절에 유닛을 추가할 때 System.SysUtils와 SysUtils는 동일한 유닛을 사용합니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Unit_Scope_Names

 


 

[2010~] RTTI를 통해 애플리케이션 런타임 시 메소드, 필드, 속성 정보를 조회할 수 있습니다.

□ RTTI 강화와 어트리뷰트

델파이 2010에서 델파이의 RTTI가 대폭 강화되었습니다. 이제 RTTI가 메소드, 필드, 속성을 지원하게 되어 동적 호출과 다른 메타 프로그래밍 방식들을 지원하게 되었습니다. 새로 추가된 RTTI.pas 유닛을 통해 강력한 RTTI 루틴들을 뒷받침합니다.
어트리뷰트(attribute)는 이 새로운 RTTI를 기반으로 한 문법으로서, 클래스/레코드나 클래스의 멤버에 추가로 지정되는 정보이며, 실행 중에 읽어질 수 있습니다. 어트리뷰트를 활용하면 일반화된 프레임워크를 개발할 때 아주 유용합니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Working_with_RTTI_Index

 


 

[2010~] DLL 함수가 호출될 때 DLL을 로드하도록 구현할 수 있습니다.

□ DLL 지연 로딩

Delphi 2010에서는 DLL의 로딩 방법으로서 정적(static) 로딩, 동적(dynamic) 로딩 외에 지연(delayed) 로딩이 추가되었습니다. 지연 로딩은 정적 로딩과 기본적으로 같은 구문을 사용하지만 extern 선언에서 delayed 지시어를 추가하는 것입니다.

procedure ProcInDll; external 'DLL_name.dll' delayed;

정적 로딩 구문에 단지 delayed 지시어를 추가한 것 뿐이지만, 이것만으로도 해당 DLL 함수가 실제로 호출될 때까지 해당 DLL을 로드하지 않습니다.
이전의 정적 로딩을 사용하면 코딩이 단순하고 편리한 반면 해당 DLL이나 함수가 존재하지 않을 경우 프로그램 시작 자체가 실패하는 치명적인 문제가 있습니다. DLL이 이런 우려가 있을 경우에 지연 로딩을 사용하면 깔끔하게 문제가 해결됩니다. 특히 Windows 7이나 Windows Vista 등 최신 버전의 Win32에서 추가된 API들을 호출할 필요가 있으면서 동시에 Windows P, 2000 등 구버전과도 호환성이 필요한 경우 더욱 유용합니다.
또한 지연 로딩을 사용하면 실제 호출할 때까지 DLL을 로드하지 않으므로 메모리 소모도 줄어드는 효과도 있습니다.

 


 

[2006~] 기존의 클래스를 수정하지도 상속받지도 않고 클래스 기능을 확장할 수 있습니다.

□ 타입 헬퍼(Type Helper)

타입 헬퍼는 클래스, 레코드, 열거형 타입의 기능을 확장할 수 있는 문법입니다.
다음코드는 열거형에 타입헬퍼를 이용해 ToString 메소드를 확장하는 예제입니다.

type
   TGeoDirection = (North, East, South, West);
   // 열거형을 문자열로 변환하는 기능 확장
   TGeoDirectionHelper = record helper for TGeoDirection
     function ToString: string; inline;
   end;

function TGeoDirection.ToString: string;
begin
   case Self of
       TGeoDirection.North: Result := '북쪽 (N)';
       TGeoDirection.East: Result := '동쪽 (E)';
       TGeoDirection.South: Result := '남쪽 (S)';
       TGeoDirection.West: Result := '서쪽 (W)';
   else
       raise Exception.Create('Unknown "TGeoDirection" value');
   end;
end;

var
   Direction: TGeoDirection;
begin
   Direction := South;
   ShowMessage(Direction.ToString);

end;

→ 자세히 보기: http://tech.devgear.co.kr/406874

 

 


 

[2009~] 명시적으로 타입을 지정하지 않고 실행 시 유연하게 타입을 지정하며 개발할 수 있습니다.

□ 제너릭(Generics)

제너릭은 배열, 컬랙션, 목록 등에서 데이터타입을 명시적으로 지정하기 않고, 실행 시 필요한 데이터타입으로 사용할 수 있는 문법입니다.
다음 예제는 제너릭 타입을 이용해 목록(TList) 클래스를 만들고 사용한 코드입니다.

TList = class(T<x-object)
   public
     procedure Add(const Value: T);
     function Get(Index: Integer): T;
   end;

var
   IntList: TList;
   StrList: TList;
begin
   IntList := TList.Create;
   StrList := TList.Create;
   IntList.Add(100);
   StrList.Add('Hello');
   IntList.Free;
   StrList.Free;

→ 자세히 보기: http://tech.devgear.co.kr/406874
http://docwiki.embarcadero.com/RADStudio/XE7/en/What%27s_New_in_Delphi_and_C%2B%2BBuilder_XE7#String-Like_Operations_Supported_on_Dynamic_Arrays

 

 


 

[2009~] 메소드의 파라메터로 코드블록을 전달할 수 있어 유연한 코드를 작성할 수 있습니다.

□ 익명메소드(Anonymouse Method)

이름에서 알 수 있듯이 익명메소드는 이름이 없는 프로시저나 함수입니다. 익명 메소드는 변수에 할당하거나 메소드의 파라메터로 코드 블록을 전달할 수 있습니다.

type
   TProc = reference to procedure(Value: Integer);

procedure Call(const AProc: TProc);
begin
   AProc(10);
end;

procedure DoSimpleAnonymouseMethod;
var
   Proc: TProc;
begin
   proc := procedure(Value: Integer)
     begin
       ShowMessage(Value.ToString);
     end;
   Call(Proc);
end;

익명메소드는 다른 언어의 클로저(closures)의 구조와 유사합니다. 익명메소드는 특히 쓰레드 개발 시 사용하면 유용합니다. 쓰레드 시작 코드 구현 시 쓰레드 완료 코드를 함께 구현하면 작업흐름을 한눈에 파악할 수 있어 코드의 유지보수가 편리해 집니다. 
→ 자세히 보기: http://tech.devgear.co.kr/406874

 


 

[2009~] 유니코드 문자열 기반의 애플리케이션을 개발할 수 있습니다.

□ 유니코드 지원

이제 델파이 언어 전체적으로 유니코드가 지원이 됩니다. 기존 버전들에서는 String은 AnsiString을 의미했지만 이제는 유니코드를 완벽하게 지원하는 UnicodeString으로 바뀌었습니다. 
UnicodeString은 기존의 WideString과는 달리 AnsiString과 유사한 레퍼런스 카운팅(Reference Counting) 구조로 설계되어 훨씬 메모리 효율적이며 속도도 빠릅니다. 스트링을 버퍼로 사용해왔던 관행에 대한 대안으로 RawByteString 타입도 추가되었습니다. 
→ 자세히 보기: http://tech.devgear.co.kr/406874 
http://docwiki.embarcadero.com/RADStudio/XE8/en/Unicode_in_RAD_Studio

 


 

[] Exit; 문에 반환값을 넣을 수 있어 코드가 더 짧아 집니다.

□ 반환값을 갖는 빠져나오는 Exit 함수

 

→ 자세히 보기: http://docwiki.embarcadero.com/Libraries/XE8/en/System.Exit

 


 

[] inline 지시자로 함수와 프로시저의 성능을 향상 시킬 수 있습니다.

□ Inline 지시자

 

function Max(const X,Y,Z: Integer): Integer; inline;

델파이 컴파일러는 함수와 프로시저의 성능을 향상할 수 있는 Inline 지시자를 지정할 수 있습니다. 이 지시자는 해당 루틴을 실제로 호출하는 대신 호출하는 측에서 해당 루틴을 포함하는 코드를 생성하도록 합니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Calling_Procedures_and_Functions#Using_the_inline_Directive

 


 

[] 같은 유닛의 클래스에서도 변수와 메소드를 노출하지 않을 수 있습니다.

□ srict private, strict protected

델파이에서 클래스의 속성에 대한 가시성을 결정하는 2가지 옵션이 있습니다.

  • strict private: private 키워드는 같은 유닛에 포함된 클래스에서는 접근을 허용합니다. strict private 선언은 같은 유닛에 포함된 클래스에서도 접근할 수 없습니다.
    strict protected: strict private과 유사하며, strict protected로 선언된 변수와 메소드는 클래스 본인과 상속한 클래스에서만 접근할 수 있습니다.

→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Classes_and_<x-objects#Strict_Visibility_Specifiers

 

 


 

[2006~] 레코드에도 필요한 속성, 메소드, 클래스 메소드등의 타입을 추가 할 수 있습니다.

□ 메소드를 지원하는 레코드

record 선언에서 클래스처럼 필드 외에도 속성, 메소드(생성자도 포함됨), 클래스 속성, 클래스 메소드, 클래스 필드, 네스티드 타입을 가질 수 있게 되었습니다.

type
   TMyRecord = record
     type
       TInnerColorType = Integer;
     var
       Red: Integer;
     class var
       Blue: Integer;
     procedure Red();
     constructor Create(val: Integer);
     property RedProperty: TInnerColorType read Red write Red;
     class property BlueProp: TInnerColorType read Blue write Blue;
   end;

constructor TMyRecord.Create(val: Integer);
begin
   Red := val;
end;

procedure TMyRecord. Red;
begin
   writeln('Red: ', Red);
end;

→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Structured_Types#Records_.28advanced.29

 

 


 

[] 메소드 뿐 아니라 클래스도 abstract로 선언해 추상 클래스로 만들 수 있습니다.

□ 클래스 추상화(class abstract)

 

type
   TAbstractClass = class abstract
     procedure SomeProcedure;
   end;

→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Classes_and_<x-objects

 

 


 

□ 클래스 봉인(class sealed)

 

type
   TAbstractClass = class sealed
     procedure SomeProcedure;
   end;

→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Classes_and_<x-objects

 

 


 

[] 클래스는 클래스 상수를 가질 수 있습니다. 클래스 상수는 객체가 아닌 클래스와 연관된 상수입니다.

□ 클래스 상수(class const)

 

type
   TClassWithConstant = class
   public 
     const SomeConst = '이것은 클래스 상수입니다.';
   end;

procedure TForm1.FormCreate(Sender: T<x-object);
begin
   ShowMessage(TClassWithConstant.SomeConst);
end;

→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Classes_and_<x-objects

 

 


 

[] 클래스는 해당 클래스에서만 사용 가능한 타입 선언을 포함할 수 있습니다. 

□ 클래스 타입(class type)

 

type
   TClassWithClassType = class
   private
     type
       TRecordWithinAClass = record
         SomeField: string; 
       end;
   public
     class var
       RecordWithinAClass: TRecordWithinAClass;
   end;

procedure TForm1.FormCreate(Sender: T<x-object);
begin
   TClassWithClassType.RecordWithinAClass.SomeField := '이것은 클래스 타입으로 선언된 필드입니다.';
   ShowMessage(TClassWithClassType.RecordWithinAClass.SomeField);
end;

→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Classes_and_<x-objects

 

 


 

[] 클래스는 클래스 변수를 가질 수 있습니다.

□ 클래스 변수(class var)

이것은 클래스의 객체가 아닌 클래스 자체에 적용되는 변수입니다. 예제는 위의 "클래스 타입"을 참고하십시오. 

 


 

[] 클래스 선언부 에서 타입 선언을 포함시킬 수 있습니다.

□ 중첩된 클래스

클래스 선언 내에서 타입 선언이 포함될 수 있습니다. 이 방법으로 개념적으로 관계가 있는 타입들을 같이 둘 수 있으며, 이름 충돌도 피할 수 있습니다.

type
   TOuterClass = class
   strict private
     MyField: Integer;
   public
     type
       TInnerClass = class
       public
         MyInnerField: Integer;
         procedure InnerProc;
       end;

       procedure OuterProc;
   end;

procedure TOuterClass.TInnerClass.InnerProc;
begin
...
end;

→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Nested_Type_Declarations#Declaring_and_Accessing_Nested_Classes

 

 


 

[] 메소드를 더 이상 상속받지 못하도록 fianl 지시자로 막을 수 있습니다.

□ final 지시자

오버라이드한 버추얼 메소드를 final로 표시하여 상속되는 클래스에서 해당 메소드를 더 이상 오버라이드하지 못하도록 막을 수 있습니다. 

TAbstractClass = class abstract
public
   procedure Bar; virtual;
end;

TSealedClass = class sealed(TAbstractClass)
public
   procedure Bar; override;
end;

TFinalMethodClass = class(TAbstractClass)
public
   procedure Bar; override; final;
end;

→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Final_(Delphi)

 

 


 

[] 클래스에 스태틱 클래스 메소드를 추가할 수 있습니다.

□ 클래스 스태틱 메소드(class static method)

클래스에 스태틱 클래스 메소드를 추가할 수 있는데, 이것은 클래스 타입으로부터 호출할 수 있는 메소드입니다. 클래스 스태틱 메소드는 객체에 대한 참조 없이도 사용이 가능합니다. 일반적인 클래스 메소드와는 달리, 클래스 스태틱 메소드는 Self 파라미터를 가지지 않습니다. 또한 객체의 멤버들을 액세스할 수도 없습니다. (클래스 필드, 클래스 속성, 클래스 메소드는 액세스할 수 있습니다) 또한 클래스 메소드와 달리 클래스 스태틱 메소드는 virtual로 선언될 수 없습니다

type
   TMyClass = class
   strict private
     class var
     FX: Integer;
   strict protected
     // 노트: 클래스 속성을 액세스하려면 클래스 스태틱으로 선언되어야 합니다.
     class function GetX: Integer; static;
     class procedure SetX(val: Integer); static;
   public
     class property X: Integer read GetX write SetX;
     class procedure StatProc(s: String); static;
   end; 

begin TMyClass.X := 17;
   TMyClass.StatProc('Hello');

end;

→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Fundamental_Syntactic_Elements#Directives

 

 


 

[] 컬렉션의 요소만큼 반복하는 for-in 반복문을 사용할 수 있습니다.

□ for-in 반복문

이제 델파이에서 컨테이너에 대해 for-요소-in-컬렉션 스타일의 반복자를 지원합니다. 컴파일러는 다음의 컨테이너 반복 패턴을 인식합니다.

for Element in ArrayExpr do Stmt;
for Element in StringExpr do Stmt;
for Element in SetExpr do Stmt;
for Element in CollectionExpr do Stmt;

→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Declarations_and_Statements#Iteration_Over_Containers_Using_For_statements

 

 

 

 

■ 새로운 디버그 기능

[] 쓰레드 이름을 지정해 쓰레드 디버깅을 더 용이하게 할수 있습니다.

□ NameThreadForDebugging

 

procedure TShortThread.Execute;
begin
   NameThreadForDebugging (AnsiString(ClassName));
   Sort(Slice(FSortArray^, FSize));
end;

쓰레드 디버깅이 용이하도록 TThread 클래스에 NameThreadForDebugging 메소드가 추가되었으며, 이를 이용하여 IDE의 Thread View에 현재 디버깅중인 각 쓰레드들의 이름을 볼 수 있습니다.

 


 

□ 쓰레드의 임시 이름 지정

 

디버깅 중에도 Thread Status Window의 특정 쓰레드에 임시로 이름을 지정할 수 있습니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/Libraries/XE8/en/System.Classes.TThread.NameThreadForDebugging

 


 

[] 쓰레드를 지정해 중단점을 걸어 특정 쓰레드에서 디버깅 할 수 있습니다.

□ 쓰레드 지정 중단점(BreakPoint)

 

멀티 쓰레드 개발 시 중단점을 찍으면 여러 쓰레드에 중단점이 걸려 IDE가 먹통(Hang)이 될 수 있습니다. 이런 경우 쓰레드를 선택 해 중단점을 찍고 디버깅 할 수 있습니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Breakpoint_Properties

 


 

[] 원하는 쓰레드만 디버깅 하기 위해 쓰레드를 일시적으로 얼리고(Freeze) 녹일(Thaw) 수 있습니다.

□ 쓰레드 Freeze/Thaw

 

특정 쓰레드만 디버깅하기 위한 Thread Specific Breakpoint 기능이 추가되었습니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Freezing_and_Thawing_Threads_in_the_Debugger

 


 

[] TDateTime, TStringList 변수의 값도 디버깅 상태에서 확인할 수 있습니다.

□ 디버그 비주얼라이저

 

TDateTime, TStringList 등 기존에는 디버거에서 그 값을 추적할 수 없었던 타입들을 볼 수 있게 해주는 Debug Visualizer가 추가되었습니다. 이제 TDateTime, TStringList 변수의 값을 디버깅 상태에서 볼 수 있게 되었습니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Debugger_Visualizers

 


 

[] 디버그 모드로 실행 중 예외(Exception)가 발생해도 이어서 테스트할 수 있습니다.

□ 예외 다이얼로그 개선

 

델파이 7 이하 버전에서는 실행중 예외가 발생했을 경우 무조건 IDE에서 실행이 멈추었지만(break), 이제는 Break와 Continue를 선택할 수 있게 되어 IDE에서 해당 라인을 찾아가지 않고 곧바로 실행을 계속하도록 할 수 있게 되었습니다.

또한 다이얼로그 아래쪽에 있는 “Ignore this exception type” 옵션에 체크를 하면 IDE가 해당 타입의 예외를 무시하도록 할 수 있습니다.

 


 

[] 개발자가 설정하지 않은 중단점외의 의도치 않은 중단점을 무시할 수 있습니다.

□ Ignore non-user breakpoint

 

Tools > Options > Debugger Options > Embarcadero Debuggers에 "Ignore non-user breakpoints" 옵션이 추가되었습니다. 이 옵션을 선택하면 개발자가 설정하지 않은 중단점(Non-user breakpoint)으로 인한 IDE 일시 정지를 하지 않습니다. Non-user breakpoint는 DbgBreakPoint() API 함수 호출에 의해 코딩으로 지정된 것으로, 흔히는 Windows OS커널의 버그로 발생하며, 이런 의도하지 않은 코드에 의한 중단점 무시할 수 있습니다.

또한 델파이 XE 부터는 non-user breakpoint를 만날 경우 Event Log 윈도우에 표시합니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Embarcadero_Debuggers

 


 

[] IDE에서 바로 실행 모드로 실행할 수 있습니다.

□ Run Without Debugging

     

IDE에서 디버깅 모드로 프로젝트를 실행하는 Run 이외에, 디버그 모드가 아닌 실행 모드로 프로젝트를 실행해주는 Run Without Debugging 명령이 추가되었습니다.

예를 들면, 서버-클라이언트로 구성된 프로젝트 그룹에서 서버와 클라이언트 프로젝트를 서로 연동 테스트하려고 할 때 아주 편리합니다.
서버를 먼저 Run Without Debugging 으로 실행 모드로 실행 후 클라이언트는 디버그모드로 실행하며 디버깅할 수 있습니다. 물론 그 반대로도 가능합니다.(다만 디버그 모드로 실행한 상태에서는 추가로 Run Without Debugging 모드로 추가 실행할 수 없습니다.)

 


 

[] 디버그 모드의 프로세스를 디버깅을 해제해 실행 모드로 실행을 이어갈 수 있습니다.

□ Detach from Program

Detach from Program 명령은 실행 중인 프로그램에 디버거를 연결하여 디버깅하는 Attach to Process와는 정반대로, 디버깅 모드에서 실행 중이던 프로젝트로부터 디버깅을 해제하고 일반 모드로 실행을 계속하도록 합니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Detach_From_Program

 


 

[2006~] 디버깅 중에 객체의 하위 멤버까지 상세하게 디버깅할 수 있습니다.

□ 펼쳐지는 Watch, Local Variables

 

델파이 7까지는 Watch나 Local Variables 윈도우에서 디버그 상태에서 객체의 값을 볼 수는 있었으나 그 멤버들로 드릴-다운 할 수가 없어 디버그 인스펙터를 써야 했습니다. 
델파이 2006 버전부터는 Watch와 Local Variables 윈도우에서 각 객체의 하위 멤버들의 값들을 드릴-다운하여 살펴볼 수 있게 되었습니다.

 


 

[2006~] 디버깅 중인 객체의 하위 멤버

□ 펼쳐지는 디버그 툴팁

 

디버그 툴팁에서 객체의 멤버들을 계속 드릴-다운하여 그 값들을 살펴볼 수 있게 되었습니다.

또한 Ctrl 키를 누르고 있는 동안 이 툴팁들이 투명하게 보이게 되어, 툴팁을 없애지 않고도 뒤의 코드 내용을 볼 수 있게 되었습니다.

 


 

[] 쓰레드에서 데드락 발생 시 그에대한 자세한 정보를 찾아볼 수 있습니다.

□ Wait Chain Traversal

 

Wait Chain Traversal(WCT)은 프로젝트의 어떤 쓰레드에서 데드락이 발생했을 때 그에 대한 자세한 정보를 찾아볼 수 있게 해줍니다. 쓰레드들 사이에 데드락이 발생했을 때, Thread Status에 새로 추가된 Wait Chain 컬럼에 각 쓰레드들 사이의 상호 블로킹 상태를 표시해줍니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Wait_Chain_Traversal_Overview

 


 

[] Watch 윈도우에서 객체의 하위객체를 보다가 빠르게 추가하고, 값을 변경해 디버깅이 더 편해집니다.

□ Watch의 New Watch, Evaluate/Modify 메뉴

 

Watch 윈도우에 추가된 객체의 하위 객체에서 오른쪽 클릭하여 팝업 메뉴에서 New Watch를 선택하면, 해당 하위 객체가 Watch 윈도우에 추가됩니다.
또한, Evaluate/Modify 메뉴를 선택하면 해당 객체에 대한 Evaluate/Modify 창이 떠서 즉시 값을 변경해볼 수 있습니다. 
→ 자세히 보기: http://docwiki.embarcadero.com/RADStudio/XE8/en/Watch_List_Window

 


 

기타 추가된 디버그 기능을 활용할 수 있습니다.

□ 기타 추가된 디버그 기능들

다음과 같은 새로운 디버거 기능들이 추가되었습니다.

  1. CPU 뷰가 에디터 탭의 바깥에 독립적으로 열릴 수 있습니다.
    디스어셈블리 창에 "Show Opcodes" 로컬 메뉴 항목이 추가되었습니다.
    디스어셈블리 창에 "Show Addresses" 로컬 메뉴 항목이 추가되었습니다.
    Tools > Options > Debugger Options > Event Log에 "Scroll new events into view" 옵션이 추가되었습니다.
    툴바를 커스터마이즈할 때 "Notify on language exceptions" 버튼이 추가되었습니다. 이 버튼은 개발자들이 Tools > Options > Debugger Options > Embarcadero Debuggers | Language Exceptions 페이지에 있는 "Notify on Language Exceptions" 옵션을 빠르게 토글할 수 있게 해줍니다. 
    Call Stack 뷰에서 해당 프레임이 디버그 정보를 포함하고 있는지 보여주는 이미지를 보여줍니다. 
    Call Stack 뷰에서 지정된 스택 프레임 위치에서 개발자들이 브레이크 포인트를 설정할 수 있습니다. 
    Call Stack 뷰에서 한 항목을 더블 클릭하면 자동으로 로컬 뷰를 동기화해줍니다. 
    에디터에서 CTRL-F5 핫키를 치면 현재 라인에 설정되어 있는 브레이크 포인트를 활성/비활성화해줍니다.
    Project > Options > Debugger 다이얼로그에서 델파이 등 모든 프로젝트 타입에 대해 "Debug Source Path" 설정을 지정할 수 있습니다. 이전에는 이 설정을 델파이 Win32에서는 Directories/Conditionals 페이지에서 지정할 수 있었으나, 다른 퍼스낼리티에서는 불가능했습니다. 
    "Automatically close files implicitly opened while debugging" 옵션 설정에 CPU 뷰도 적용되게 되었습니다.