T O P I C R E V I E W |
uko |
Posted - Jan 22 2024 : 10:14:04 Hi,
ImageEN 13.0.0.0, Delphi 11.3
it looks like TImageEnMView is not fully aware of DPI changes as it looses it's scroll positions when moving application from 96 to 192 DPI screens and back. - Please start with Demo Multi\Multiview (Build with PerMonitor Aware V2) - load sample Multi_Icon.ico - reduce height so that only two icons are visible - scroll to last icon - move application to a screen with 192 DPI and see how scrollbar position is changing - again scroll down to last icon (see sample_192.png) - move back on 96 DPI screen - now position is reset to zero (see sample_96.png)
attach/uko/202412210121_sample_img.zip 136.33 KB
What is the right way to fix the position?
Thanks! |
4 L A T E S T R E P L I E S (Newest First) |
xequte |
Posted - Jan 23 2024 : 22:56:04 Hi Ulrich
You can email me for a solution which also improves performance when moving between screens of different DPIs.
Nigel Xequte Software www.imageen.com
|
xequte |
Posted - Jan 23 2024 : 20:08:11 Hi Ulrich
We're working on a fix for this, but I the ChangeScale method is a bit hit and miss, which gives an inconsistent result with the scrollbar scaling :-/
Nigel Xequte Software www.imageen.com
|
uko |
Posted - Jan 23 2024 : 01:55:56 Nigel,
some win controls hold their position, others not. From what I noted: I have not found any ChangeScale method on ImageEn which is the usual place to react on DPI changes. The main problem seems to be GetMaxViewXY which is called during DPI change (WM_SIZE message) which seems to work with wrong data (Clientsize?). Normally, if not explicitly recalculated I would have expected every stored position/size to be DPI scaled on ChangeScale.
kind regards, Ulrich
|
xequte |
Posted - Jan 22 2024 : 21:56:33 Sorry, I didn't get a chance to investigate this today. Does the same thing happen with standard VCL TWinControls like TListBox?
Nigel Xequte Software www.imageen.com
|