ImageEn for Delphi and C++ Builder ImageEn for Delphi and C++ Builder

 

ImageEn Forum
Profile    Join    Active Topics    Forum FAQ    Search this forumSearch
 All Forums
 ImageEn Library for Delphi, C++ and .Net
 ImageEn and IEvolution Support Forum
 TImageEnMView and per MonitorV2 awareness: scroll position does not hold

Note: You must be registered in order to post a reply.
To register, click here. Registration is FREE!

View 
UserName:
Password:
Format  Bold Italicized Underline  Align Left Centered Align Right  Horizontal Rule  Insert Hyperlink   Browse for an image to attach to your post Browse for a zip to attach to your post Insert Code  Insert Quote Insert List
   
Message 

 

Emoji
Smile [:)] Big Smile [:D] Cool [8D] Blush [:I]
Tongue [:P] Evil [):] Wink [;)] Black Eye [B)]
Frown [:(] Shocked [:0] Angry [:(!] Sleepy [|)]
Kisses [:X] Approve [^] Disapprove [V] Question [?]

 
Check here to subscribe to this topic.
   

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