Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Окно по центру экрана. [D7, XP]


Страницы:   1 2

Б ©   (2009-12-07 15:36:00) 

Здрасти!

Есть ли такая функция, которая размещает окно ровно по центру экрана? (Окно не на VCL)
Или самому расчитывать?


Б   (2009-12-18 10:42:00) [1]


> ты собрался миллион раз в секунду окно по центру позиционировать?


Надо сделать привычкой ставить сдвиг везде где это уместно.
В данном случае выйгрыша как такового нет, но в графикие, обработке растров и проч. "дорогих" операциях - почему бы и нет?
И ещё, говоря про сдвиг, имелось ввиду его большая скорость вообще.


DVM   (2009-12-18 10:36:00) [2]


> Говорят сдвиг быстрее.

ты собрался миллион раз в секунду окно по центру позиционировать?


Б   (2009-12-18 10:12:00) [3]


> С каких пор DIV 2 затратный, не думай что в Дельфи дурной
> оптимизатор.


Говорят сдвиг быстрее.


Anatoly Podgoretsky   (2009-12-18 08:58:00) [4]


> Дабы не использовать затратный DIV, рекомендую shr 1 =)

С каких пор DIV 2 затратный, не думай что в Дельфи дурной оптимизатор.


Б   (2009-12-18 00:30:00) [5]


> Дабы не использовать затратный DIV, рекомендую shr 1 =)
> А плюс-минус пиксель это, имхо, сущая мелочь.


Точняк! =)
Да и хрен с этим пикселем.


0x00FF00   (2009-12-18 00:28:00) [6]

Дабы не использовать затратный DIV, рекомендую shr 1 =)
А плюс-минус пиксель это, имхо, сущая мелочь.


Б   (2009-12-18 00:10:00) [7]


> значит, низачот )


Да и ладно с этип пикселем. ;)


Б   (2009-12-07 16:46:00) [8]

Или так:


 X:= round((GetSystemMetrics(SM_CXSCREEN) - Width) / 2);
 Y:= round((GetSystemMetrics(SM_CYSCREEN) - Height) / 2);


Б   (2009-12-07 16:42:00) [9]


> (6 div 2) - (3 div 2) <> (6 - 3) div 2


Не, у меня окна должны быть кратны 2-ке. +-1.
Зачёт? ;)


clickmaker   (2009-12-07 16:40:00) [10]

значит, низачот )


MBo   (2009-12-07 16:37:00) [11]

(6 div 2) - (3 div 2) <> (6 - 3) div 2


Б   (2009-12-07 16:33:00) [12]


> Зачет ;)


Пасиба. ;)


йцукен   (2009-12-07 16:29:00) [13]


> Б   (07.12.09 16:28) [9]

Зачет ;)


Б   (2009-12-07 16:28:00) [14]


> Left := (Screen.Width div 2) - (Width div 2);


Воспользовавшись свойствами дроби:

(GetSystemMetrics(SM_CXSCREEN) - Width) div 2


Б   (2009-12-07 16:19:00) [15]


> они трогаются в SetWindowToMonitor


А... ну теперь всё понятно. ;)


clickmaker   (2009-12-07 16:17:00) [16]

они трогаются в SetWindowToMonitor


Б   (2009-12-07 16:13:00) [17]

Посмотрел как сделано в VCL-форме.
Метод SetPostion -> TWinControl.ReCreateWnd ->  Perform(CM_RECREATEWND, 0, 0).
Я так понимаю окно пересоздаётся.
Смотрю приватный метод CreateWnd, а в нём po-XXX - флаги даже не трогаются. Чёт найти не могу, как это делается в VCL.


Б   (2009-12-07 16:06:00) [18]

> А, не VCL. Ну получить разрешение текущего монитора/десктопа, тоже дело не хитрое, Будет домашним заданием ;)

Я, конечно, пока только студент-первокурсник, но не такой уж и тупак. ;)


GetSystemMetrics(SM_CXSCREEN)/GetSystemMetrics(SM_CYSCREEN);


йцукен   (2009-12-07 15:45:00) [19]

А, не VCL. Ну получить разрешение текущего монитора/десктопа, тоже дело не хитрое, Будет домашним заданием ;)


Б   (2009-12-07 15:45:00) [20]


> А чего там расчитывать?


Не ну конечно расчитывать там мало, но всё таки. А то вруг есть. :)


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо