RAD 스튜디오 10.3 리오 "새 기능 한글 요약본: VCL" 입니다.
모든 새 기능, 강화된 기능, 버그 픽스 등에 대해서는 Docwiki의 What's New 10.3 (영문 보기, 한글번역 보기) 와 관련 페이지를 보기 바랍니다.
10.3 리오 - VCL 관련 주요 업데이트 요약
VCL용 새로운 스타일 10종 지원
![]() |
![]() |
새 스타일들을 활용해 애플리케이션 룩앤필을 빠르게 업데이트 할 수 있다. 또한 각 스타일을 원하는 대로 변경하여 사용할 수도 있다. 10.3.1에서는 새 스타일이 총 15개가 추가되었는데, 그 중 5가지는 FMX(파이어몽키)용이고 10가지는 VCL용이다. FMX 스타일은 윈도우, 맥OS, 안드로이드, iOS 모두에서 적용되는 멀티-디바이스 스타일이고, VCL 스타일은 윈도우에서 적용된다. 비트맵 스타일 디자이너 템플릿 또한 포함되어 있다.
새로운 스타일들은 IDE의 겟잇 패키지 매니저(GetIt Package Manager)를 이용해 다운로드 받아 사용할 수 있다.
새롭게 추가된 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 이미지 리스트 지원
그림. TImageList를 사용하는 기본 방식 (왼쪽)은 툴바의 이미지는 화면 배율이 커져도 크기가 같다. 하지만, TVirtualImageList와 TImageCollection를 사용 방식 (오른쪽)은 화면에 맞게 알맞은 해상도의 이미지가 사용된다.
10.3 버전부터, VCL 애플리케이션이 High DPI (일명 HiDPI) 화면과 해상도가 다른 여러 화면을 지원할 수 있도록 VCL에 새로 TImageCollection과 TVirtualImageList가 추가되었다.
10.3보다 이전 버전에서는 각 콘트롤과 TImageList가 1:1로 직접 연결되었기 때문에, 단 하나의 고정된 해상도의 이미지만 사용할 수 있어서, High DPI 화면에서 낮은 해상도의 이미지가 늘어나서 흐리게 보이거나, 또는 낮은 해상도의 크기를 유지하느라 이미지만 작게 표현되어야 했다. 하지만, TImageCollection과 TVirtualImageList를 함께 사용하면 이런 1:1 제한이 없어졌다. 즉 이미지 목록에 들어있는 이미지에 다양한 해상도를 미리 넣어두고 화면의 DPI에 따라 알맞은 이미지가 자동으로 사용된다.
TImageCollection
TImageCollection은 전통적인 이미지 리스트를 대체하여 이미지를 모아 두는 곳이다. HIMAGELIST 핸들 등을 제공한다. 따라서 VCL 콘트롤 뿐만 아니라 윈도우 이미지 리스트 API를 호출하는 모든 코드에서 사용할 수 있다. (예: DataModule 등 공통 유닛에 넣어두고 여러 폼에서 사용할 수 있다.
그림. TImageCollection에는 이미지 별로 다양한 해상도의 이미지를 추가/편집/삭제할 수 있다.
주요 메뉴
- Add 버튼: 탐색기에서 이미지를 선택하여 추가할 수 있다.
- Size in file name 옵션: True를 선택하면 같은 이미지명에 이미지 크기를 명시하여 같은 이미지를 크기 별로 추가할 수 있다. (아래의 Size Separator 기호 를 기준으로 자동 분류 된다)
- Size Separator 기호: 지정된 기호의 뒷부분은 크기로 인식하고 앞부분은 이미지명으로 인식한다.
예를 들어, 위 그림에서 선택된 TLable-16의 실제 이름은 TLabel-24이다. 구분자가 "-"로 지정되어 있으므로, 가상의 파일명은 TLabel이고 크기는 24x24이다.
기존의 TImageList에 넣어둔 이미지를 가져오는 방법
TImageCollection에서 컨텍스트 메뉴를 열고 Load Images from TImageList(s)... 를 선택하면, 사용된 모든 TImageList 안에 있는 이미지를 선택하여 가져오거나 병합할 수 있다.
TVirtualImageList
TVirtualImageList는 PNG 등 알파 채널 이미지를 지원한다. 예전 방식으로 투명도에 색상 키가 반영된 비트맵을 가져올 수도 있으며, 전통적인 TImageLists를 TImageCollection과 TVirtualImageList 조합으로 마이그레이션하는 도구도 제공된다.
이름대로 가상 이미지의 리스트이며, 사용되는 화면의 DPI에 따라 실제 사용되는 이미지가 결정된다.
그림. TVirtualImageList 컴포넌트의 ImageCollection 속성을 사용하고자 하는 TImageCollection으로 지정한다.
그림. 이미지 목록을 사용할 콘트롤의 Images속성을 사용하고자 하는 TVirtualImageList를 지정한다.
(이 그림에서는 ToolBar1이 기존에는 ImageList1을 사용했는데, High DPI를 지원하기 위해 VirtualImageList1 으로 변경하고 있다)
Per Monitor V2 지원
RAD 스튜디오 10.3부터 VCL 프로젝트에서 Per Monitor V2 지원이 포함되었다. 그 결과 VCL 애플리케이션은 윈도우의 모든 화면 배율에 맞게 확대/축소 되며, 모니터가 달라져서 해당 DPI 배율이 변하는 경우에 알맞게 대응한다. 이렇게 하려면 Project > Options > Application > Manifest 로 가서 DPI Awareness 항목에서 Per Monitor V2를 선택한다.