Hi Vincent,
Thank you for the reply. I first tried with Per Monitor V2, but my app (with hundreds of forms) is MDI. In general, I got the app looking good right by setting the ParentFont and Scaling props. But we've also got all combinations of imbedded forms, docked forms, fsStayOnTop, and I had a long list of problems to fix. For example, a particular form looks great as a normal MDI Child, but when the same form is embedded in a fsStayOnTop form, everything is too small. With GDI, I just have 2 problems to fix. VST and images (which are the right size, just pixely)
Back to GDI - I see what you mean about the bitmaps. I found them in the TBaseVirtualTree.PaintTree procedure. If I include poUnbuffered in the PaintOptions, then I see it painting smoothly. Of course, that makes it flicker too. I wonder if there is any other way to prevent flicker. Maybe we could use a TControlCanvas instead of NodeBitmap.Canvas? Or maybe there is some way to get the OS to scale on NodeBitmap's canvas?
Thanks for all your contributions to the Delphi world.
-John