Страница 1 из 1

Расположение окон на экране

СообщениеДобавлено: 21.12.2017 13:43:26
DropSoft
Под Windows 10 вывожу два окна, надо чтобы GrafForm было сразу под MainForm
Код: Выделить всё
MainForm.Top := 0;
MainForm.Left := 0;
GrafForm.Top := MainForm.Height;
GrafForm.Left := 0;

При этом GrafForm пикселей на 40 залезает на MainForm. Вроде как окантовка окна с заголовком не считается в MainForm.Height
Можно конечно сделать GrafForm.Top := MainForm.Height + 40;
Но при другом оформлении или под другой ОС зазор будет другим.
А как узнать полный размер окна MainForm?

Re: Расположение окон на экране

СообщениеДобавлено: 21.12.2017 23:32:41
pupsik
GetSystemMetrics(SM_CYCAPTION)

Re: Расположение окон на экране

СообщениеДобавлено: 22.12.2017 10:05:28
zub
GetSystemMetrics работает не везде.
Странная задача... используйте докинг

Re: Расположение окон на экране

СообщениеДобавлено: 22.12.2017 13:44:45
wadman
zub писал(а):Странная задача... используйте докинг

Проще (и правильнее на мой взгляд) запоминать позиции окон, чтоб пользователь сам решал как ему удобнее.

Re: Расположение окон на экране

СообщениеДобавлено: 22.12.2017 16:10:33
zub
>>чтоб пользователь сам решал как ему удобнее.
и я про тоже, только пользователь помимо положений будет еще сам решать докнуть всё в одно окно, или оставить 100500 разных

Re: Расположение окон на экране

СообщениеДобавлено: 22.12.2017 20:02:02
pupsik
zub смысл в ином:
Это нечто посыла для поиска. И подтверждение "Вроде как окантовка окна с заголовком не считается"...

п.с.
чтоб пользователь сам решал как ему удобнее.
и все так делают, и учитывают это при разработке. Ню..ню.. :mrgreen:

Re: Расположение окон на экране

СообщениеДобавлено: 22.12.2017 20:24:07
Sergei I. Gorelkin
Вроде бы свойства Width и Height всю жизнь были с учетом заголовка и бордюров. А размеры без них - это ClientWidth и ClientHeight.