>* Check whether this form fits inside the available space. >* If not, shrink it. > >LOCAL lnAvailHeight, lnAvailWidth >LOCAL lnDesiredHeight, lnDesiredWidth, llResize >LOCAL lnResizeRatio, lnTop > >lnAvailHeight = _screen.ViewPortHeight >lnAvailWidth = _screen.ViewPortWidth >llResize = .F. > >* Include a little fudge factor >IF This.Height > lnAvailHeight - 50 > lnDesiredHeight = m.lnAvailHeight - 50 > llResize = .T. >ELSE > lnDesiredHeight = This.Height >ENDIF > >*-- TEG 6/7/2021 >* Don't need fudge factor for width. We don't put anything on the sides. >IF This.Width > m.lnAvailWidth && - 50 > lnDesiredWidth = m.lnAvailWidth - 50 > llResize = .T. >ELSE > lnDesiredWidth = This.Width >ENDIF > > >IF m.llResize > lnTop = This.Top > > * Figure out which dimension is more cramped > IF m.lnDesiredHeight/This.Height < m.lnDesiredWidth/This.Width > lnResizeRatio = m.lnDesiredHeight/This.Height > ELSE > lnResizeRatio = m.lnDesiredWidth/This.Width > ENDIF > > This.Height = FLOOR(m.lnResizeRatio * This.Height) > This.Width = FLOOR(m.lnResizeRatio * This.Width) > > * Now make sure top is visible > IF This.AutoCenter > This.AutoCenter = .F. > This.AutoCenter = .T. > ELSE > This.Top = m.lnTop > ENDIF > >ENDIF > >RETURN >