winenableobject.i 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. &GLOBAL-DEFINE SM_CXBEGINN 76
  2. &GLOBAL-DEFINE SM_CYBEGINN 77
  3. &GLOBAL-DEFINE SM_CXVIRTUALSCREEN 78
  4. &GLOBAL-DEFINE SM_CYVIRTUALSCREEN 79
  5. DEF VAR wx AS INT NO-UNDO.
  6. DEF VAR wy AS INT NO-UNDO.
  7. DEF VAR MaxX AS INT NO-UNDO.
  8. DEF VAR MaxY AS INT NO-UNDO.
  9. DEF VAR BegX AS INT NO-UNDO.
  10. DEF VAR BegY AS INT NO-UNDO.
  11. DEF VAR xString AS CHAR NO-UNDO.
  12. cBenutzerDaten = DYNAMIC-FUNCTION('getBenutzerDaten':U) NO-ERROR.
  13. cBenutzer = ENTRY(1, cBenutzerDaten, CHR(01)) NO-ERROR.
  14. iBenuSprcd = INTEGER(ENTRY(6, cBenutzerDaten, CHR(01))) NO-ERROR.
  15. cInstallation = DYNAMIC-FUNCTION('getInstallation':U) NO-ERROR.
  16. xString = DYNAMIC-FUNCTION('getFensterPosition':U, INPUT 'Fensterposition',
  17. INPUT Progname ) NO-ERROR.
  18. IF xString = ? OR
  19. xString = '' THEN DO:
  20. wx = 100.
  21. wy = 100.
  22. END.
  23. ELSE DO:
  24. wx = INTEGER(ENTRY(1, xString, CHR(01))) NO-ERROR .
  25. wy = INTEGER(ENTRY(2, xString, CHR(01))) NO-ERROR .
  26. END.
  27. RUN GetSystemMetrics ( {&SM_CXBEGINN}, OUTPUT BegX ).
  28. IF BegX = ? OR
  29. BegX = 0 THEN BegX = 1.
  30. RUN GetSystemMetrics ( {&SM_CYBEGINN}, OUTPUT BegY ).
  31. IF BegY = ? OR
  32. BegY = 0 THEN BegY = 1.
  33. RUN GetSystemMetrics ( {&SM_CXVIRTUALSCREEN}, OUTPUT MaxX ).
  34. IF MaxX = ? OR
  35. MaxX = 0 THEN MaxX = SESSION:FULL-WIDTH-PIXELS.
  36. RUN GetSystemMetrics ( {&SM_CYVIRTUALSCREEN}, OUTPUT MaxY ).
  37. IF MaxY = ? OR
  38. MaxY = 0 THEN MaxY = SESSION:FULL-HEIGHT-PIXELS.
  39. IF wx < BegX THEN wx = BegX + 20.
  40. IF wx > (BegX + MaxX - 20) THEN wx = MaxX - {&WINDOW-NAME}:WIDTH-PIXELS - 20.
  41. IF wy < BegY THEN wy = BegY + 20.
  42. IF wy > (MaxY - 20) THEN wy = MaxY - {&WINDOW-NAME}:HEIGHT-PIXELS - 20.
  43. {&WINDOW-NAME}:X = wx.
  44. {&WINDOW-NAME}:Y = wy.