Note to self: Setting a form's bounds can move the form to a different monitor. If that monitor has a different DPI than the one the form was originally on, this will cause a WM_DPICHANGED message to be sent to the form, which in turn will change the form's bounds again. This happened, for example, … Continue reading Setting a form’s bounds can cause the DPI to change
Month: February 2023
When showing a hint causes an Access Violation
I have just updated my last blog post regarding another effect of the Screen object caching the monitor configuration: Displaying a hint (via standard Delphi VCL functionality) causes an access violation. The solution is again to access the form's monitor property. Unfortunately, it's not that simple, as there is no user action that causes the … Continue reading When showing a hint causes an Access Violation
When Screen.Monitor[x].WorkAreaRect contains garbage
I'm posting this here so I can look it up later in case I forget it again: Some Delphi versions (I know about Delphi 2007 and earlier, not sure when it was fixed) have got a bug in the VCL code for the TScreen (global Screen object) when the monitor configuration changes. That class caches … Continue reading When Screen.Monitor[x].WorkAreaRect contains garbage
TdzSpeedBitBtn updated to support scaling
4 years ago I wrote a helper class TdzSpeedBitBtn which turns a TBitBtn into a TSpeedButton that can have the focus. That helper class has also been used in GExperts (in the Uses Clause Manager and Rename Components). It worked fine until Delphi 11 introduced per monitor DPI awareness. Then it still worked but the … Continue reading TdzSpeedBitBtn updated to support scaling
Replacing a failed drive in a zfs pool
So I can look it up later: When a drive that is part of a zfs pool fails and has already been physicall replaced in the server. zpool status looks like this: [bash] user@server:~$ zpool status pool: main state: DEGRADED status: One or more devices could not be used because the label is missing or … Continue reading Replacing a failed drive in a zfs pool
Why renaming a running executable can fail
I always thought that it is not possible to rename an executable that is currently running. Turns out I was wrong (happened before). It works fine for many executables, but not for all of them. In particular it does not work for the executables of our internal tools. Windows complains that the file is in … Continue reading Why renaming a running executable can fail
New theme for blog.dummzeuch.de
I had to update the PHP version of my website and this broke the Suffusion theme I was using for the WordPress installation. Unfortunately Suffusion hasn't been supported by its author for a few years and even though I liked it a lot I can't afford the time needed for fixing the problem. So, here … Continue reading New theme for blog.dummzeuch.de