Progress ABL: как сделать так, чтобы окна открывались в том же положении на экране, в каком они открывались в прошлый раз

В настоящее время мы используем эту логику для центрирования каждого нового окна:

ASSIGN {& WINDOW-NAME}: X = (SESSION: WIDTH-PIXELS - {& WINDOW-NAME}: WIDTH-PIXELS) / 2 {& WINDOW-NAME}: Y = (SESSION: HEIGHT-PIXELS - {& WINDOW-NAME}: HEIGHT -ПИКСЕЛЕЙ) / 2.

Однако пользователь хочет разместить окно в определенном месте. Когда они закрывают окно и открывают его позже, они хотят, чтобы оно появилось на том же месте, где они его оставили.

Если я удалю приведенный выше код, новое окно появится на экране случайным образом.

Использование: Windows XP Progress Openedge 10.1C01


person Kevin Rettig    schedule 04.09.2009    source источник


Ответы (1)


Вам необходимо записать положение X и Y, в которое пользователь перемещает его, и использовать эту информацию, чтобы повторно открыть его в этой позиции при следующем запуске.

Вы можете записать положение при выключении, но это оставляет возможность не запоминания аварийного выключения. Это может быть то, что вы хотите, а может и нет.

Или вы могли бы затем обнаружить ходы и записать новую позицию. Возможно, вы захотите использовать MOUSE-MOVE-UP.

person Tom Bascom    schedule 04.09.2009
comment
Спасибо, Том. Я надеялся, что есть какое-то поведение по умолчанию, которое я могу активировать, чтобы Progress все отслеживал. Поскольку этого не существует, я обязательно воспользуюсь вашими предложениями. - person Kevin Rettig; 09.09.2009