"RAD 스튜디오 13 Florence(플로렌스) - 릴리스 2"를 정리한 Docwiki (원문 보기)를 번역한 글입니다.
도움말 메인 페이지(영문)로 이동 >>
과거 버전들의 새 기능 모아 보기(영문)로 이동 >>
RAD Studio 13 Florence(플로렌스) 업데이트 릴리즈인 13.2가 출시되었다 (2026년 9월 17일)
알아둘 점:
이 버전에 포함된 기능을 확인해 보자:
RAD Studio 13 Florence(플로렌스) - 릴리스 2(13.2라고도 부름)를 이제 설치할 수 있다. RAD 13.2는 RAD Studio 13의 기능을 바탕으로 한다. 그래서 기존 기능들을 제품 전반에 걸쳐 강화하고 새로운 기능들을 추가했다.
다음 섹션들은 영역별 주요 13.2 향상들을 보여준다. 주요 품질 초점 영역은 다음과 같다:
- IDE 및 IDE 도구들
- 써드-파티(Third-Party) 포매터를 위한 OpenTools API
- Delphi LLVM20 Linux 컴파일러
- Windows Arm64EC
- C++ Clang 20 컴파일러와 도구 체인
- 디버거
- Delphi Android
- 새 VCL 컨트롤들
- FMX 스타일 디자이너 확장
- FireDAC(파이어닥)
- WebStencils와 인터넷
- RAD Server(라드 서버)
목차
- 1. 13.2에서 강화된 점을 제품 영역 별로 보기
- 2. IDE 및 IDE 도구들
- 3. 컴파일러, 도구 체인들, 플랫폼들
- 4. 라이브러리
1. 13.2에서 강화된 점을 제품 영역 별로 보기
아래 영역 별로 주요 13.2 향상들을 볼 수 있다.
2. IDE 및 IDE 도구들
다음 섹션은 IDE와 IDE 도구들에 대한 향상과 개선 사항을 상세히 다룬다.
2.1 Navigator 통합
RAD Studio 13.2 릴리스에는 navigator 플러그인이 통합되었다. 그리고 에디터 미니맵을 향상시켰다. 그래서 활성 줄이 표시된다. 또한 스크롤바 주석, 중단점, Error Insight 주석 등에 대한 지원도 추가되었다.
- Goto: 빠른 이동을 위한 내비게이션 대화상자다. 코드 기반 안에 있는 유닛, 타입, 메서드, 기타 심벌에 빠르게 접근하도록 한다.
- 구성(Configuration): Navigator 구성은 Tools Options 대화상자 안에 있다.
- 미니맵(Minimap): 현재 모듈의 미리보기를 제공한다. 코드 에디터 옆에 표시된다.
2.2 써드-파티(Third-Party) 포매터를 위한 OpenTools API
IDE는 새 OTA(OpenTools API) 인터페이스를 제공한다:
이 인터페이스들에는 포매터를 등록하고 등록 해제하는 함수(AddFormatter / RemoveFormatter)가 포함되어 있다.
2.3 재구성된 Code Insight 옵션 창
이번 릴리스는 Code Insight Options 페이지를 재구성했다. 그래서 각 언어별로 별도의 페이지를 추가했다.
2.4 IDE 향상들
RAD Studio IDE에는 그 밖에도 여러 향상과 관련 품질 수정 사항이 있다. 가장 관련성 높은 것들을 여기에 나열한다.
2.4.1 FMX Style Viewer 도구들의 HighDPI 지원
FMX Style viewer의 도구들은 DPI를 인식하지 못했었다. 그래서, 고해상도 디스플레이에서 스케일링 즉, 배율확대가 좋지 않았다. 이번 릴리스에서는 아래 도구들이 High DPI를 인식하도록 업데이트되었다. 그래서 Per-Monitor v2를 지원한다:
- FMXControlStyleViewer.exe
- FMXMetropolisUIStyleViewer.exe
- FMXMobileStyleViewer.exe
- FMXStyleViewer.exe
- FMXWinModernStyleViewer.exe
2.4.2 IDE Insight 향상들
이번 릴리스에는 다음과 같은 IDE Insight 향상들이 포함된다:
일치하는 결과가 없을 때(No Matches Found) 표시되는 대화상자를 향상시켜, 사용자 경험을 향상했다.
사용자가 원하는 IDE Insight 경험을 구성할 수 있도록 새로운 IDE Insight 옵션 창이 추가되었다.
IDE Insight 팝업 항목 화면을 향상시켰다. 간격이 개선되었고 IDE의 테마 인식 색상을 지원한다.
2.4.3 에디터의 중괄호/괄호 짝맞춤 향상
이번 릴리스는 Delphi와 C++ 양쪽 모두에서, 에디터의 중괄호와 괄호 짝맞춤과 관련된 기존 문제 몇 가지를 해결했다. 이 향상은 다음과 같은 시나리오를 고려한다:
- 짝 중 하나가 문자열이나 주석 안에 있다면, 마찬가지로 문자열이나 주석 안에 있는 다른 짝하고만 매칭한다.
- 짝 중 하나가 문자열이나 주석 안에 없다면, 문자열도 주석도 아닌 다른 짝하고만 매칭한다.
- 이미 문자열이나 주석 안에 있는 경우에는, 해당 중첩가능한 플래그를 무시한다.
- 암시적인 방향이 없는 짝의 경우, 양쪽의 구문 강조 표시를 살펴서 그것이 시작인지 끝인지 파악한다.
2.4.4 폼 상속(Form Inheritance) 향상들
이번 릴리스에는 폼 상속과 관련된 여러 향상이 포함된다. HighDPI IDE 안에서 기반 폼과 상속된 폼의 스케일링을 더 잘 반영한다. IDE 안에서 상속된 폼을 열 때 기반 폼이 자동으로 열리는 기능을 향상시켰다. 또한 관련된 몇 가지 오래된 문제들도 함께 해결했다.
2.4.5 한 글자씩 밀리는 삽입 문제 해결
이번 릴리스는 에디터에서 발생하던 몇 가지 오래된 문제를 해결했다. IDE CodeManager를 사용해 코드를 추가 즉 이벤트 핸들러나 프로젝트 파일 정보 등을 추가할 때 그리고, 소스 코드가 CRLF(캐리지 리턴 + 라인 피드) 대신 LF(라인 피드)를 사용하는 경우에 있던 문제들이 해결되었다.
이제 LF와 CRLF 모두, 에디터가 예상대로 동작한다. 실패하지 않는다.
2.4.6 새 컨트롤 힌트(Hint)
예전에, VCL 디자이너는 컴포넌트와 컨트롤에 힌트를 제공하는 방식으로 마우스 아래에 있는 컨트롤에 대한 핵심 정보를 표시했다. 아래와 같다:
Florence 13.2 릴리스는 표시 정보를 크게 확장했다. 그리고 가독성도 향상했다. 더 부드러운 서식과, 불리언(Boolean) 값 같은 특정 정보에 대한 시각적 지원 향상 덕분이다. 이제 버튼에 대한 힌트의 모습은 아래와 같다:
2.4.7 기타 IDE 변경 사항
- 이번 릴리스는 구성을 업데이트했다. 그래서 멀티라인 프로퍼티 에디터를 사용하도록 했다. 즉, 컬렉션 안에서 여러 줄로 된 문자열 값을 사용할 수 있다.
- 이번 릴리스에서 IDE는, C++ 기능에 대한 구문 강조 표시가 향상되었다. 이제 이진 리터럴, 숫자 구분 기호, raw 문자열 리터럴 같은 것들이 더 잘 표시된다.
- RAD Studio 버전 13.2는, Object Inspector에서 단일 문자열에 적용되던 2,000자 제한을 없앤다. 이 변경은 Object Inspector의 멀티라인 문자열 프로퍼티 에디터에는 영향을 주지 않는다.
- 새 에디터 옵션 "Reload Open Modules"가 추가되었다. 이것은 IDE 안에 열려있는 모든 모듈들을 다시 불러온다. 만약 모듈을 다시 불러올 수 없을 때는 경고가 표시된다.
- 메인 메뉴를 IDE 제목 표시줄에 배치하는 옵션이 포함되었다. 그래서 UI의 공간 효율을 더 높일 수 있도록 했다.
- C++에 있던 이슈 하나를 해결했다. 즉, 백슬래시(\)로 끝나는 줄 주석이 예상치 못한 결과를 낳던 문제가 해소되었다.
- 사용자의 clang-format 파일이 있을 때 C++ 포매터가 깨지던 문제가 더 이상 발생하지 않는다.
- IDE가 키보드 단축키를 렌더링할 때, 이제는 키 캡(Key Cap) 형태로 표현한다(모던 UI 스타일 사용).
3. 컴파일러, 도구 체인들, 플랫폼들
이 섹션은 컴파일러, 도구 체인, 플랫폼에 대한 향상을 상세히 다룬다.
3.1 Delphi LLVM20 Linux 컴파일러
13.2 릴리스는 중요한 업데이트들을 Delphi Linux 컴파일러에 제공한다. 여기에는 LLVM 20 지원도 포함된다. 그래서, RAD Studio 13.1에서 도입되었던 Arm64EC Delphi 컴파일러와 같은 수준이 되었다. 이 새 컴파일러 자체는 64비트 바이너리이다. 그래서 64비트 RAD Studio IDE에 통합될 수 있다.
이전에는, Linux용 Delphi 컴파일러인 DCCLINUX64는 LLVM v3.3을 백엔드로 사용했었다. 이제는 LLVM v20.1.8을 사용하도록 업그레이드되었다. 이것은 DCCARM64EC가 사용하는 것과 동일한 백엔드이다.
LLVM v20.1.8에서 나온 커스터마이징된 LLD 버전인, dcc-ld.lld.exe는 이제 공식 링커로 사용된다. 그래서 단종된 GNU gold 링커인 ld-linux.exe를 대체한다. 이는 DCCARM64EC가 사용하는 것과 동일한 링커 기술이다.
또한, 이번 릴리스는 DWARF v2에서 v4로 업그레이드했다. 그 결과 더 완전한 디버그 정보를 얻을 수 있다. 또한 프론트엔드 리팩토링도 포함되어 있다. 이는 디버그 메타데이터가 생성되는 방식을 향상시킨다.
이번 업데이트의 중요한 변경 사항은, 이제 애플리케이션이 glibc 2.31에 링크된다는 점이다. 그 결과, 애플리케이션은 Ubuntu 20.04 LTS보다 오래된 배포판 (예: Ubuntu 18.04)에서는 실행되지 않을 것으로 예상된다.
알아둘 점:
Ubuntu 20.04 LTS는 현재 동작한다. 하지만, 공식 지원 대상은 아니다.
이 새 Linux 컴파일러에는 또한 새로운 IR 최적화들도 포함된다. 이 최적화들은 런타임 성능에서 상당한 향상을 제공한다.
알아둘 점:
새 DCCLINUX64의 빌드 시간은 상당히 더 길다. 이제는 새 IR 최적화들이 활성화된 그 이유에 해당된다. 하지만 LLVM v20 백엔드 자체가 LLVM v3.3보다 훨씬 더 복잡하다는 것도 이유다.
DCCLINUX64의 32비트와 64비트 버전 모두, Delphi 애플리케이션의 Linux 64비트 타겟을 지원한다. Delphi용 64비트 IDE에서 이제 사용자가 타겟으로 삼을 수 있는 것은 이제 Win64, Arm64EC, Linux64이다.
3.2 Delphi Windows Arm64EC 향상들
이번 릴리스에서, Delphi Windows Arm64EC 컴파일러에는 런타임 패키지를 빌드하기 그리고 사용하기를 지원할 수 있게 되었다. 다음 섹션들은 이 주제 그리고 기타 이 플랫폼에 관련된 향상들을 상세히 다룬다.
3.2.1 Windows Arm64EC용 동적 패키지
이번 릴리스는 DCCARM64EC용 동적 패키지 구현이 들어갔다. DCCARM64EC는 WinArm64EC용으로 새로 추가된 Delphi 컴파일러이다.
WinArm64EC 애플리케이션은 이제 동적 패키지를 생성하기와 사용하기를 둘 다 할 수 있다.
패키지 지원은 이전에도 가능했다. .dcu, .o, .dcp 파일들이 정적 링크용으로 생성될 수 있었기 때문이다. 이번 업데이트를 통해, BPL에 의존하는 애플리케이션들 또는 Link with runtime packages(런타임 패키지를 통한 링크)가 활성화된 애플리케이션들도 이제는 예상대로 동작한다.
알아둘 점:
WinArm64EC의 주요 장점 중 하나는 x64 DLL을 로드하는 능력이다. 하지만, x64 BPL은 Arm64EC 애플리케이션이 로드하지 못한다. 이는 DCC64가 역사적으로 표준 ABI를 따르지 않았기 때문이다. DCCARM64EC에는 개별적인 ABI 불일치가 여전히 있을 수 있다. 하지만, 우리의 목표는 DCCARM64EC가 표준 ABI와 완전히 일치하도록 하는 것이다. 이런 이유로, 현재의 DCC64 컴파일러가 생성한 x64 BPL은 Arm64EC 애플리케이션에서 지원되지 않는다.
3.2.2 FastMM4는 WinArm64EC의 기본 메모리 매니저이다
13.2 릴리스에는 WinArm64EC를 위한 더 상세한 메모리 매니저(memory manager) 분석이 포함되어 있다. 바로 rpmalloc이다.
rpmalloc은 UCRT 메모리 매니저와 수준이 같은 할당 성능을 유지한다. 그러면서도, 재할당 속도를 크게 향상한다. rpmalloc은 더 빠르다. 하지만, 애플리케이션의 메모리 사용량을 증가시킨다. 그리고 메모리 누수 보고 기능을 제공하지 않는다.
이번 릴리스부터, Win32와 Win64용 메모리 매니저가 WinArm64EC로 포팅되었고, 새 기본값이 되었다. rpmalloc은 선택할 수 있는 메모리 매니저로 계속 제공된다. 활성화하려면, .dpr의 uses 절 맨 앞에 System.RPMalloc을 추가하면 된다.
새 유닛 System.RPMalloc은 WinArm64EC와 Linux64에서 사용할 수 있다.
3.2.3 Windows Arm64EC 품질 향상들
아래는 Delphi Arm64EC 컴파일러에서 가장 주목할 만한 수정과 향상 목록이다:
- WinArm64EC의 부동소수점 성능을 향상시켰다. 그러기 위해, 예외 처리를 최적화했다. 그 덕분에, Exp는 약 25배 빨라졌다.
- RPmallocMM.inc를 제공했다.
- 임포트된 가변 인자(variadic) 함수 호출을 추가했다.
- RTTI 기반 호출 로직을 추가했다.
- class var, class threadvar, 헬퍼, open array에 대한 디버그 정보를 추가했다.
-
external 함수 선언에 지정하는 정적 라이브러리로, 기존
.a파일에 더해 이제.lib파일도 지원한다. - midas.dll의 Arm64EC 버전을 추가했다.
- 제네릭을 많이 사용하고 있는 코드의 빌드 시간을 향상시켰다. Spring4D에서 20% 향상이 측정되었다.
- YieldProcessor 빌트인을 구현했다.
- WinArm64EC용으로 리소스 문자열(.drc) 파일이 잘못 생성되던 문제를 수정했다.
- 다양한 링킹 오류들을 수정했다. 즉, .imp.o 파일 누락으로 발생하던 문제들이 해소되었다.
3.3 WinArm64EC와 Linux64를 위한 병렬 코드 생성
WinArm64EC와 Linux64용인 우리의 LLVM 기반 Delphi 컴파일러의 새 세대 버전이다. 이것은 더 최신 LLVM 버전과 새 최적화기를 통해 만들어졌다. 이제 병렬 코드 생성을 지원한다. 병렬 코드 생성은 빌드 시간을 현격하게 줄일 수 있다. 성능은 DDC64에 가까운 수준이다.
병렬 코드 생성의 효과가 가장 큰 곳은 유닛이 많은 프로젝트, 특히 Release 모드인 경우이다. 모든 FMX 유닛을 다시 빌드하고 얻은 테스트 결과, Debug 모드는 2배 더 빨랐고 Release 모드는 14배 더 빨랐다.
이 기능은 DCCLINUX64와 DCCARM64EC에서만 사용할 수 있다. 이것들은 기본적으로 활성화되어 있다. "메모리 부족" 오류의 위험을 줄이기 위해, 64비트 컴파일러 버전에서만 활성화되어 있다.
알아둘 점:
이 기능은 32비트 IDE와 32비트 명령줄 컴파일러의 Linux에서는 사용할 수 없다. 이 기능은 64비트 IDE와 64비트 컴파일러에서만 사용할 수 있다.
비활성화하거나 스레드 개수를 제한하려면, Compiling and Running IDE 옵션 안에 새로 추가된 Number of workers 필드를 사용하면 된다.
개별 프로젝트별로 병렬 코드 생성을 비활성화하는 것도 가능하다. Project > Options 메뉴의 Enable parallel codegen 필드를 사용하면 된다.
또한, 병렬 코드 생성은 다음 옵션들을 사용해 명령줄에서 제어할 수 있다:
--parallel-codegen:auto 워커 스레드 개수를 자동으로 선택한다.
--parallel-codegen:none 병렬 코드 생성을 비활성화한다.
--parallel-codegen:<N> 지정된 개수의 워커 스레드를 사용한다.
--parallel-codegen 옵션을 지정하지 않으면, 기본적으로 --parallel-codegen:auto가 사용된다.
3.4 Delphi LLVM20 컴파일러의 코드 생성 향상들
13.2 릴리스는 새로운 최적화를 도입했다. 그래서 Delphi의 LLVM 컴파일러 도구체인 안에 상당한 성능 향상을 얻을 수 있게 되었다. 이 변경 사항들은, 오직 LLVM 20으로 업데이트된 컴파일러(즉, Windows ARM과 Linux Intel) 안에서만 작동한다.
이전에는 이랬다. 해당 패스들에 적합한 IR을 활성화하기 그리고 LLVM 3.x는, IR의 선택된 부분에게 필요한 세밀한 최적화 제어를 제공하지 못했었다. LLVM 버전 20 업그레이드 그리고 이와 관련된 Delphi 프론트엔드 리팩토링을 통해, LLVM 최적화가 활성화될 수 있었다. 그 결과 상당한 런타임 성능 향상을 Linux와 Windows Arm64EC의 Delphi 애플리케이션에게 제공한다.
아래 이미지는 현격한 런타임 성능 향상을 Release 모드에서 얻는 것을 보여주는 테스트 결과다.
Windows:
Linux:
알아둘 점:
빌드 시간에 대한 영향이 주로 나타나는 경우는 Release 모드이다. 빌드 시간이 약 34%에서 42% 늘어난다. Debug 모드의 경우, DCCARM64EC에서 변화가 없다.
3.5 C++ Clang 20 컴파일러와 도구 체인 향상들
이번 릴리스에서는 C++Builder의 패키지 지원이 향상되었다. 우리가 집중한 영역은 패키지 기반 개발을 더 신뢰할 수 있고 더 예측 가능하도록 하는 것이다. 이 변경 사항들이 해소하는 문제들은 패키지 사용, 빌드 동작, 링킹, IDE와의 통합을 둘러싼 문제들이다.
또한, 이번 릴리스에는 Win64x에서 Delphi 메모리 매니저를 지원하는 기능도 추가되었다. Win64x(Modern) C++ 타겟은 MSVC와 호환되도록 설계되어 있다. 그래서, 기본적으로 UCRT 메모리 매니저를 사용한다. 그런데, 메모리 할당 관련 성능 문제를 완화하고 싶을 때 선택할 수 있는 경로도 추가로 제공한다. 그래서, 사용자는 C++를 Delphi RTL 메모리 매니저로 명시적으로 전환할 수 있다. 그러려면, 필요한 심벌을 메인 프로젝트 소스 파일 안에 정의해야 한다. 다음과 같다:
int __CppUseDelphiMemMgr = 1;
3.5.1 IDE와의 더 좋은 BCC64X 통합
RAD Studio 13.2 릴리스부터, BCC64X는 인프로세스(in-process) 컴파일러로도 제공된다. 즉, compclang201.dll이 제공된다. 그저 bcc64x.exe 명령줄 도구로만 제공되는 게 아니다. 따라서, 보다 정확한 파일과 줄 진행 상황, 소스 내비게이션이 가능한 Messages 창의 구조화된 진단 정보, 신속하게 반응하는 취소, 반응성 있는 UI 등의 효과를 얻을 수 있다.
기존 컴파일러 DLL들과는 달리, compclang201.dll은 병렬 컴파일을 지원한다. --jobs=N을 붙이면 된다. BCC32C와 BCC64에서 이것을 구현한 방법은 서브프로세스를 실행하는 것이었다. 그러려면 별도 프로세스에서 C++ 컴파일러 실행하기(Run C++ compiler in a separate process) 옵션이 필요했다. 즉, IDE 통합에서 벗어났다. BCC64X는 동일한 프로세스 안에서 스레드를 사용한다. 그래서 --jobs=N은 bcc64x.exe와 compclang201.dll 양쪽 모두에서 동작한다. 그리고 완전한 IDE 통합을 유지한다. 32비트 IDE는 Win64x 병렬 컴파일을 4개 스레드로 제한한다. "메모리 부족" 오류의 위험을 줄이기 위해서이다. 64비트 IDE에는 그런 제한이 없다.
빌드 중에는, Build 창에서 현재 컴파일 중인 파일을 볼 수 있다. 병렬로 컴파일되는 파일에는 (+N) 접미사가 붙는다. 모든 파일에 걸쳐 합산된 줄 수도 함께 표시된다.
3.5.2 품질 향상들
이 섹션은, C++ Win64x와 C++ 패키지에 대한 여러 품질 향상을 나열한다. 13.2 릴리스에 들어간 주요 품질 향상은 아래와 같다.
- 아이콘 리소스들을 담고 있는 여러 .res 파일을 링크할 때, 아이콘 그룹 리소스가 깨지던 문제를 수정했다.
- Project Options 변경 후, C++ Builder에서 과도한 재빌드가 발생하던 문제를 수정했다.
-
순환하는
__property정의를 거부하도록 했다. 그래서 깨지지 않도록 했다. - 리소스/dfm 파일 경로 해석 문제를 수정했다.
- 패키지 의존성 정보(.pdi) 파일을 자동 생성한다. 링크 시점에 이루어진다.
- 64비트 타겟에서 디자인 타임 C++ 패키지 빌드 문제를 수정했다.
- 64비트 IDE용 C++ 디자인 타임 샘플 패키지 dclbcbsmp를 수정했다.
- Delphi 유닛을 담고 있는 C++ 패키지들을 빌드할 때 발생하던 문제를 수정했다.
- 다른 패키지에서 .pas 파일을 담고 있는 C++ 패키지를 사용하는 경우에 발생하던 실패를 수정했다(_init_record<UnitName> 익스포트 누락으로 인한 문제).
3.6 Delphi Android
RAD Studio 13.2 릴리스에 포함된, Delphi Android를 위한 주요 업데이트는 다음과 같다:
-
manifest의
miniSdkVersion속성 기본값을23에서24로 높였다. - 설치 관리자와 NDK 통합이 동일한 버전을 사용하도록 업데이트했다.
-
Google AdMob 라이브러리(plays-services-ads)를 버전
25.3.0으로 업데이트했다. -
Android Google Maps 라이브러리(plays-services-maps)를 버전
20.0.0으로 업데이트했다. -
Billing 라이브러리를 버전
9.1.0으로 업데이트했다. - Android의 연령 확인(Age Verification)을 위한 '저수준 플랫폼 지원'을 추가했다.
-
플랫폼 연령 확인 API(버전 0.0.4)에 접근할 수 있는 새 유닛인
Androidapi.JNI.PlayAgeSignals유닛을 추가했다.
알아둘 점:
Android에서 연령 확인 API를 사용하기 전에는, 반드시 Application > Entitlement List 옵션 페이지에서 새로운 'Age Signals Service' 옵션을 활성화해야 한다.
3.7 iOS
이번 릴리스는 iOS용 연령 확인(Age Verification) API를 도입한다. DeclaredAgeRange와 PermissionKit 같은 프레임워크들로 구현되어 있다.
3.8 디버거 향상들
13.2 릴리스는, C++과 Delphi 전반에 걸쳐 여러 디버거 향상을 포함한다. 집중한 영역은 값 시각화, Local Variables와 Watch 표시, 표현식 평가이다.
이 변경 사항들은 현대적인 C++ 데이터 구조들(std::optional, std::any, std::variant, std::tuple, STL 반복자 등)에 대한 검사를 향상시킨다. 이와 동시에, Delphi 64비트 디버깅 경험도 강화한다. 주로 Variants, 배열, 인덱스/기본 프로퍼티, 실행 지점의 신뢰성 등이 개선되었다.
또한, 디버거에는 여러 작업흐름들과 성능 향상들도 포함되었다. 예를 들어, Project > Options > Debugger 아래의 Symbol table 옵션은, 이제 사용자가 무슨 모듈을 디버깅할 것인지를 지정할 수 있도록 한다. 또한, 이번 릴리스는 Thread-name 예외 처리를 최적화했다. 그래서, 불필요하게 IDE 프로세스를 중단시키는 일이 더 이상 없다. 스레드 정보 수집을 각 스레드의 최상위 프레임으로 제한한다. 또한 프로세스 중단 중에 발생하던 중복되는 스레드 정보 호출도 없앴다. 사용자 정의 환경 변수도 이제 디버그 프로세스에 올바르게 전달된다.
심벌 정보를 읽어오는 메커니즘도 향상되었다. 그래서, 대규모 프로젝트에서 디버깅 성능이 높아졌다. 전반적으로, 디버거의 안정성도 향상되었다.
3.9 기타 Delphi 컴파일러 변경 사항
이번 릴리스는 Delphi 컴파일러에 선택적 컴파일러 최적화를 도입한다. 새 컴파일러 지시문을 도입해, 사용자가 특정 최적화를 활성화할 수 있도록 했다. 예전처럼 전부 아니면 전무(all or nothing) 방식이 아니다.
{$OPTIMIZATION <feature> ON|OFF}
현재로서는, 두 가지 최적화 즉 CMOV와 IFCONV에 대해서만 활성화된다. 다음 지시문을 사용하면 된다 :
{$OPTIMIZATION CMOV ON|OFF}
{$OPTIMIZATION IFCONV ON|OFF}
4. 라이브러리
이 섹션은 RAD Studio 라이브러리에 대한 모든 업데이트와 향상을 설명한다.
4.1 새 VCL 컨트롤들
이번 릴리스는 두 가지 새로운 현대적 VCL 컨트롤을 새로 도입했다. TTabView와 TNavigationView다.
4.1.1 TTabView 컨트롤
새 TTabView 컨트롤은, TTabSet 컨트롤(계속 사용 가능)의 새로운 현대적 변형이다. 이 컨트롤에는 고급 기능을 갖춘 탭 컬렉션이 포함되어 있다. 시각적으로 이 컨트롤은 TFormTabsBar 컨트롤처럼 보인다. 하지만, 다음과 같은 새로운 추가 기능을 갖추고 있다:
- 탭은 폼뿐 아니라 다양한 컨트롤을 호스팅할 수 있다.
- 각 탭에는 이미지, 여러 줄 텍스트, 닫기 버튼이 있다.
- 드롭다운 버튼이 있다. 이것은 탭의 전체 목록을 드롭다운 메뉴로 보여준다. 또한 새 탭을 추가하는 버튼이 있다.
- 스크롤 버튼이 탭의 왼쪽과 오른쪽에 배치된다.
이 컨트롤은 Microsoft의 WinUI TabView 컨트롤과 닮았다는 점을 참고하자. 이 컨트롤은 TTitleBarPanel과 함께 사용할 수 있다.
다른 컨트롤과의 상호작용은 TabIndex 프로퍼티,특정 이벤트들(OnInitTab, OnSelectTab 등), 그리고 아래에 있는 탭을 위한 특정 프로퍼티들을 통해 이루어진다:
- Data: TPointer
- Control: TControl
- Tag: Integer
4.1.2 TNavigationView 컨트롤
TNavigationView 컨트롤(WinUI NavigationView와 유사)은, 수직형 항목 컨트롤이다. 이것은 어떤 멀티페이지 컨트롤, TFrame, 페이지들을 담고 있는 써드-파티(Third-Party) 컨트롤과도 함께 사용할 수 있다.
TNavigationView 컨트롤에는 수직 항목 컬렉션이 포함되어 있다. 이는 고급 기능을 갖추고 있다. 항목은 특정 프로퍼티와 이벤트를 가진 컨트롤(예를 들어 TCardPanel 컨트롤)과 연결할 수 있다. 각 항목은 이미지와 여러 줄 텍스트를 포함할 수 있으며, 특정 이벤트에 맞게 시각적으로 커스터마이징할 수 있다. 항목은 스크롤할 수 있고, 드래그해서 순서를 바꿀 수도 있다. 컨트롤은 일반 너비 또는 컴팩트 너비 중 하나를 가질 수 있다.
아래 예시는 이 새 컨트롤을 사용하는 데모이다:
4.2 FMX 스타일 디자이너 확장들
이번 릴리스는, RAD Studio 13.1에서 도입된 FMX Style Designer 기능을 확장했다. 그러기 위해 방대한 새 기능 세트를 붙였다. 이제는 이 도구에 직접 접근할 수 있다. Tools > FMX Style Designer로 가면 된다.
새 기능들 중, 이것들이 가장 중요한 추가 사항이다:
- Bitmap Style Designer로 생성된 VSF 스타일 형식 파일을 로드한다. 그래서 기존 스타일을 시작점으로 놓고 거기에서부터 작업할 수 있다.
- Sizes 섹션의 이름을 변경했다. 이제는 Variables 섹션이다. 이것은 이제 소수 값을 지원한다. 이는 glow나 shadow softness 같은 효과 프로퍼티에서 유용하다.
- Search 탭을 사용하면, 대규모 프로젝트에서 이름으로 색상, 스타일, 기타 리소스를 빠르게 찾을 수 있다.
-
스타일 분석 도구는 프로젝트를 스캔해 다음을 표시한다 :
- 사용되지 않는 색상, 글꼴, 효과, 이미지.
- 더 이상 존재하지 않는 요소를 가리키는 깨진 참조.
- 중복된 스타일 이름.
- 빈 스타일 이름.
- 벡터 도형 요소에는 기존 Rectangle에 더해, Circle과 Ellipse가 추가되었다.
- 벡터 요소들을 위한 래스터화(Rasterize) 옵션. 비트맵 기반 스타일이 필요하거나 선호되는 경우를 위한 옵션이다.
- 기존 Shadow에 더해, 새로 Glow 효과를 추가했다.
- 여러 효과를 결합해 동일한 요소에 적용할 수 있도록 지원.
- 그라디언트 색상 리소스들.
- 효과는 스타일의 Text와 Icon 프로퍼티 바로 아래에서 구성할 수 있다.
- 워드랩, 정렬, 트리밍 등 텍스트 파라미터를 포함하는 완전한 텍스트 레이아웃 제어.
4.3 FireMonkey 품질 향상들
이번 릴리스의 FireMonkey 향상에는 아래와 같은 것들이 포함된다:
- Skia4Delphi를 버전 7.1.0에서 버전 7.2.0으로 업데이트했다. 이 업데이트는 Windows 7 지원을 복원하고, Linux 호환성을 넓힌다. 또한 렌더링 성능 수정들도 포함되었다.
- FireMonkey 애플리케이션의 반응성을 다시 다듬고 향상시켰다. Windows 플랫폼에서 애니메이션을 사용하는 애플리케이션을 위한 개선이다.
- 최소 지원 API 레벨을 24 이상으로 설정한 애플리케이션인 경우에는, classpath를 Android DEX 컴파일러에게 제공하지 않도록 했다(해당 도구를 호출할 필요가 없기 때문이다).
4.4 FireDAC(파이어닥)
이번 릴리스의 FireDAC 업데이트에는 아래와 같은 것들이 포함된다:
- PostgreSQL 18.4를 지원하도록 FireDAC를 업데이트했다.
-
off연결 파라미터(connection parameter)를 추가했다. 기본값은off다. - Linux에서의 Informix 지원을 추가했다. Connect to Informix 페이지를 참고하면, Linux에서 Informix ODBC 드라이버와 함께 FireDAC를 사용하는 방법에 대한 자세한 정보를 볼 수 있다.
4.5 WebStencils(웹스텐실즈)와 인터넷
다음 섹션은, 13.2 릴리스에 포함된 WebStencils와 인터넷 관련 업데이트 및 향상들을 나열한다:
-
WebStencils는 이제 데이터셋의 TField 정보에 접근하는 명시적인 방법을 제공한다. 특정 패치(
@dataset.fields.<fieldname>)를 사용하면 된다. - ESocketTimeoutError 라는 특정 예외 클래스를 System.Net.Socket에 추가했다.
- IHTTPNativeAPI 인터페이스를 추가했다. 그래서 HTTPRequest의 원본 인증서 컨텍스트에 접근할 수 있도록 허용한다. Windows와 Linux 상에서 IHTTPRequest와 IHTTPResponse에 의해 구현된다.
- REST OAuth 지원에서, 이번 릴리스는 PKCE를 사용한 Authorization Code Flow를 추가했다. 이를 구현하기 위해, 새 프로퍼티가 추가되었다: TOAuth2Authenticator.UsePKCE / CodeVerifier.
-
TWebFileDispatcher의 URL 매칭 로직(고정 경로 대 마스크 경로)이 향상되었다. 경로가 "
/"이거나 빈 문자열인 상황에 대한 향상이다.
4.6 RAD Server(라드 서버)
이번 릴리스부터, 사용자 이름과 그룹 이름을 열 기준으로 정렬할 수 있는 기능이 RAD Server Management Console에 추가되었다.
또한, 이번 릴리스는 RAD Server Management Console을 업데이트 해 HiDPI를 인식하도록 했다.