Воспользуйтесь функцией SystemParametersInfo(), переслав ей в качестве параметров - SPI_GETWORKAREA и адрес структуры типа TRect, куда будут передан полученный результат:
procedure TForm1.Button1Click(Sender: TObject);
var
r: TRect;
begin
SystemParametersInfo(SPI_GETWORKAREA, 0, @r, 0);
Memo1.Lines.Add(IntToStr(r.Top));
Memo1.Lines.Add(IntToStr(r.Left));
Memo1.Lines.Add(IntToStr(r.Bottom));
Memo1.Lines.Add(IntToStr(r.Right));
end;
Here's the translation of the provided text into Russian:
Код на Delphi - процедура, которая получает размер рабочей области на десктопе, исключая панель задач. Функция SystemParametersInfo используется для получения этой информации.
Рассмотрим, что код делает:
Он объявляет переменную r типа TRect, которая представляет собой прямоугольник.
В обработчике события Button1Click, он вызывает функцию SystemParametersInfo с двумя параметрами:
SPI_GETWORKAREA: это константа, которая указывает, что функция должна получить рабочую область (т.е., регион на десктопе, не покрытый окнами или другими элементами).
0: это размер буфера для приема возвращенной информации.
Третий параметр, @r, является указателем на переменную TRectr. Это место, где функция будет хранить результат.
Четвертый параметр, 0, зарезервирован и должен быть установлен в ноль.
После вызова SystemParametersInfo, он получает координаты верхней, левой, нижней и правой границ рабочей области из структуры TRectr с помощью Memo1.Lines.Add.
Он добавляет эти значения в виде строк в мему-контроле (Memo1) для отображения.
Вывод будет размером рабочей области на десктопе, исключая панель задачи или другие элементы, которые могут покрывать часть ее.
В этом альтернативном решении код более читаемый и понятный. Он добавляет значения в более описательном виде, включая поля (Left, Top, Right и Bottom).
Определить размер рабочего стола без TaskBar можно с помощью функции SystemParametersInfo() и параметра SPI_GETWORKAREA, которая возвращает результат в структуру типа TRect.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS