Some testing of the latest commits:
* High-DPI seems to be working, but only with the external images from an imagelist. [EDIT: When I drag the form to be narrower so that the scrollbutton(s) appear, it can be seen that they are pixelated - something is wrong with scaling of the images for the internal buttons]
* I extended the notebook demo so that high-dpi performance can be checked (I am having another user on the same system for which the screen has been set up for 144 ppi, this is on Windows, don't know how to do this on mac). In this demo the '+' button (add tab) looks too large and kind of asymmetrical at 144 ppi (see screenshot), I think the speed button should be created as a square rather than a narrow rectangle. Or maybe its width is not scaled correctly?
* Collective ImagesWidth property: I'd prefer the default values of all XXXWidth elements to be 0. Then the Width of the ImageList determines the base size of the image. If the user wants some images to be larger he has to provide a full set of them for the larger size, in other words: when TabImagesWidth should be 24 the image list must contain also images at 36x26 and 48x48. When you force it to be 24 the user must be aware to provide these sizes which is not standard, normally he would only provide 16x16, 24x24 and 32x32.
* Internal images: You show them on speedbuttons and assign them to their Glyph property. For proper scaling of these images you must also provide them at the other sizes for 150% and 200% screen resolution, and when an image is selected you must read the pixels-per-inch and decide which image is to be taken. Or you create an internal ImageList for which you set its Scaled to true and register these additional image sizes (ImageList.RegisterResolutions(16, 24, 32) -- not sure: maybe the "16" can be dropped...), and then you add each image from the resource at all the sizes needed (ImageList.AddMultipleResolutions([bitmap16, bitmap24, bitmap32]). This has the advantage that all scaling is done automatically, it also takes care of intermediate image sizes. Set the internal imagelist to Images property of the speedbuttons and assign the corresponding imageindex. If the user assigns its own imagelist to TExtCtrl.Images then, of course, the speedbuttons imagelist and imageindex must be updated.
* Stripe of selected tab in Chrome style when no StripColor is prepared: Can the color be modified? The default blue is fine for me, but other user maybe have other preferences, and the color may not be visible clearly in dark mode.