Agreed about previous comments and this one too – I had standalone code that does this and you get into weird distortions if you scale same form more than once, so refer always to original sizes.
Also you may need to do extra for grids – grid font size has to be checked against default row height and column widths generally also need to be resized, as some are scaled and some not just to make life fun. I have code to do this if of use for Stringgrids. Also usually images do not scale. And then there is the issue of catering for different screen DPI just to be fun, form scaling will behave differently if not 96DPI From: Jolyon Direnko-Smith Sent: Wednesday, October 12, 2016 12:59 PM To: NZ Borland Developers Group - Delphi List Subject: Re: [DUG] Procedure run from main program To all of the implementation tips/observations aside, I would add the following: Any scaling based on simply modifying current values and using floating point and rounding is going to suffer from asymmetry and creeping rounding issues if forms are frequently scaled and rescaled. Asymmetry I mean that - for example - applying a scale of 3.0x to a form will not necessarily be exactly undone by then applying a scale of (1 / 3) x (0.333333333333x). Recurring decimals are the most obvious case where problems are likely to occur, but the nature of floating point representation means that they are not the only ones. This may not be a concern in your case, but then again it might be. :) A more robust approach would be to establish reference dimensions for each form (the "1 x" dimensions) and to always scale with respect to those reference dimensions.
_______________________________________________ NZ Borland Developers Group - Delphi mailing list Post: [email protected] Admin: http://delphi.org.nz/mailman/listinfo/delphi Unsubscribe: send an email to [email protected] with Subject: unsubscribe
