Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как определить размер рабочего стола без ТaskBarа

Delphi , Рабочий стол , Рабочий стол

Как определить размер рабочего стола без ТaskBarа

Воспользуйтесь функцией 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 используется для получения этой информации.

Рассмотрим, что код делает:

  1. Он объявляет переменную r типа TRect, которая представляет собой прямоугольник.
  2. В обработчике события Button1Click, он вызывает функцию SystemParametersInfo с двумя параметрами:
    • SPI_GETWORKAREA: это константа, которая указывает, что функция должна получить рабочую область (т.е., регион на десктопе, не покрытый окнами или другими элементами).
    • 0: это размер буфера для приема возвращенной информации.
  3. Третий параметр, @r, является указателем на переменную TRect r. Это место, где функция будет хранить результат.
  4. Четвертый параметр, 0, зарезервирован и должен быть установлен в ноль.
  5. После вызова SystemParametersInfo, он получает координаты верхней, левой, нижней и правой границ рабочей области из структуры TRect r с помощью Memo1.Lines.Add.
  6. Он добавляет эти значения в виде строк в мему-контроле (Memo1) для отображения.

Вывод будет размером рабочей области на десктопе, исключая панель задачи или другие элементы, которые могут покрывать часть ее.

Альтернативное решение:

procedure TForm1.Button1Click(Sender: TObject);
var
  r: TRect;
begin
  SystemParametersInfo(SPI_GETWORKAREA, 0, @r, 0);
  Memo1.Lines.Add('Left: ' + IntToStr(r.Left));
  Memo1.Lines.Add('Top: ' + IntToStr(r.Top));
  Memo1.Lines.Add('Right: ' + IntToStr(r.Right));
  Memo1.Lines.Add('Bottom: ' + IntToStr(r.Bottom));
end;

В этом альтернативном решении код более читаемый и понятный. Он добавляет значения в более описательном виде, включая поля (Left, Top, Right и Bottom).

Определить размер рабочего стола без TaskBar можно с помощью функции SystemParametersInfo() и параметра SPI_GETWORKAREA, которая возвращает результат в структуру типа TRect.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Рабочий стол ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 13:03:51/0.0054941177368164/1