공통 [10.3 리오] 윈도우 스토어 연동, 최신 윈도우 API 업데이트 등 윈도우 10 지원이 강화되었습니다.
2018.12.05 16:05
윈도우 스토어
RAD 스튜디오 10.3 리오에 추가된 TWindowsStore 컴포넌트를 통해 윈도우 스토어에 등록한 응용 프로그램에서 사용 가능한 추가 기능(Add-on) 목록, 구입한 목록, 트라이얼 모드 처리 등의 기능을 개발할 수 있습니다.
TWindowsStore 컴포넌트는 윈도우 플랫폼만 지원하며, VCL과 FireMonkey 프레임워크를 모두 지원합니다.
다음 간단한 샘플코드로 기능을 확인해 보세요.
사용자가 소유한 응용 프로그램과 애드온 확인
procedure TStoreForm.lbInfoClick(Sender: TObject); var LMsg: string; const //These consts mirrors the name of the Add-Ons ad defined //in the MS Windows Store. Using this approach you can “Ask” to the //store what the current user has bought. //The current user is indentified automatically because the //app has been downloaded from the store. HENRYFORDQUOTES = 'henryfordquotes'; SAVETOFILE = 'savetofile'; SAVEASFAVOURITE = 'saveasfavourite'; begin LMsg := '**You current situation**' + sLineBreak; LMsg := LMsg + 'You ' + IfThen(WindowsStore1.UserHasBought(HENRYFORDQUOTES), 'have bought', 'don''t have bought') + ' the great Henry Ford aphorisms archive.' + sLineBreak; LMsg := LMsg + 'You ' + IfThen(WindowsStore1.UserHasBought(SAVETOFILE), 'have bought', 'don''t have bought') + ' the ability to save aphorisms to file.' + sLineBreak; LMsg := LMsg + 'You ' + IfThen(WindowsStore1.UserHasBought(SAVEASFAVOURITE), 'have bought', 'don''t have bought') + ' the ability to save aphorisms as favourite.' + sLineBreak; ShowMessage(LMsg); end;
사용 가능한 추가 기능 확인
procedure TStoreForm.UpdateAvailableProducts; var LProdsCount: Integer; I: Integer; LRow: TStrings; begin LProdsCount := WindowsStore1.AppProducts.Count; for I := 0 to LProdsCount - 1 do begin LRow := sgAvailableProducts.Rows[I + 1]; LRow.Add(WindowsStore1.AppProducts[I].StoreId.ToString); LRow.Add(WindowsStore1.AppProducts[I].Title.ToString); LRow.Add(WindowsStore1.AppProducts[I].Price.FormattedBasePrice.ToString); LRow.Add(WindowsStore1.AppProducts[I].ProductKind.ToString); LRow.Add( WindowsStore1.AppProducts[I].Price.IsOnSale.ToString(TUseBoolStrs.True) ); LRow.Add( WindowsStore1.AppProducts[I].IsInUserCollection .ToString(TUseBoolStrs.True) ); end; end;
트라이얼 모드 제어
procedure TStoreForm.lbTrialInformationClick(Sender: TObject); var LRemainingTrialDays: Integer; begin if WindowsStore1.AppLicense.IsActive then begin if WindowsStore1.AppLicense.IsTrial then begin LRemainingTrialDays := WindowsStore1.AppLicense.TrialTimeRemaining.Days; ShowMessage( Format('You can use this app for %d more days before the trial period ends.', [LRemainingTrialDays])); end else begin ShowMessage('You have a full license. The trial time is not meaningful.'); end; end else begin ShowMessage('You don''t have a license. The trial time can''t be determined.'); end; end;
관련글
- [docwiki] Using the WindowsStore Component
윈도우 API, WinRT API 업데이트
윈도우 API 업데이트
최신 윈도우 기능을 추가하기 위한 윈도우 API가 대폭 추가되었습니다.
다음 목록은 High DPI 지원을 위해 추가된 새로운 윈도우 API입니다.
AdjustWindowRectExForDpi AreDpiAwarenessContextsEqual EnableNonClientDpiScaling GetAwarenessFromDpiAwarenessContext GetDpiForMonitor GetDpiForSystem GetDpiForWindow GetProcessDpiAwareness GetSystemMetricsForDpi GetThreadDpiAwarenessContext GetWindowDpiAwarenessContext IsValidDpiAwarenessContext LogicalToPhysicalPointForPerMonitorDPI PhysicalToLogicalPointForPerMonitorDPI SetProcessDpiAwareness SetThreadDpiAwarenessContext SystemParametersInfoForDpi SetProcessDpiAwarenessContext SetDialogDpiChangeBehavior GetDialogDpiChangeBehavior SetDialogControlDpiChangeBehavior GetDialogControlDpiChangeBehavior OpenThemeDataForDpi GetSystemDpiForProcess GetDpiFromDpiAwarenessContext SetThreadDpiHostingBehavior GetThreadDpiHostingBehavior GetWindowDpiHostingBehavior |
그 외에 "펜 입력" 지원을 위해 WM_POINTER_XXX 메시지 관련 API 및 데이터 구조가 업데이트 되었습니다.
WinRT 업데이트
RAD 스튜디오 10.3 리오는 WinRT API Object Pascal 해더 선언에 대한 업데이트되었으며 윈도우 10 출시 후 추가된 많은 API에 대한 지원이 포함되었습니다. 해당 API는 RAD 스튜디오 10 시애틀과 동일한 방식으로 아래 파일들에 선언되었습니다.
|
VCL High DPI "Per Monitor V2" 지원
VCL은 이제 "Per Monitor V2"를 지원합니다.
Per Monitor V2는 해상도가 다른 여러개의 모니터에서 윈도우 디스플레이 배율을 다르게 설정한 경우 각 모니터 해상도 및 배율에 맞게 화면 및 컨트롤을 표시하는 기술입니다.
이 기술은 윈도우 10 크리에이터 업데이트 부터 제공된 윈도우 기술로 RAD 스튜디오가 발빠르게 지원하고 있습니다.
만약, 사용자 환경이 윈도우 10 크리에이터 업데이트하지 않았다면 표준 동작의 API가 호출되도록 호환성을 보장합니다.
Per Monitor V2 지원은 IDE의 Project > Options > Application > Manifest 메뉴의 DPI Awareness 항목 중 "Per Monitor V2"(기본 값) 선택 해 설정할 수 있습니다.
10.3 리오의 업데이트 버전들