Получение координат области Рабочего стола, не скрытой Панелью задачDelphi , Рабочий стол , Рабочий столПолучение координат области Рабочего стола, не скрытой Панелью задач
Автор: Dimka Maslov { **** UBPFD *********** by delphibase.endimus.com **** >> Получение координат области Рабочего стола, не скрытой Панелью задач Зависимости: Windows Автор: Dimka Maslov, mainbox@endimus.ru, ICQ:148442121, Санкт-Петербург Copyright: Dimka Maslov Дата: 4 ноября 2002 г. ***************************************************** } function GetDesktopRect: TRect; var RgnDesktop, RgnTrayWnd: HRGN; function CreateWindowRgn(Handle: HWND): HRGN; var R: TRect; begin GetWindowRect(Handle, R); with R do Result := CreateRectRgn(Left, Top, Right, Bottom); end; begin RgnDesktop := CreateWindowRgn(GetDesktopWindow); try RgnTrayWnd := CreateWindowRgn(FindWindow('Shell_TrayWnd', '')); try CombineRgn(RgnDesktop, RgnDesktop, RgnTrayWnd, RGN_DIFF); GetRgnBox(RgnDesktop, Result); finally DeleteObject(RgnTrayWnd); end; finally DeleteObject(RgnDesktop); end; end; Перевод контента на русский язык: Функция Delphi под именем Вот разбивка того, что код делает:
Вот некоторые предложения по улучшению:
Вот альтернативное решение, которое адресует эти предложения:
В этом альтернативном решении я убрал вложенную функцию и встроил ее код в основную функцию. Я также использовал более описательные имена переменных и добавил явную обработку ошибок с помощью блока try-except. В статье Dimka Maslov описывается функция GetDesktopRect, позволяющая получить координаты области Рабочего стола, не скрытой панелью задач в Windows. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Рабочий стол ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |