SlideShare una empresa de Scribd logo
1 de 29
Check out the full series for replays and more
https://embt.co/Windows10ModernizeWebinarSeries
11:00 AM - 12 PM CDT
Windows 10 and New Key UX Principles (for RAD Studio Developers)
Sarina DuPont, Director of Product Management, Embarcadero
11:00 AM - 12 PM CDT
Enterprise Connectors Spotlight: MailChimp and Cassandra
Jim McKeeth, Embarcadero Chief Developer Advocate & Engineer
11:00 AM - 12 PM CDT
Fast migration to Windows 10 HighDPI with FastReports
Den Zubov, Lead Developer, Fast Reports
Check out the full series for replays and more
https://embt.co/Windows10ModernizeWebinarSeries
11:00 AM - 12 PM CDT
Windows 10 - Modernization with RAD Studio and TMS Software
Holger Flick, TMS Software
11:00 AM - 12 PM CDT
FireDAC for Windows 10 Database Access
Jens Fudge, Delphi Enthusiast, MVP, speaker, and trainer
11:00 AM - 12 PM CDT
Enterprise Connectors Spotlight: Gmail and Bing Search
Olaf Monien, CEO Developer Experts, Embarcadero MVP
Check out the full series for replays and more
https://embt.co/Windows10ModernizeWebinarSeries
11:00 AM - 12 PM CDT
Building native apps for Windows: why it matters?
Serge Pilko, Embarcadero MVP
11:00 AM - 12 PM CDT
A tale of 3 APIs: VCL integration with WinAPI, COM & ShellAPI, WinRT
Marco Cantu, Embarcadero Product Manager
11:00 AM - 12 PM CDT
Top Windows 10 features you can add to your VCL applications
Ian Barker, Embarcadero MVP
Check out the full series for replays and more
https://embt.co/Windows10ModernizeWebinarSeries
Fast migration to Windows 10 HighDPI
with FastReports
Den Zubov, Lead Developer, Fast Reports Check out the full series for replays and more
https://embt.co/Windows10ModernizeWebinarSeries
Why HiDPI ?
UHD monitors Laptops
Why HiDPI ?
Surround with different monitors
8K ULTRA HD 4K ULTRA HD Full HD
DPI Awareness modes
DPI Awareness Mode Windows Version Behavior
Unaware N/A All displays are 96 DPI(stretched image)
System Vista Application uses DPI of primary display(DPI can
be changes only after log off)
Per-Monitor 8.1 The DPI of the display that the application window
is primarily located on
Per-Monitor V2 Windows 10 Creators
Update (1703)
Application uses DPI of the current display.
Change DPI on the fly by sending
WM_DPICHANGED.
Unaware mode
Stretch
Draws on memory surface
Unaware mode – is it safe ?
Stretch
Virtualization
GetSystemMetrics
SystemParametersInfo
GetDpiForMonitor
Unaware
Unaware mode – is it safe ?
Stretch
Virtualization
GetSystemMetrics
SystemParametersInfo
GetDpiForMonitor
Unaware
96 DPI
Unaware mode – is it safe ?
Stretch
Virtualization
GetSystemMetrics
SystemParametersInfo
GetDpiForMonitor
Unaware
96 DPI
GetSystemMetrics
VCL metafile
HORZSIZE/VERTSIZE
Unaware mode – is it safe ?
Stretch
Virtualization
GetSystemMetrics
SystemParametersInfo
GetDpiForMonitor
Unaware
96 DPI
GetSystemMetrics
VCL metafile
HORZSIZE/VERTSIZE
Unaware mode – is it safe ?
Stretch
Normal Stretched
Unaware mode – VCL metafile
Unaware mode – VCL metafile
Stretch
Normal Stretched Stretched(scale back)
Per-Monitor V2 mode
8K ULTRA HD 4K ULTRA HD Full HD
WM_DPICHANGED
Delphi HiDPI support
Project options
Delphi HiDPI support – Simple application
Steps to move simple application for HiDPI
• Turn on HiDPI manifest in project settings;
• Use Screen.PixelsPerInch – primary display DPI;
• Check all custom draw for absolute positions;
• Use Control.CurrentPPI to get current PPI of control;
• Use TVirtualImageList instead of TImageList;
• Mixed mode for Dialogs (SetThreadDpiAwarenessContext);
• Form events OnBeforeMonitorDpiChanged/OnAfterMonitorDpiChanged;
Delphi HiDPI support – Simple application
TImageList TVirtualImageList
More about TVirtualImageList:
http://docwiki.embarcadero.com/RADStudio/en/Supporting_high-DPI_images_with_the_Image_Collection_and_Virtual_ImageList_components
Delphi HiDPI support – Components
property CurrentPPI
procedure ScaleForPPI
procedure ChangeScale
procedure ScaleControlsForDpi
TControl (10.2)
property CurrentFormPPI
procedure UpdateResouces
procedure UpdateFormPPI
procedure ProcessPreferences
message WM_DPICHANGED
TfrxBaseForm
property CurrentPPI
procedure DoPPIChanged
procedure GetScale
message WM_DPICHANGED_AFTERPARENT
TfrxDPIAwareCustomControl
FastReport VCL Delphi independent controlsDelphi’s control
Delphi HiDPI support – create version independent
Components
• Use Screen.PixelsPerInch – in constructor to get primary display DPI;
• Handle WM_DPICHANGED for custom form;
• Handle WM_DPICHANGED_AFTERPARENT for custom control;
• Create independent resource module and handle TImageList;
• Do not use absolute values for custom draw;
• Use dynamic links to HiDPI WinAPI (GetDpiForWindow,
SetProcessDpiAwarenessContext)
HiDPI in FastReport VCL(Scale 100%)
HiDPI in FastReport VCL(Scale 300% no HiDPI)
HiDPI in FastReport VCL(Scale 300% HiDPI)
HiDPI in FastReport VCL
8K ULTRA HD 4K ULTRA HD Full HD
Surround support
HiDPI in FastReport VCL
8K ULTRA HD 4K ULTRA HD Full HD
Surround support
HiDPI in FastReport VCL
8K ULTRA HD 4K ULTRA HD Full HD
Surround support – restore window on active display
Check out the full series for replays and more
https://embt.co/Windows10ModernizeWebinarSeries

Más contenido relacionado

Más de Embarcadero Technologies

RAD Industrial Automation, Labs, and Instrumentation
RAD Industrial Automation, Labs, and InstrumentationRAD Industrial Automation, Labs, and Instrumentation
RAD Industrial Automation, Labs, and InstrumentationEmbarcadero Technologies
 
Embeddable Databases for Mobile Apps: Stress-Free Solutions with InterBase
Embeddable Databases for Mobile Apps: Stress-Free Solutions with InterBaseEmbeddable Databases for Mobile Apps: Stress-Free Solutions with InterBase
Embeddable Databases for Mobile Apps: Stress-Free Solutions with InterBaseEmbarcadero Technologies
 
Rad Server Industry Template - Connected Nurses Station - Setup Document
Rad Server Industry Template - Connected Nurses Station - Setup DocumentRad Server Industry Template - Connected Nurses Station - Setup Document
Rad Server Industry Template - Connected Nurses Station - Setup DocumentEmbarcadero Technologies
 
Move Desktop Apps to the Cloud - RollApp & Embarcadero webinar
Move Desktop Apps to the Cloud - RollApp & Embarcadero webinarMove Desktop Apps to the Cloud - RollApp & Embarcadero webinar
Move Desktop Apps to the Cloud - RollApp & Embarcadero webinarEmbarcadero Technologies
 
Getting Started Building Mobile Applications for iOS and Android
Getting Started Building Mobile Applications for iOS and AndroidGetting Started Building Mobile Applications for iOS and Android
Getting Started Building Mobile Applications for iOS and AndroidEmbarcadero Technologies
 
ER/Studio 2016: Build a Business-Driven Data Architecture
ER/Studio 2016: Build a Business-Driven Data ArchitectureER/Studio 2016: Build a Business-Driven Data Architecture
ER/Studio 2016: Build a Business-Driven Data ArchitectureEmbarcadero Technologies
 
The Secrets of SQL Server: Database Worst Practices
The Secrets of SQL Server: Database Worst PracticesThe Secrets of SQL Server: Database Worst Practices
The Secrets of SQL Server: Database Worst PracticesEmbarcadero Technologies
 
Driving Business Value Through Agile Data Assets
Driving Business Value Through Agile Data AssetsDriving Business Value Through Agile Data Assets
Driving Business Value Through Agile Data AssetsEmbarcadero Technologies
 
Troubleshooting Plan Changes with Query Store in SQL Server 2016
Troubleshooting Plan Changes with Query Store in SQL Server 2016Troubleshooting Plan Changes with Query Store in SQL Server 2016
Troubleshooting Plan Changes with Query Store in SQL Server 2016Embarcadero Technologies
 
Agile, Automated, Aware: How to Model for Success
Agile, Automated, Aware: How to Model for SuccessAgile, Automated, Aware: How to Model for Success
Agile, Automated, Aware: How to Model for SuccessEmbarcadero Technologies
 
What's New in DBArtisan and Rapid SQL 2016
What's New in DBArtisan and Rapid SQL 2016What's New in DBArtisan and Rapid SQL 2016
What's New in DBArtisan and Rapid SQL 2016Embarcadero Technologies
 
Is This Really a SAN Problem? Understanding the Performance of Your IO Subsy...
Is This Really a SAN Problem? Understanding the Performance of  Your IO Subsy...Is This Really a SAN Problem? Understanding the Performance of  Your IO Subsy...
Is This Really a SAN Problem? Understanding the Performance of Your IO Subsy...Embarcadero Technologies
 
RAD Studio, Delphi and C++Builder 10 Feature Matrix
RAD Studio, Delphi and C++Builder 10 Feature MatrixRAD Studio, Delphi and C++Builder 10 Feature Matrix
RAD Studio, Delphi and C++Builder 10 Feature MatrixEmbarcadero Technologies
 
7 Dangerous Myths DBAs Believe about Data Modeling
7 Dangerous Myths DBAs Believe about Data Modeling7 Dangerous Myths DBAs Believe about Data Modeling
7 Dangerous Myths DBAs Believe about Data ModelingEmbarcadero Technologies
 
The Key to Big Data Modeling: Collaboration
The Key to Big Data Modeling: CollaborationThe Key to Big Data Modeling: Collaboration
The Key to Big Data Modeling: CollaborationEmbarcadero Technologies
 
Understanding Hardware: The Right Fights for the DBA to Pick with the Server ...
Understanding Hardware: The Right Fights for the DBA to Pick with the Server ...Understanding Hardware: The Right Fights for the DBA to Pick with the Server ...
Understanding Hardware: The Right Fights for the DBA to Pick with the Server ...Embarcadero Technologies
 

Más de Embarcadero Technologies (20)

RAD Industrial Automation, Labs, and Instrumentation
RAD Industrial Automation, Labs, and InstrumentationRAD Industrial Automation, Labs, and Instrumentation
RAD Industrial Automation, Labs, and Instrumentation
 
Embeddable Databases for Mobile Apps: Stress-Free Solutions with InterBase
Embeddable Databases for Mobile Apps: Stress-Free Solutions with InterBaseEmbeddable Databases for Mobile Apps: Stress-Free Solutions with InterBase
Embeddable Databases for Mobile Apps: Stress-Free Solutions with InterBase
 
Rad Server Industry Template - Connected Nurses Station - Setup Document
Rad Server Industry Template - Connected Nurses Station - Setup DocumentRad Server Industry Template - Connected Nurses Station - Setup Document
Rad Server Industry Template - Connected Nurses Station - Setup Document
 
TMS Google Mapping Components
TMS Google Mapping ComponentsTMS Google Mapping Components
TMS Google Mapping Components
 
Move Desktop Apps to the Cloud - RollApp & Embarcadero webinar
Move Desktop Apps to the Cloud - RollApp & Embarcadero webinarMove Desktop Apps to the Cloud - RollApp & Embarcadero webinar
Move Desktop Apps to the Cloud - RollApp & Embarcadero webinar
 
Useful C++ Features You Should be Using
Useful C++ Features You Should be UsingUseful C++ Features You Should be Using
Useful C++ Features You Should be Using
 
Getting Started Building Mobile Applications for iOS and Android
Getting Started Building Mobile Applications for iOS and AndroidGetting Started Building Mobile Applications for iOS and Android
Getting Started Building Mobile Applications for iOS and Android
 
Embarcadero RAD server Launch Webinar
Embarcadero RAD server Launch WebinarEmbarcadero RAD server Launch Webinar
Embarcadero RAD server Launch Webinar
 
ER/Studio 2016: Build a Business-Driven Data Architecture
ER/Studio 2016: Build a Business-Driven Data ArchitectureER/Studio 2016: Build a Business-Driven Data Architecture
ER/Studio 2016: Build a Business-Driven Data Architecture
 
The Secrets of SQL Server: Database Worst Practices
The Secrets of SQL Server: Database Worst PracticesThe Secrets of SQL Server: Database Worst Practices
The Secrets of SQL Server: Database Worst Practices
 
Driving Business Value Through Agile Data Assets
Driving Business Value Through Agile Data AssetsDriving Business Value Through Agile Data Assets
Driving Business Value Through Agile Data Assets
 
Troubleshooting Plan Changes with Query Store in SQL Server 2016
Troubleshooting Plan Changes with Query Store in SQL Server 2016Troubleshooting Plan Changes with Query Store in SQL Server 2016
Troubleshooting Plan Changes with Query Store in SQL Server 2016
 
Great Scott! Dealing with New Datatypes
Great Scott! Dealing with New DatatypesGreat Scott! Dealing with New Datatypes
Great Scott! Dealing with New Datatypes
 
Agile, Automated, Aware: How to Model for Success
Agile, Automated, Aware: How to Model for SuccessAgile, Automated, Aware: How to Model for Success
Agile, Automated, Aware: How to Model for Success
 
What's New in DBArtisan and Rapid SQL 2016
What's New in DBArtisan and Rapid SQL 2016What's New in DBArtisan and Rapid SQL 2016
What's New in DBArtisan and Rapid SQL 2016
 
Is This Really a SAN Problem? Understanding the Performance of Your IO Subsy...
Is This Really a SAN Problem? Understanding the Performance of  Your IO Subsy...Is This Really a SAN Problem? Understanding the Performance of  Your IO Subsy...
Is This Really a SAN Problem? Understanding the Performance of Your IO Subsy...
 
RAD Studio, Delphi and C++Builder 10 Feature Matrix
RAD Studio, Delphi and C++Builder 10 Feature MatrixRAD Studio, Delphi and C++Builder 10 Feature Matrix
RAD Studio, Delphi and C++Builder 10 Feature Matrix
 
7 Dangerous Myths DBAs Believe about Data Modeling
7 Dangerous Myths DBAs Believe about Data Modeling7 Dangerous Myths DBAs Believe about Data Modeling
7 Dangerous Myths DBAs Believe about Data Modeling
 
The Key to Big Data Modeling: Collaboration
The Key to Big Data Modeling: CollaborationThe Key to Big Data Modeling: Collaboration
The Key to Big Data Modeling: Collaboration
 
Understanding Hardware: The Right Fights for the DBA to Pick with the Server ...
Understanding Hardware: The Right Fights for the DBA to Pick with the Server ...Understanding Hardware: The Right Fights for the DBA to Pick with the Server ...
Understanding Hardware: The Right Fights for the DBA to Pick with the Server ...
 

Último

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 

Último (20)

Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 

Fast migration to Windows 10 HighDpi with Den Zubov, Lead Developer, Fast Reports

  • 1. Check out the full series for replays and more https://embt.co/Windows10ModernizeWebinarSeries
  • 2. 11:00 AM - 12 PM CDT Windows 10 and New Key UX Principles (for RAD Studio Developers) Sarina DuPont, Director of Product Management, Embarcadero 11:00 AM - 12 PM CDT Enterprise Connectors Spotlight: MailChimp and Cassandra Jim McKeeth, Embarcadero Chief Developer Advocate & Engineer 11:00 AM - 12 PM CDT Fast migration to Windows 10 HighDPI with FastReports Den Zubov, Lead Developer, Fast Reports Check out the full series for replays and more https://embt.co/Windows10ModernizeWebinarSeries
  • 3. 11:00 AM - 12 PM CDT Windows 10 - Modernization with RAD Studio and TMS Software Holger Flick, TMS Software 11:00 AM - 12 PM CDT FireDAC for Windows 10 Database Access Jens Fudge, Delphi Enthusiast, MVP, speaker, and trainer 11:00 AM - 12 PM CDT Enterprise Connectors Spotlight: Gmail and Bing Search Olaf Monien, CEO Developer Experts, Embarcadero MVP Check out the full series for replays and more https://embt.co/Windows10ModernizeWebinarSeries
  • 4. 11:00 AM - 12 PM CDT Building native apps for Windows: why it matters? Serge Pilko, Embarcadero MVP 11:00 AM - 12 PM CDT A tale of 3 APIs: VCL integration with WinAPI, COM & ShellAPI, WinRT Marco Cantu, Embarcadero Product Manager 11:00 AM - 12 PM CDT Top Windows 10 features you can add to your VCL applications Ian Barker, Embarcadero MVP Check out the full series for replays and more https://embt.co/Windows10ModernizeWebinarSeries
  • 5. Fast migration to Windows 10 HighDPI with FastReports Den Zubov, Lead Developer, Fast Reports Check out the full series for replays and more https://embt.co/Windows10ModernizeWebinarSeries
  • 6. Why HiDPI ? UHD monitors Laptops
  • 7. Why HiDPI ? Surround with different monitors 8K ULTRA HD 4K ULTRA HD Full HD
  • 8. DPI Awareness modes DPI Awareness Mode Windows Version Behavior Unaware N/A All displays are 96 DPI(stretched image) System Vista Application uses DPI of primary display(DPI can be changes only after log off) Per-Monitor 8.1 The DPI of the display that the application window is primarily located on Per-Monitor V2 Windows 10 Creators Update (1703) Application uses DPI of the current display. Change DPI on the fly by sending WM_DPICHANGED.
  • 10. Unaware mode – is it safe ? Stretch Virtualization GetSystemMetrics SystemParametersInfo GetDpiForMonitor Unaware
  • 11. Unaware mode – is it safe ? Stretch Virtualization GetSystemMetrics SystemParametersInfo GetDpiForMonitor Unaware 96 DPI
  • 12. Unaware mode – is it safe ? Stretch Virtualization GetSystemMetrics SystemParametersInfo GetDpiForMonitor Unaware 96 DPI GetSystemMetrics VCL metafile HORZSIZE/VERTSIZE
  • 13. Unaware mode – is it safe ? Stretch Virtualization GetSystemMetrics SystemParametersInfo GetDpiForMonitor Unaware 96 DPI GetSystemMetrics VCL metafile HORZSIZE/VERTSIZE
  • 14. Unaware mode – is it safe ? Stretch Normal Stretched
  • 15. Unaware mode – VCL metafile
  • 16. Unaware mode – VCL metafile Stretch Normal Stretched Stretched(scale back)
  • 17. Per-Monitor V2 mode 8K ULTRA HD 4K ULTRA HD Full HD WM_DPICHANGED
  • 19. Delphi HiDPI support – Simple application Steps to move simple application for HiDPI • Turn on HiDPI manifest in project settings; • Use Screen.PixelsPerInch – primary display DPI; • Check all custom draw for absolute positions; • Use Control.CurrentPPI to get current PPI of control; • Use TVirtualImageList instead of TImageList; • Mixed mode for Dialogs (SetThreadDpiAwarenessContext); • Form events OnBeforeMonitorDpiChanged/OnAfterMonitorDpiChanged;
  • 20. Delphi HiDPI support – Simple application TImageList TVirtualImageList More about TVirtualImageList: http://docwiki.embarcadero.com/RADStudio/en/Supporting_high-DPI_images_with_the_Image_Collection_and_Virtual_ImageList_components
  • 21. Delphi HiDPI support – Components property CurrentPPI procedure ScaleForPPI procedure ChangeScale procedure ScaleControlsForDpi TControl (10.2) property CurrentFormPPI procedure UpdateResouces procedure UpdateFormPPI procedure ProcessPreferences message WM_DPICHANGED TfrxBaseForm property CurrentPPI procedure DoPPIChanged procedure GetScale message WM_DPICHANGED_AFTERPARENT TfrxDPIAwareCustomControl FastReport VCL Delphi independent controlsDelphi’s control
  • 22. Delphi HiDPI support – create version independent Components • Use Screen.PixelsPerInch – in constructor to get primary display DPI; • Handle WM_DPICHANGED for custom form; • Handle WM_DPICHANGED_AFTERPARENT for custom control; • Create independent resource module and handle TImageList; • Do not use absolute values for custom draw; • Use dynamic links to HiDPI WinAPI (GetDpiForWindow, SetProcessDpiAwarenessContext)
  • 23. HiDPI in FastReport VCL(Scale 100%)
  • 24. HiDPI in FastReport VCL(Scale 300% no HiDPI)
  • 25. HiDPI in FastReport VCL(Scale 300% HiDPI)
  • 26. HiDPI in FastReport VCL 8K ULTRA HD 4K ULTRA HD Full HD Surround support
  • 27. HiDPI in FastReport VCL 8K ULTRA HD 4K ULTRA HD Full HD Surround support
  • 28. HiDPI in FastReport VCL 8K ULTRA HD 4K ULTRA HD Full HD Surround support – restore window on active display
  • 29. Check out the full series for replays and more https://embt.co/Windows10ModernizeWebinarSeries