Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2017.01.15;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.047 c
15-1435899159
Any
2015-07-03 07:52
2017.01.15
Где найти фрилансеров


15-1457006151
Ринсвинд
2016-03-03 14:55
2017.01.15
Какой ваш самый любимый и самый нелюбимый язык программирования?


2-1424187609
TYMON
2015-02-17 18:40
2017.01.15
Технология Intraweb пустая страница при запуске


15-1448919001
Юрий
2015-12-01 00:30
2017.01.15
С днем рождения ! 1 декабря 2015 вторник


15-1453757404
Юрий
2016-01-26 00:30
2017.01.15
С днем рождения ! 26 января 2016 вторник





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский