#DEFINE DEFWIDTH 759 #DEFINE DEFHEIGHT 483 LOCAL NWIDTH, NHEIGHT LOCAL NWIDTHRATE, NHEIGHTRATE WITH THIS .LOCKSCREEN = .T. .TOP = 0 .LEFT = 0 DO CASE CASE .WIDTH<THISFORM.DWIDTH .WIDTH = THISFORM.DWIDTH NWIDTHRATE = .WIDTH / THISFORM.CWIDTH CASE .WIDTH>DEFWIDTH NWIDTHRATE = DEFWIDTH / THISFORM.CWIDTH .WIDTH = DEFWIDTH OTHERWISE NWIDTHRATE = .WIDTH / THISFORM.CWIDTH ENDCASE DO CASE CASE .HEIGHT<THISFORM.DHEIGHT .HEIGHT = THISFORM.DHEIGHT NHEIGHTRATE = .HEIGHT / THISFORM.CHEIGHT CASE THIS.HEIGHT>DEFHEIGHT NHEIGHTRATE = DEFHEIGHT / THISFORM.CHEIGHT .HEIGHT = DEFHEIGHT OTHERWISE NHEIGHTRATE = .HEIGHT / THISFORM.CHEIGHT ENDCASE .CHEIGHT = .HEIGHT .CWIDTH = .WIDTH *-- Resize and reposition current form * .Width = .Width * nWidthRate * .Height = .Height * nHeightRate * .Left = .Left * nWidthRate * .Top = .Top * nHeightRate *-- Resize and reposition all objects for the current form FOR nControlLoop = 1 TO .ControlCount .Controls[nControlLoop].Width = ; .Controls[nControlLoop].Width * nWidthRate .Controls[nControlLoop].Height = ; .Controls[nControlLoop].Height * nHeightRate .Controls[nControlLoop].Left = ; .Controls[nControlLoop].Left * nWidthRate .Controls[nControlLoop].Top = ; .Controls[nControlLoop].Top * nHeightRate IF PEMSTATUS(.Controls[nControlLoop],"FontSize",5) .Controls[nControlLoop].FontSize = ; ROUND(.Controls[nControlLoop].FontSize * NHeightRate,0) ENDIF ENDFOR .LOCKSCREEN = .F. ENDWITHGenerally, It works well if user make a GREAT Change