SlideShare a Scribd company logo
1 of 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

More Related Content

More from 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
 

More from 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 ...
 

Recently uploaded

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 

Recently uploaded (20)

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 

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