Главная страница
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.019 c
15-1452576702
sniknik
2016-01-12 08:31
2017.01.15
Помогите в анализе ошибок по дампам


15-1457219940
Eraser
2016-03-06 02:19
2017.01.15
Требуется ядерщик


15-1453277297
Dimka Maslov
2016-01-20 11:08
2017.01.15
Немного музыки


2-1419002742
Вован Петрович
2014-12-19 18:25
2017.01.15
Локализация ПО


15-1453566333
Fragen
2016-01-23 19:25
2017.01.15
Как пишутся приложения для нахождения оптимального маршрута?