Jump to content
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr ×
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr

윈도우11에 대한 더 많은 VCL 지원 기능들


Recommended Posts

 

윈도우11 공식 출시에 맞추어 엠바카데로는 새로운 VCL 스타일을 선보였다. 이 글을 작성한 마르코 칸투 또한 새로운 버전의 마이크로소프트 데스크탑 OS에 맞춘 코딩 helper를 제공하고 있다. 향후 더 많은 자료들을 선보일 예정이다. 

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

올 해 초 발표 이후, 마이크로소프트는 드디어 공식적으로 윈도우 11을 출시했다. 새로운 하드웨어가 요구되어, 오래된 컴퓨터에서 새로운 OS 실행 시 문제가 발생하기도 한다. 하지만 새로운 윈도우는 더 뛰어난 사용자 경험(UX)과 작업 환경을 제공하면서도, 델파이나 C++빌더로 작성된 기존 애플리케이션과 매우 높은 호환성을 유지한다. 엠바카데로는 몇 개월 내에 많은 사용자들이 윈도우 11로 옮겨갈 것으로 예상하고 있다. 

이번 글에서는 윈도우 11이나 새로워진 사용자 환경(UX)이 아닌, VCL 애플리케이션을 더욱 개선해서 새로운 OS에서 가장 높은 수준으로 만드는 방법에 대해서 이야기하려고 한다. 델파이와 C++빌더는 최신 버전의 윈도우에 맞춘 다양한 현대화 기술들을 제공하고 있다. VCL 스타일부터 최근 몇 년간 선보여왔던 수많은 새로운 VCL 컨트롤에 이르기까지 다양한 기술들을 선보였다 (RAD스튜디오 10.4.2의 ControlList와 NumberBox 컨트롤, RAD스튜디오 11 알렉산드리아의 개선된 RichEdit도 있다). 

일반적인 마이그레이션이나 아이디어는 잠시 뒤로 미뤄두고 윈도우 11 지원 내용만 집중해보겠다. 윈도우 11에는 WebView2 컨트롤이 있어, TWebBrowser 컴포넌트보다 뛰어난 TEdgeBrowser를 사용하는 것이 좋다. 또한 마이크로소프트는 패키지 앱과 마이크로소프트 스토어에 계속해서 중점을 두고 있다. 이 두 가지는 RAD스튜디오 IDE에서 MSIX 배포 기능을 제공해 충분히 지원할 수 있다. 이 기능들은 RAD스튜디오의 최신 버전 11에서 지원한다 (더 이전 버전에서도 제공하기는 했다). 

 

새로운 윈도우 11 VCL 스타일 

겟잇에서 윈도우 11에 특화된 두 종류의 새로운 VCL 스타일인 라이트와 다크 모드를 받아 사용할 수 있다. “Windows 11”을 검색창에 입력하면 더 빠르게 찾을 수 있다: 

spacer.png

 

두 스타일을 설치하고, VCL 프로젝트 설정을 열면 Appereance 페이지에서 애플리케이션에 스타일을 추가할 수 있다 (디자인 시점에 VCL 스타일을 사용하도록 설정했다면). 폼의 StyleName 속성에서 스타일을 설정하면, 아래 그림과 같이 디자인 시점에 스타일을 미리 확인할 수 있다.* 한 가지 알아둘 점은 여러 요소들 중에서도, 리스트 박스의 현대적인 스타일의 얇은 스크롤바이다. 

*역자 주: 프로젝트 옵션에서 default style을 선택하면 바로 폼에 적용할 수도 있다. 이 내용은 윈도우 11 Light를 기본 스타일로 선택한 후 폼의 StyleName을 윈도우 11 Dark로 설정했다는 의미로 보인다.

spacer.png

아래 두 가지 스타일을 잘 보여주는 “공식” 이미지에서 새로운 플랫폼 기본 사항과 일치하는 둥근(rounded) 항목들과 색상을 확인할 수 있다. 

spacer.png

spacer.png

 

윈도우 11 둥근 모서리 

윈도우 11의 가장 눈에 띄는 부분은 바로 “둥근 UI 요소들”의 적용이다. 특별한 설정 변경없이도 새로운 VCL 애플리케이션을 생성하고 윈도우 11에서 실행하면, 기본적으로 폼의 모서리가 둥글게 되어 있는 것을 확인할 수 있다. 물론 이 기능을 제어할 수도 있다. 특정 공용 윈도우 API 호출 DwmSetWindowAttribute을 사용하면 된다. 

  Winapi.Dwmapi.DwmSetWindowAttribute(Handle, DWMWA_WINDOW_CORNER_PREFERENCE,
    @CornerPreference, sizeof(CornerPreference));

 

이 API를 더 쉽게 사용할 수 있도록 (이미 이안 바커가 블로그에 “앱에서 윈도우 11 둥근 모서리를 제어하는 방법”에서 다룬 적이 있지만), 유사한 코드의 interposer helper 클래스를 작성해 깃허브에 올려놓았다: 

https://github.com/marcocantu/DelphiSessions/blob/master/Win11_Delphi11/Win11Round/Win11Forms.pas 

 

유닛의 인터페이스(interface) 부분은 다음과 같이 구현되어 있다: 

spacer.png

 

Vcl.Forms 유닛 다음 폼 인터페이스(interface) 부분의 유즈(uses)절에 이 유닛을 추가한다. 그러면 폼에는 곡선 처리, 새로운 속성을 포함한 새로운 클래스 속성을 확인할 수 있다. 이제 아래와 같이 코드를 작성한다: 

TForm.DefaultRoundedCorners := rcOff;   // set default for all forms
RoundedCorners := rcOn;  // change the rounding for the current form

 

이 코드는 윈도우 11에서만 작동한다. 윈도우 10이나 그 이전 버전에서는 그냥 무시된다 (하지만, 에러가 발생하지는 않는다). 간단한 데모를 사용해 아래와 같은 UI를 만들 수 있다 (깃허브 https://github.com/marcocantu/DelphiSessions/tree/master/Win11_Delphi11/Win11Round에 올려놓았다):  

spacer.png

마지막으로 VCL 애플리케이션에서 알아 두어야 할 점은, 사용자 지정이 가능한 VCL TitleBar를 사용한 VCL 애플리케이션의 경우 바로 사용 가능한 Snap Layouts를 지원한다: 

spacer.png

 

하나의 작은 이슈와 앞으로 다가올 더 많은 문제 

앞서 언급했듯 VCL 애플리케이션은 일반적으로 윈도우 11에서 잘 작동한다. 다만 색상 관련 한 가지 이슈가 있다. VCL 애플리케이션이 완벽히 준수하지 않는 다른 기본 색상 세트를 사용하는 특정 플랫폼에서, 이와 같은 색상을 사용하는 이미지가 포함된 메뉴 항목들의 색상을 표현할 때 문제가 발생할 수 있다. 이 부분은 퀄리티포탈(QP) https://quality.embarcadero.com/browse/RSP-35049에 등록되어 있다. 퀄리티포탈 리포트에 해결방법이 있지만, 이 이슈는 RAD스튜디오 11 버전에서 곧 해결 방법을 제공할 계획이다. 

윈도우 11 관련 개선된 기능과 새로운 기능들에 대한 데모들을 몇 달 이내 RAD스튜디오 11.1 출시와 함께 선보일 계획이다. 계속해서 관심을 기울여 주시기를! 

 

VCL로 윈도우 11 애플리케이션 구축하기 

엠바카데로가 RAD스튜디오의 최신 버전을 11로 명명한 것이 윈도우 11과 관련있다는 점은 의문의 여지가 없다. 마이크로소프트가 자체적으로 제공하는 도구들의 UI 라이브러리가 최근 몇 년간 전체적으로 변화함에 따라, 델파이와 C++빌더의 VCL 라이브러리 또한 플랫폼 통합이나 API 지원을 확장해왔는데 그 지원의 폭은 마이크로소프트 비주얼 스튜디오나 타사 도구들과는 비교할 수 없을 정도로 다양하고 크다고 자신있게 말할 수 있다. 

마이크로소프트는 네이티브 윈도우 개발이 핵심이며, 주류라고 분명히 밝히고 있다 (프로젝트 유니언으로 더 잘 알려져 있는 윈도우 앱 SDK를 떠올려보자). 하지만 이 분야에서 마이크로소프트의 라이브러리 (MFC, WinForms 등)는 VCL과는 비교가 되지 않으며 자체 플랫폼 기능들 보다도 뒤처져있다. 

VCL 라이브러리는 전통적 및 현대식 API (Win API부터 COM 기반 API, WinRT에 이르기까지)에 맵핑할 수 있는 기능과 High DPI 모니터, 현대식 UI 트렌드를 지원하며 - 전체 애플리케이션을 재작성 할 필요가 없어 - 윈도우 데스크탑 개발에 있어 그 특징과 강력함이 매우 두드러진다. 윈도우 11 개발에는 비주얼 컴포넌트 라이브러리(Visual Component Library, VCL)를 사용하는 것이 좋다. 

이 댓글 링크
다른 사이트에 공유하기

이 토의에 참여하세요

지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.

Guest
이 토픽(기고/질문)에 답하기

×   서식있는 텍스트로 붙여넣기.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   이전에 작성한 콘텐츠가 복원되었습니다..   편집창 비우기

×   You cannot paste images directly. Upload or insert images from URL.

 공유하기

×
×
  • Create New...

중요한 정보

이용약관 개인정보보호정책 이용규칙 이 사이트가 더 잘 작동하기 위해 방문자의 컴퓨터에 쿠키가 배치됩니다. 쿠키 설정 변경에서 원하는 설정을 할 수 있습니다. 변경하지 않으면 쿠키를 허용하는 것으로 이해합니다.