Вниз
Скачать: CL | DM;

Сохранение позиции и размера формы   Найти похожие ветки 

← →
Kerk ©   (2015-11-19 15:30) [0]

Сабж. Сделать вроде легко, но есть подводные камни. Например, многомониторность. Перетащил окно на другой монитор, позиция сохранилась, отключил монитор, открыл окно еще раз и ой, оно на невидимом мониторе.

Есть какие-нибудь может стандартные решения здесь?


← →
кгшзх ©   (2015-11-19 16:01) [1]

стандартный иф стандартен


← →
картман ©   (2015-11-19 16:09) [2]


> отключил монитор

или, что то же самое, изменил разрешение...


← →
Kerk ©   (2015-11-19 16:11) [3]


> картман ©   (19.11.15 16:09) [2]

Именно


← →
кгшзх ©   (2015-11-19 16:15) [4]

стандартное решение - помнить не пиксели а проценты


← →
Dimka Maslov ©   (2015-11-19 16:21) [5]

Лично я определяю монитор относительно сохранённого центра формы:

M: TMonitor;
R: TRect;

M := Screen.MonitorFromPoint(R.CenterPoint);

потом сравниванию R и M.WorkareaRect.

Если R выпадает за пределы - устанавливаю положение и размеры формы по-умолчанию.


← →
Kerk ©   (2015-11-20 00:06) [6]

Про проценты интересная идея. Но будет давать видимую глазом погрешность.


← →
Kerk ©   (2015-11-20 00:07) [7]

Хотя в принципе можно свести к погрешности в один пиксель.


← →
Eraser ©   (2015-11-20 00:19) [8]

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


← →
кгшзх ©   (2015-11-20 08:34) [9]

для случая исчезания второго монитора или смены разрешения


← →
Eraser ©   (2015-11-21 18:00) [10]


> кгшзх ©   (20.11.15 08:34) [9]

выключил второй монитор - форма сама перескочила на первый.


← →
кгшзх ©   (2015-11-21 18:42) [11]

форма сама перескочила на первый.

а кто тебе сказал,
что приложение обязательно должно быть запущено
в момент выключения монитора?

его зарыли когда форма была на правом и в настройках лежит лефт-координата которая больше ширины левого моника.


← →
megavoid ©   (2015-11-22 03:33) [12]

[Shift+]Win+влево|вправо


← →
Eraser ©   (2015-11-22 22:30) [13]


> кгшзх ©   (21.11.15 18:42) [11]

читаем внимательно [8].


← →
кгшзх ©   (2015-11-23 10:21) [14]

втыкай внимательно с самого начала


← →
Rouse_ ©   (2015-11-23 18:59) [15]


> Kerk ©   (19.11.15 15:30) 

я писал как ширина/высота + левый верхний угол относительно активного монитора + номер монитора в системе (ну если не учитывать максимально размернутое состояние - это просто флаг).
Если монитор отключен - выводим все в таком-же виде на главный.
Монитор может поменять разрешение, стать не слева, а справа, или сверху - работать будет.


← →
DVM ©   (2015-11-23 21:52) [16]

Имхо, при любом изменении конфигурации мониторов, выводим окно туда, где панель задач - не ошибемся.


← →
Rouse_ ©   (2015-11-23 23:18) [17]

Панельку можно на все растянуть ;)



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.016 c
15-1455112145
gedevan
2016-02-10 16:49
2017.01.15
Компонент для построения блок схем


15-1457514823
istok20
2016-03-09 12:13
2017.01.15
где искать фрилансеров по Delphi ?


15-1445245394
Kerk
2015-10-19 12:03
2017.01.15
Анатолий Подгорецкий


15-1456319592
Копир
2016-02-24 16:13
2017.01.15
Порой опять гармонией упьюсь, Над вымыслом слезами обольюсь...


15-1451175767
Kerk
2015-12-27 03:22
2017.01.15
А порекомендуйте хорошее крымское вино




   Наверх