Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2017.01.15;
Скачать: 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 вся ветка

Текущий архив: 2017.01.15;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.015 c
15-1448473849
RusSun
2015-11-25 20:50
2017.01.15
Хулиганы добавили offtop сообщения в KOL конференции


2-1432209907
Pavelnk
2015-05-21 15:05
2017.01.15
Запись в ini файл


15-1446056433
Kerk
2015-10-28 21:20
2017.01.15
Вопросы в Idera


2-1426163311
Aleshka
2015-03-12 15:28
2017.01.15
Из реестра в TDateTime


2-1423420494
MrFeuer
2015-02-08 21:34
2017.01.15
Поиск файлов