RAD스튜디오 버전별 주요 업데이트

IDE 업데이트

10.3 리오는 장기적인 사용성과 가시성이 좋은 깔끔하고 우아한 UI 제공을 목표로 업데이트했습니다. 이 결과, 여러 업데이트 항목들이 추가되어 레이아웃이 대폭 개선되었습니다. 보기에 더 깔끔하고 더 현대적인 화면을 제공합니다.

 

□ [10.3.2] C++ 코드인사이트: 코드 완성 기능(Code Completion)

Clang에 대한 코드 완성 기능을 완벽 지원합니다. 코드 완성은 . , ->, :: 그리고 헤더 부문의 #include <> 구문에 < 입력 시 자동 호출됩니다.
Ctrl + 스페이스바를 눌러서 수동으로 불러올 수도 있습니다. 현재 위치에서 사용 가능한 항목의 목록을 자동으로 표시해주고, 원하는 항목을 화살표 버튼 + 엔터키를 이용해 IDE에 적용할 수 있습니다.

  • 자세히 보기: https://tech.devgear.co.kr/delphi_news/455198

 

□ [10.3.2] C++ 코드인사이트: 파라미터 완성

메소드가 있으면 IDE가 파라미터 이름과 타입을 확인할 수 있도록 알려줍니다.

  • 자세히 보기: https://tech.devgear.co.kr/delphi_news/455198

 

□ [10.3.2] C++ 코드인사이트: 오류 인사이트

IDE 기능 중 하나로 오류가 있는 부분을 빨간색 줄로 표시해줍니다. 컴파일 하기 전에 에디터 상에서 알려주는 기능입니다.

  • 자세히 보기: https://tech.devgear.co.kr/delphi_news/455198

 

□ [10.3.2] C++ 코드인사이트: 툴팁 인사이트와 코드 브라우징

툴팁 인사이트는 심볼(symbol)에 마우스를 올려놓으면 선언을 보여주는 기능입니다.
코드 브라우징은 선언된 부분으로 자동 이동할 수 있는 기능입니다.

  • 자세히 보기: https://tech.devgear.co.kr/delphi_news/455198

 

 

□ [10.3.2] 코딩 & 디자인 화면의 빠른 전환

10.3.2에서는 특히 빠른 속도와 부드러운 화면 전환에 초점을 맞추었습니다. 훨씬 자연스럽게 동작하는 모습을 확인할 수 있습니다.

 

□ [10.3.2] 더욱 좋아진 퀄리티 향상

리포팅된 400개 이상의 이슈들을 해소했습니다. 그 중에서도 두드러지는 부분들은 다음과 같습니다.

  • 툴바 모음: 사용자가 배치해놓은 위치에 툴바가 위치합니다.
  • IDE 사이즈 조절이 가능합니다. 최소화, 최대화 모두 가능합니다.
  • 레이아웃 변경: 예를 들어 디버깅 실행 시, IDE를 디버그 레이아웃으로 변경할 수 있습니다.
  • 타이틀 바의 컨트롤들: 예를 들어 IDE 메인 화면, 옵션 대화 상자의 검색창 등이 있습니다.

 

□ 북마크(Bookmarks) 기능

소스코드가 많고 규모가 큰 프로젝트더라도 IDE에서 바로 원하는 코드 위치를 찾아 작업할 수 있어, 불필요한 작업 시간이 크게 줄어듭니다. 이 기능은 10.3.1을 받은 고객이라면 겟잇패키지매니저(GetIt Package Manager)를 통해 다운로드 받아 사용할 수 있습니다. 코드 편집기에서 이전에 작업했던 위치를 보여주는 기능입니다. ‘바로가기’를 설정하면 그 위치로 바로 이동할 수 있는 새로운 북마크가 만들어집니다. 생성한 모든 북마크들은 북마크 화면에서 모두 확인할 수 있습니다. 그리고 구문 강조 표시와 작업 전부 정보에 대해서도 확인할 수 있습니다. 또한 ‘이동하기(Escape)’ 버튼을 이용해 이동할 위치들을 모아놓은 캐럿 북마크(Caret Bookmarks) 기능을 제공합니다.

 

□ 네비게이터 기능

델파이에서 지능형 검색을 활용해 유닛의 어떤 위치로든 바로 이동할 수 있는 기능입니다. Ctrl + G를 누르고 타이핑하면, 유즈절(uses clause), 메소드, 속성(property), 속성 백업 필드 또는 속성 메소드, 다른 코드 요소르 이동할 수 있습니다. 그리고 델파이와 C++ 모두에서 ‘미니맵’ 기능을 사용할 수 있습니다. 이 기능은 코드 미니어쳐 버전을 보여주는 사이드 패널입니다.

 

□ 선택된 화면 모습의 변화

제목 표시줄이 더 커져 메뉴명을 한 눈에 파악할 수 있고 클릭이나 이동이 더 쉬워졌습니다. ‘프로젝트’ 화면의 툴 바를 한 줄로 정리했습니다. 화면에 보이지 않는 메뉴들은 드롭다운 형식으로 표시해 이전과 동일한 기능을 사용할 수 있습니다. 전체적인 화면 너비와 높이가 넓어져 메뉴 파악이 더욱 쉬워졌습니다.

 

□ 데스크탑 레이아웃, 테마, IDE 인사이트 컨트롤

다른 도구들과 마찬가지로 도구 모음에 위치해있던 컨트롤들이 10.3 버전부터는 제목 표시줄로 위치가 이동했습니다. 

 

□ 코드 에디터 탭

탭 메뉴명을 더 구분하기 쉽도록 바뀌었습니다. 탭 사이즈를 좀 더 크게 만들어 클릭하기 쉬워졌습니다. 각 탭은 X 버튼을 클릭해 닫을 수 있습니다. 

 

□ 선택된 메뉴를 명확하게 표시

클릭한 항목이 포함된 메인 메뉴를 진한 파란색으로 나타내 클릭된 영역을 확실하게 알아볼 수 있습니다. 

 

□ VCL 디자이너

클사용되지 않는 상당(top), 좌측(left)의 크기 조절을 위한 드래그 버튼이 사라졌습니다. 이전에는 7×7 px 사이즈의 사각형을 클릭해 크기를 조정해야 했지만, 이 크기도 더 커졌습니다. 드래그 바는 다른 VCL 컨트롤과 마찬가지로 마우스오버에 반응합니다.

 

□ 새로운 밝은 테마와 어두운 테마

밝은 테마(Light Theme)

10.3의 밝은 테마가 바뀌었습니다. 다양한 파란색 음영을 사용했으며, 회색을 주로 사용했던 이전 버전들과 달리 쾌적한 시각 효과를 제공합니다.

 

 

 

 

 

 

 

어두운 테마(Dark Theme)

10.2.2 버전에서 처음 선보였던 어두운 테마에도 변화가 있습니다. 기존과 비슷한 색상을 사용하지만 새로운 밝은 테마에서 아이디어를 얻어 색상에 변화가 있었고 이를 통해 눈의 피로도를 줄여주고 장시간 사용하기 좋습니다. 

VCL 업데이트

10.3 리오는 High DPI를 지원하는 이미지 리스트가 추가되어, 컨트롤 내의 이미지들을 다양한 해상도로 더욱 선명하게 표현할 수 있게 되었습니다.

 

□ VCL용 새로운 스타일 10종 지원

새로운 스타일들을 활용해 애플리케이션 룩앤필을 빠르게 업데이트 할 수 있습니다. 제공되는 스타일들을 원하는대로 바꾸어 사용할 수도 있습니다. 10.3.1에서는 새로운 스타일이 총 15 종류가 제공되는데, 그 중 5가지는 FMX(파이어몽키)용이고 10가지는 VCL용입니다. FMX 스타일은 윈도우, 맥OS, 안드로이드, iOS 모두에서 활용할 수 있는 멀티-디바이스 스타일이고, VCL 스타일은 윈도우에서 활용 가능합니다. 그리고 비트맵 스타일 디자이너 템플릿도 포함되어 있습니다.

새로운 스타일들은 IDE의 겟잇 패키지 매니저(GetIt Package Manager)를 이용해 다운로드 받아 사용할 수 있습니다.

새롭게 추가된 10 종류의 VCL 스타일들:

  • VCL Style – Calypso
  • VCL Style – Flat UI Light
  • VCL Style – Material Oxford Blue
  • VCL Style – Puerto Rico
  • VCL Style – Stellar
  • VCL Style – Wedgewood Light
  • VCL Style – Windows 10 – Black Pearl
  • VCL Style – Windows 10 – Blue Whale
  • VCL Style – Windows 10 – Clear Day
  • VCL Style – Windows 10 – Malibu

 

□ High DPI 이미지 리스트 지원

High DPI(일명 HiDPI)는 디스플레이에 몇 배 더 많아진 픽셀 수 만큼 몇 배로 더 선명하게 보여주는 표시방식입니다. 고해상도 모니터 출시에 따라 윈도우와 실행되는 애플리케이션의 해상도 배율 설정이 이슈가 될 수 있습니다. RAD스튜디오는 이미 10 시애틀(2015년 출시) 버전 부터 발빠르게 이를 지원하고 있습니다.

10.3 리오에서는 버튼, 툴바, 팝업메뉴 등에 포함되는 이미지를 담는 이미지 리스트에 High DPI가 적용되어 UI컨트롤, 글자 등에 더블어 이미지도 높은 해상도록 선명하게 표현하는 기술이 추가되었습니다.

 

□ TImageCollection

TImageCollection 컨포넌트는 이미지 목록별로 다양한 해상도의 이미지를 등록할 수 있는 컴포넌트입니다. TImageCollection Editor를 통해 다양한 해상도의 이미지를 등록/편집/삭제할 수 있습니다. 

 

□ TVirtualImageList

탭이미지 컬렉션(TImageCollection)에 등록된 다중해상도 이미지를 이미지 리스트로 제공하기 위해 TVirtualImageList 컴포넌트를 사용합니다. TVirtualImageList는 TCustomImageList를 상속받아 구현되었으며, 응용 프로그램이 구동되는 윈도우의 디스플레이 배율에 맞게 이미지 컬렉션의 이미지를 제공하는 역할을 합니다. 

 

□ High DPI가 적용된 이미지 리스트

위 그림은 각각 TImageList와 TVirtualImageList (+TImageCollection)을 적용한 툴바(TToolbar) 화면입니다. 100%, 150%, 225% 배율 적용 시 배율에 따라 적절한 해상도의 이미지로 선명하게 표현된 것을 확인할 수 있습니다. 

RTL 업데이트

10.3 리오는 RTL 측면에서 JSON 및 HTTP에 대한 표준 호환성 향상 등 상당한 성능 향상이 있습니다.

 

□ 데이터 컬렉션(Data Structure) 증가 정책 변경

여러가지 데이터 컬렉션(TStringList, TList, TList<T>, TQueue<T>, TSTack<T>)는 데이터가 가득차 확장이 필요하면 이전보다 2배의 크기로 크기를 증가했습니다. 이제 좀 더 유연하게 성장하도록 증가 정책이 변경되었습니다.

새로운 증가 정책은 공유 전역 함수(System.pas, GrowCollection)에 구현되며, SetGrowCollectionFunc 함수를 통해 사용자 정의 할 수 있습니다.

 

□ TStringBuilder 변경

성능 향상을 위해 일부 변경되었습니다. 메모리 증가 정책과 유사한 변경 및 중복 코드 제거 등의 전반적인 정리등을 진행했습니다.

TStringBuilder 열거형이 최적화 되었습니다. 

 

□ JSON 개선

정확성과 성능을 위해 JSON  처리 및 분석 향상이 크게 진행됐습니다

 

□ 기타 RTL 변경

10.3 이전에는 디버그 정보를 활성화 하면 컴파일러 최적화가 비활성화 되었습니다. 업데이트된 Win32 컴파일러에서 이제 최적화된 빌드를 디버깅할 수 있습니다. 

 

□ 앱 테더링 긴 문자열 전송

앱테더링에 사용되는 TTetheringAppProfile 클래스의 SendString / AsString 작업의 현재 1,400문자 길이에 제한되어 있었습니다. 10.3 에서는 다음 변경 사항 및 추가 기능을 통해 호환성을 유지하며 긴 문자열 처리가 가능하게 되었습니다.

  • 새로 추가된 TTetheringAppProfile의 SendLongString 메소드는 문자열과 스트림을 사용합니다.
  • TResourceValue.AsString은 받은 스트림에서 문자열을 반환합니다. 만약 없다면 반은 문자열 값을 반환합니다. 이는 일반 문자열과 긴 문자열에 대한 대응입니다.

문자열 길이가 1.3 KB보다 작은 경우 TTetheringAppProfile.SendString을 사용하고, 더 길다면 TTetheringAppProfile.SendLongString을 사용하기 바랍니다. 

 

□ TMemIniFile 최적화

RAD 스튜디오 10.3 리오는 TMemIniFile 구현이 최적화 되었습니다. TMemIniFile 읽기와 생성(constructing)이 10~25배 빨라지고 메모리 사용량도 절반으로 감소했습니다. TMemIniFile 작업도 향상되어 이전 구현에 비해 50~100 고속화 되었습니다.

또한 10.3에서는 다음 두가지 오버로드 생성자가 추가되고 스트림에서 TMemIniFile을 가져올 수 있습니다.

  • TMemIniFile.Create(Stream)
  • TMemIniFile.Create(Stream, UseLocale)

언어와 컴파일러 업데이트

10.3 리오는 특히 델파이와 C++빌더 모두 언어에서 큰 변화가 있습니다. 델파이는 전통적인 방식을 뛰어넘는 인라인 변수 선언 지원과 더불어 타입 추론을 지원하고 C++빌더는 19년 현재 최신 표준인 C++17을 공식 지원합니다.

 

□ [10.3.2] 델파이 맥OS 64-bit 애플리케이션 개발 지원

LLVM 컴파일러 인프라를 기반으로 하는 새로운 맥OS 64-bit 플랫폼용 델파이 컴파일러가 추가되었습니다. 지금까지 지원되었던 맥OS, 윈도우, 리눅스와 같은 다른 모든 델파이 데스크탑/서버 플랫폼과 동일한 비ARC 형식입니다.

 

□ [10.3.2] C++17, 윈도우 64-bit 지원

최신 C++표준인 C++17을 사용하는 훌륭한 컴파일러가 제공됩니다. 최신 언어 기능들을 활용할 수 있습니다.
C++17이 모든 윈도우를 완벽 지원하면서, 최신 C++ 언어 기능들을 Win32와 Win64에서 모두 활용할 수 있습니다.

 

□ 인라인 변수 선언

델파이 언어가 10.3 버전부터 로컬 변수 선언에 있어 훨씬 더 융통적으로 변합니다. 매우 핵심적인 기능 변화라고 볼 수 있습니다. 이번 업데이트는 본래 파스칼(Pascal) 언어의 핵심 개념을 깨는 변화이기는 합니다. 하지만 이 변화는 많은 장점을 제공하며, 이를 통해 불필요한 코드를 줄일 수 있습니다.

 

□ 타입 추론

인라인으로 선언 된 변수는 타입 추론의 장점이 있습니다. 직접 할당하는 인라인 변수는 형식을 지정할 필요가 없습니다. 이것은 거기에 대입 된 값에서 형식을 유추 할 수 있기 때문입니다.

 

□ Clang 업그레이드: C++17 지원

C++빌더 및 RAD 스튜디오 10.3은 윈도우 32비트용 C++17을 지원하는 업데이트된 Clang 확장 컴파일러가 도입되었습니다. 점진적인 컴파일러 업그레이드의 일환으로, 최신 C++ 언어 기능을 사용해 더욱 강력하고 간결한 코드를 작성하고, 써드파티 C++ 라이브러리를 사용해 더 강력한 애플리케이션을 구축할 수 있습니다.

 

□ Win64에서 연산 성능 향상

많은 C ++ 수학 함수가 새롭게 구현되었습니다. 이러한 방법은 이전 버전에 비해 평균적으로 약 2 배 빨라졌습니다. 

 

□ C++ 코드 보완 개선

C++ Win32 코드 보완 업데이트로 확장된 Clang 기반의 C++ 컴파일러를 사용합니다. 이로써 이전보다 훨씬 빠른 C++ 코드 보완이 가능합니다.

 

□ C++ 오류 인사이트

오류 인사이트(오류 항목 아래에 빨간색 밑줄을 그어 편집기에서 코드의 문제를 미리 확인할 수 있는 기능)가 C++빌더에서도 가능해졌습니다. 새로운 Win32용 Clang 확장 컴파일러를 사용하는 경우 이 기능이 제공됩니다.

FMX(파이어몽키) 업데이트

□ iOS12, iPhone X 시리즈 디바이스 지원

10.3.1 버전부터 최신 iOS와 아이폰 디바이스들을 지원합니다. 이는 2019년 3월부터 시행될 애플(Apple)사의 앱스토어 요구 사항에 대응하기 위해서 꼭 필요한 지원 기능입니다. 새로운 애플사의 요구사항은 ‘앱은 iOS 12.1 SDK로 구축될 것’, ‘아이폰XS Max, 아이패드 Pro를 완벽 지원할 것’ 두 가지 입니다.

이번에 업데이트된 내용은 다음과 같습니다.

  • 새 이미지 크기를 보여주는 Info.plist 업데이트
  • IDE에서 앱 아이콘, 스플래시 화면 크기 추가 지원 (아이폰/아이패드)
  • 아이패드 Pro에 대한 네이티브 해상도 지원

 

 

□ FMX용 새로운 스타일 5종 지원

새로운 스타일들을 활용해 애플리케이션 룩앤필을 빠르게 업데이트 할 수 있습니다. 제공되는 스타일들을 원하는대로 바꾸어 사용할 수도 있습니다. 10.3.1에서는 새로운 스타일이 총 15 종류가 제공되는데, 그 중 5가지는 FMX(파이어몽키)용이고 10가지는 VCL용입니다. FMX 스타일은 윈도우, 맥OS, 안드로이드, iOS 모두에서 활용할 수 있는 멀티-디바이스 스타일이고, VCL 스타일은 윈도우에서 활용 가능합니다. 그리고 비트맵 스타일 디자이너 템플릿도 포함되어 있습니다.

새로운 스타일들은 IDE의 겟잇 패키지 매니저(GetIt Package Manager)를 이용해 다운로드 받아 사용할 수 있습니다.

새롭게 추가된 5 종류의 FMX 스타일들:

  • FMX Style – Calypso
  • FMX Style – Material Oxford Blue
  • FMX Style – Puerto Rico
  • FMX Style – Stellar
  • FMX Style – Wedgewood Light

 

□ 안드로이드 API 레벨 26이상 지원

RAD 스튜디오 10.3 리오는 안드로이드 API 레벨 26을 공식 지원합니다.

구글은 보안과 성능에 최적화된 최신 API 기반으로 앱을 만들고, 사용자가 혜택을 누릴 수 있도록, 플레이 스토어에 등록 시 안드로이드 레벨 26 이상을 요구하도록 정책을 변경했습니다.(신규앱 등록 2018년 8월 부터, 기존앱 업데이트 2018년 11월 부터).

RAD 스튜디오 10.3 리오는 최신 SDK와 NDK를 지원하고, 매니페스트에 적절한 API레벨을 설정할 수 있도록 업데이트 되었습니다.

또한 최신 API에서 변경된 권한 모델등을 제공하도록 업데이트 되었습니다.

 

□ 새로운 안드로이드 런타임 권한 모델 지원

     

          [기존 권한 요청 방식]                  [새로운 권한 요청 방식]

안드로이드 API의 최신버전은 런타임 시 권한을 요청하는 매커니즘으로 변경되었습니다.

기존의 권한 모델은 설치 시 전체 권한을 승인하는 방식이었습니다. 새로운 권한 모델은 기능 사용 시 개별 권한을 묻는 방식으로, 사용자는 기능 별 허용 및 거부가 가능해졌습니다.

위 변경에 따라 10.3 리오에서는 사용 권한을 요청하는 메소드가 추가되었고, 그 결과를 콜백 메소드로 받아 기능을 수행할 수 있도록 업데이트 되었습니다. 

 

□ 안드로이드 Z-Order

XE7 버전에서 iOS용 ControlType 속성이 처음 적용되었습니다. 그리고 10 시애틀 버전에서는 이 속성이 윈도우용까지 확장되었습니다. 플랫폼 설정을 변환하면 파이어몽키 컨트롤이 런타임 시 플랫폼 네이티브 컨트롤로 전환됩니다.

10.3 RIO에서는 ControlType 속성이 안드로이드 용으로까지 확장됩니다. 그리고 이로써 얻게될 두 가지 중요한 이점을 소개하고자 합니다: 더욱 네이티브한 컨트롤과 수정된 Z-Order가 그것입니다. 

 

□ 다양한 안드로이드 네이티브 컨트롤

        [TSwitch 컴포넌트]

플랫폼에서 항상 네이티브하게 작동되는 컨트롤들은 TWebBrowserTMediaPlayerTBannerAdTMapView가 있습니다 (이 컨트롤들은 파이어몽키(FMX)가 아닌 기존 안드로이드 OS에서 렌더링 됩니다). 10.3 RIO 버전부터 필요에 따라 플랫폼에서 네이티브로 작동하는 새로운 4가지 컨트롤들을 선보입니다. 

RAD서버 업데이트

10.3 리오는 RAD 서버의 성능향상과 엔드 포인트 연동을 더 쉽고 유연하게 작성할 수 있는 특성등이 추가되었습니다.

 

□ [10.3.2] 새로운 RAD서버 관리 콘솔

새로운 기능면에서, UI와 사용 기능상의 업그레이드 외에도 REST 디버거 통합 버전이 제공된다는 점이 가장 획기적입니다. 이제 특정 RAD 서버 인스턴스에서 사용가능한 엔드포인트를 리스트로 정리하여 볼 수 있습니다.

 

□ 재설계한 RAD서버 콘솔 UI

RAD서버 콘솔 UI가 변경되었습니다. 이제 RAD서버 API 분석을 한 눈에 확인할 수 있고, Ext JS 프레임워크로 마이그레이션 할 수도 있습니다. 또한 RAD서버 푸시 알림이 더 많은 디바이스에 지원됩니다. 추가 분석 데이터에 대한 지원도 제공됩니다. 이 기능은 IDE의 겟잇 패키지 매니저(GetIt Package Manager)를 통해 다운로드 받아 사용할 수 있습니다.

 

□ 엔드포인트 메소드와 Content-Type, Accept 연동 특성 추가

커스텀 리소스에 요청 시 URL과 HTTP 메소드에만 의존하지 않고, HTTP 해더의 Accept 및 Cotnet-Type에 따라 엔드 포인트 메소드를 연결하는 특성이 추가되었습니다. 이제 동일한 URL 및 HTTP 메소드라도 Accept 및 Content-Type에 따라 다른 동작을 구현할 수 있습니다.

  • EndpointProduce : GET 메소드의 엔드 포인트에 추가할 수 있습니다. HTTP 해더의 Accept 항목 값과 일치하는 MIME 타입/파일 확장자를 파라메터로 지정합니다.
  • EndpointConsume : PUT / POST / PATCH 메소드의 엔드 포인트에 추가할 수 있습니다. HTTP 해더의 Content-Type 항목 값과 일치하는 MIME 타입/파일 확장자를 파라메터로 지정합니다.

 

□ 커스텀 메소드와 HTTP 메소드 연결 특성 추가

RAD 서버의 이전 버전에서는 HTTP 메소드(GET, POST 등)의 엔드 포인트 메소드 이름과 매핑되었습니다.

이제 위 방식 외에도 다른이름의 메소드를 엔드 포인트 메소드로 매핑할 수 있는 EndpointMethod 특성이 추가되었습니다. 

 

□ 요청 처리를 클래스 또는 컴포넌트로 위임

RAD 서버의 사용자 리소스에 발생한 요청을 필드로 지정한 다른 자원 모듈(클래스 / 컴포넌트)로 위임하는 기능이 추가되었습니다.

위임받는 클래스는 IEMSEndpointPublisher 인터페이스를 구현해야 합니다. 

 

□ JSON 처리를 위한 헬퍼 컴포넌트 추가

컴포넌트에 요청 처리를 위임하는 새로운 기능을 이용해 RAD 스튜디오 10.3 리오에서 JSON 처리를 단순화 하는 새로운 컴포넌트가 추가되었습니다.

  • TEMSFileResource: 경로 및 파일이름 속성에 지정된 파일로 요청 처리
  • TEMDDataSetResource: DataSet 속성에 설정된 데이터셋의 데이터를 JSON으로 처리, 페이징 파라메터 지원 

IDE 업데이트

□ [10.2.2] 다크 테마와 라이트 테마 지원

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

IDE 데스크탑 툴바에서 “Dark” 또는 “Light”로 테마를 변경할 수 있습니다.

  • 자세히 보기: https://tech.devgear.co.kr/delphi_news/438339

 

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

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

  • 자세히 보기: https://tech.devgear.co.kr/delphi_news/438339

 

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

View 메뉴가 분류별로 재배치 되어 더 빠르게 메뉴를 찾을 수 있습니다.
(Object Inspector, Structure, Messages 등의 도구 창은 Tool Windows 하위 메뉴로 이동되었으며 새 Editor 하위 메뉴에는 편집기의 컨텍스트 메뉴에있는 여러 가지 편집기와 유용한 기능이 포함되어 있습니다).

  • 자세히 보기: https://tech.devgear.co.kr/delphi_news/431419

 

□ [10.2] 코드 에디터 탭에서 “Show In Explorer” 기능 추가

코드 에디터 탭의 컨텍스트 메뉴에 “Show in Explorer” 메뉴가 추가되어, 편집 중인 파일 위치의 탐색기를 바로 열 수 있습니다. 프로젝트 매니저의 Show In Explorer 메뉴는 프로젝트 파일 위치의 탐색기를 바로 열 수 있습니다.

 

□ [10.2] 기타 개발환경 개선사항

  • 코드 인사이트(InSight)와 코드 완성(Completion)은 이제 정적 및 동적 배열을 올바르게 처리합니다.
  • 서로 다른 DPI에서 폼을 디자인하고 오픈 하는것에 대한 지원이 향상되었습니다.
  • 프로젝트의 매니페스트 파일 지원은 이제 Invoker, Highest Available 및 Require Administrator와 같은 몇 가지 실행 수준을 지원하며 UI 액세스 플래그도 설정할 수 있습니다.
  • IDE 로딩 속도는 네트워크 부하가 높거나 네트워크 연결이 끊긴 상태에서도 빠릅니다.
  • 100 개가 넘는 프로젝트가 있는 대형 프로젝트 그룹을 지원하는 기능이 개선되었습니다.
  • 자세히 보기: https://tech.devgear.co.kr/delphi_news/431419

VCL 업데이트

□ [10.2.2] 새로운 VCL 컨트롤

TCardPanel

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

  • 샘플 프로젝트 경로 : C:\Users\Public\Documents\Embarcadero\Studio\19.0\Samples\Object Pascal\VCL\CardPanel

 

TStackPanel

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

  • 샘플 프로젝트 경로 : C:\Users\Public\Documents\Embarcadero\Studio\19.0\Samples\Object Pascal\VCL\StackPanel

 

TDatePicker / TTimePicker

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

 

  • 샘플 프로젝트 경로 : C:\Users\Public\Documents\Embarcadero\Studio\19.0\Samples\Object Pascal\VCL\DateTimePicker

자세히 보기: https://tech.devgear.co.kr/delphi_news/438358

 

□ 고 해상도 지원

  • 폼의 경계는 WM_DPICHANGED 메시지에 대한 응답으로 올바르게 조정됩니다. 즉, 폼의 상단 / 왼쪽 위치 뿐만 아니라 TForm.AutoScroll이 올바르게 작동됩니다.
  • 시스템에 해상도가 다른 여러 모니터가 있는 경우 폼이 올바른 배율로 열립니다.
  • 다른 해상도를 사용하는 폼간에 이동 시 TTabSheet 및 TPageControl, 탭 시트 또는 페이지 컨트롤에 배치 된 ActionMainMenuBar 와 VCL 메뉴 (메인 메뉴와 팝업 메뉴)가 높은 해상도 모니터에 올바르게 표시됩니다.
  • TStatusBar의 높이가 정확합니다.
  • 메시지 대화 상자의 아이콘 크기가 올바르게 조정되었습니다.
  • 서로 해상도 모니터 간에 폼을 이동할 때 고정 된 컨트롤 위치에 유지됩니다.
  • TCheckBox 및 TRadioButton가 정확히 그려집니다.
  • 폼 상속에서 몇 가지 이슈가 해결되었습니다. 계승된 폼에서 ParentFont가 true로 설정된 패널 위에 컨트롤들이 배치 될 때 정확한 폰트 사이즈가 사용됩니다. TListView 컬럼 사이즈는 상속 된 폼에서 그대로 유지됩니다.

자세히 보기: https://tech.devgear.co.kr/delphi_news/431449

RTL 업데이트

□ [10.2] HTTP 클라이언트

64비트 리눅스에서 네이티브 HTTP 클라이언트 라이브러리(libCurl)를 지원합니다. HTTP 클라이언트에서 개선 된 비동기 지원

 

□ 64 비트 리눅스를위한 RTL 지원

RAD Studio 10.2 도쿄는 표준 시스템 함수, 스트림 및 IOUtils 유닛을 사용하여 리눅스파일 시스템을 지원합니다. 또한 64비트 리눅스에 대한 표준 RTL 경로 기능 지원을 제공합니다.

 

□ RAD 서버 다중 테넌시 지원

다중 테넌시 지원을 사용하면 하나의 RAD 서버 데이터베이스 연결을 사용하는 단일 RAD 서버 인스턴스가 분리된 다중의 테넌트를 지원할 수 있습니다.

 

 

□ 앱 테더링 개선 사항

  • TTetheringManager과 TTetheringProfile 의 새로운 SynchronizeEvents 속성은 메인 스레드와의 이벤트 동기화를 제어합니다. 따라서 이제 관리자와 프로파일은 이벤트 핸들러가 메인 스레드에서 실행되는지 여부를 제어 할 수 있습니다.
  • 로그 필터링 향상 : 더 많은 로깅 메시지가 추가되었습니다.
  • 새로 추가된 TTetheringAppProfile의 SendLongString 메소드는 문자열과 스트림을 사용합니다.
  • TResourceValue.AsString은 받은 스트림에서 문자열을 반환합니다. 만약 없다면 반은 문자열 값을 반환합니다. 이는 일반 문자열과 긴 문자열에 대한 대응입니다.

□ 추가되거나 기능 향상된 해시 함수
System.Hash 유닛에 정의 되어 있는 다음 메소드들은 스트림 또는 문자열을 입력 매개 변수로 허용합니다.

  • THashMD5.GetHashString.
  • THashMD5.GetHashBytes
  • THashSHA1.GetHashString
  • THashSHA1.GetHashBytes
  • THashSHA2.GetHashString
  • THashSHA2.GetHashBytes

System.Hash 유닛에는 파일에서 해시 다이제스트를 얻을 수 있는 다음과 같은 새로운 메소드가 있습니다.

  • THashMD5.GetHashBytesFromFile
  • THashMD5.GetHashStringFromFile
  • THashSHA1.GetHashBytesFromFile
  • THashSHA1.GetHashStringFromFile
  • THashSHA2.GetHashBytesFromFile
  • THashSHA2.GetHashStringFromFile

자세히 보기: https://tech.devgear.co.kr/delphi_news/431498

 

□ 파이어 버드 개선 사항

Direct I / O 백업 기능 지원을 위해 새로운 Direct 속성 추가

 

□ MySQL 기능 향상

MySQL v 5.7 지원

 

MariaDB v 5.5 이상 지원. FireDAC의 MySQL 노드를 사용하여 MariaDB에 연결합니다.

 

최신 MySQL 버전 5.6.x 및 5.7.x와의 호환성.

 

이전 API (MySQL 텍스트 프로토콜)와 PS API (MySQL prepared statements 프로토콜) 모두 지원됩니다.

  • TFDResourceOptions.DirectExecute 속성을 사용하여 API를 선택할 수 있습니다.
  • 사용중인 API에 따라 TFDCommand.CommandIntf.CliObj 속성은 TMySQLStatement 또는 TMySQLResult 개체를 반환합니다.

내부 BLOB 스트리밍 지원 (smOpenWrite 모드에서만).

연결 트랜잭션 상태와 TFDConnection.InTransaction 속성의 동기화 개선. 이 등록 정보를 사용하면 연결 트랜잭션이 현재 진행 중인지 여부를 결정할 수 있습니다.

 

□ TFDMemTable이 개선

  • TFDMemTable 컴포넌트를 개선하여 설계 시점에 TFDMemTable 데이터 셋을 편집할 수 있습니다.
  • TFDMemTable 컨텍스트 메뉴에 컴포넌트 데이터를 편집하여 양식에 저장할 수있는 Edit DataSet … 항목을 제공합니다. 데이터는 런타임에서도 사용할 수 있습니다.(참고 : Edit DataSet …을 사용하기 전에 TFDMemTable.FieldDefs에 대한 필드 정의를 지정하거나 영구 필드를 만들어야합니다).  

 

□ 기타 FireDAC 변경 사항

  • TFDDataMove 컴포넌트는 삭제되어 툴 팔레트에서 더 이상 사용할 수 없습니다. 대신 TFDBatchMove 컴포넌트를 사용하십시오.( 시작 > 프로그램 > Embarcadero RAD Studio 10.2 Tokyo > Samples 를 선택하고 Object Pascal\Comp Layer\TFDBatchMove\DataMove_Deprecated 폴더에 있는 FireDAC.Comp.DataMove.pas를 사용하십시오.
  • TFDBatchMove가 최적화되었습니다. 그 결과로 TFDBatchMoveMappingItem의 DestValue 및 SourceValue 속성을 더 이상 사용할 수 없습니다.
  • TFDMSAccessService는 이제 Microsoft Access 2007 이상을 지원합니다.

 

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

  • VCL의 TDBImage가 Bitmap 뿐 아니라, JPEG과 PNG 그래픽 형식을 지원합니다.
  • 기타 다른 그래픽 포맷을 지원하려면 OnFindGraphicClass 이벤트의 GraphicClass 파라메터에 그래픽 처리 클래스를 매핑해 추가 지원할 수 있습니다.

 

□ Blob Field Display 옵션 강화

  • Blob 형식의 데이터를 클래스 형식 또는 문자열로 표현할 수 있습니다.
  • DisplayValue로 표시형식을, DisplayWidth로 표시 길이를 지정할 수 있습니다.

 

□ 기타 데이터베이스 개선

  • TField 클래스에 대한 직접 GUID 액세스.

 

자세히 보기: https://tech.devgear.co.kr/delphi_news/431411

FMX(파이어몽키) 업데이트

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

iOS의 시스템 상태 표시줄 동작을 변경하기위한 SystemStatusBar.BackgroundColor 및 SystemStatusBar.Visibility와 같은 두 가지 새로운 속성이 TForm에 추가되었습니다.

 

□ TMultiView의 개선된 기능

  • Enabled 속성을 사용하여 TMultiView와의 사용자 상호 작용을 해제합니다.
  • BorderOptions 속성이 추가되어 테두리 모양을 관리할 수 있습니다.
  • 도킹 패널 모드에 Top과 Bottom 속성이 추가되었습니다.

 

 

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

델파이 코드가 이제 자바 UI 쓰레드에서 실행되어, 델파이로 자바 UI 코드 작성 시 쓰레드 동기화가 필요 없습니다. CallUIThread 메소드는 이제 더이상 사용되지 않습니다.

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

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

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

 

□ 기타 FireMonkey 변경 사항

  • TagObject 및 TagString 속성을 TListViewItem에 추가했습니다.
  • TStringGrid 이벤트를 다시 노출했습니다
  • TText, TStyleTextObject, TActiveStyleTextObject, TTabStyleTextObject 및 TButtonStyleTextObject와 같은 텍스트 컨트롤에 ICaption에 대한 지원이 추가되었습니다.
  • Windows 용 TWebBrowser에 대한 FMX 개선
  • TEdit에 CharCase 속성이 추가되었습니다.
  • FMX.Platform.Android.pas 향상
  • TForm의 Release 메소드는 더 이상 사용되지 않습니다.
  • 안드로이드에서 ShowModal의 변경.

 

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

맥 및 안드로이드용 새로운 파이어모몽키 스타일이 추가되었습니다. 다음 위치에서 새로운 스타일을 확인 할 수 있습니다.

  • C:\Users\Public\Documents\Embarcadero\Studio\19.0\Styles\MacOS\macOSgraphite.fsf
  • C:\Users\Public\Documents\Embarcadero\Studio\19.0\Styles\Android\AndroidWearDarkBlue.fsf

자세히 보기: https://tech.devgear.co.kr/delphi_news/431389

RAD서버 업데이트

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

10.2.2에서 RAD 서버 싱글 사이트 라이선스를 제공합니다.(RAD 스튜디오, 델파이, C++빌더 엔터프라이즈 및 아키텍트 에디션에만 포함)

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

자세히 보기: https://tech.devgear.co.kr/delphi_news/438369