&GLOBAL-DEFINE SM_CXBEGINN 76 &GLOBAL-DEFINE SM_CYBEGINN 77 &GLOBAL-DEFINE SM_CXVIRTUALSCREEN 78 &GLOBAL-DEFINE SM_CYVIRTUALSCREEN 79 DEF VAR wx AS INT NO-UNDO. DEF VAR wy AS INT NO-UNDO. DEF VAR MaxX AS INT NO-UNDO. DEF VAR MaxY AS INT NO-UNDO. DEF VAR BegX AS INT NO-UNDO. DEF VAR BegY AS INT NO-UNDO. DEF VAR xString AS CHAR NO-UNDO. cBenutzerDaten = DYNAMIC-FUNCTION('getBenutzerDaten':U) NO-ERROR. cBenutzer = ENTRY(1, cBenutzerDaten, CHR(01)) NO-ERROR. iBenuSprcd = INTEGER(ENTRY(6, cBenutzerDaten, CHR(01))) NO-ERROR. cInstallation = DYNAMIC-FUNCTION('getInstallation':U) NO-ERROR. xString = DYNAMIC-FUNCTION('getFensterPosition':U, INPUT 'Fensterposition', INPUT Progname ) NO-ERROR. IF xString = ? OR xString = '' THEN DO: wx = 100. wy = 100. END. ELSE DO: wx = INTEGER(ENTRY(1, xString, CHR(01))) NO-ERROR . wy = INTEGER(ENTRY(2, xString, CHR(01))) NO-ERROR . END. RUN GetSystemMetrics ( {&SM_CXBEGINN}, OUTPUT BegX ). IF BegX = ? OR BegX = 0 THEN BegX = 1. RUN GetSystemMetrics ( {&SM_CYBEGINN}, OUTPUT BegY ). IF BegY = ? OR BegY = 0 THEN BegY = 1. RUN GetSystemMetrics ( {&SM_CXVIRTUALSCREEN}, OUTPUT MaxX ). IF MaxX = ? OR MaxX = 0 THEN MaxX = SESSION:FULL-WIDTH-PIXELS. RUN GetSystemMetrics ( {&SM_CYVIRTUALSCREEN}, OUTPUT MaxY ). IF MaxY = ? OR MaxY = 0 THEN MaxY = SESSION:FULL-HEIGHT-PIXELS. IF wx < BegX THEN wx = BegX + 20. IF wx > (BegX + MaxX - 20) THEN wx = MaxX - {&WINDOW-NAME}:WIDTH-PIXELS - 20. IF wy < BegY THEN wy = BegY + 20. IF wy > (MaxY - 20) THEN wy = MaxY - {&WINDOW-NAME}:HEIGHT-PIXELS - 20. {&WINDOW-NAME}:X = wx. {&WINDOW-NAME}:Y = wy.