Эта процедура Delphi, которая получает позицию активного окна и отображает ее в компоненте Memo. Вот разбивка кода:
Функция GetForegroundWindow: Получает.handle foreground window, то есть активное окно.
Функция GetWindowRect: Получает прямоугольник (рамки) указанного окна, включая его позицию и размер.
Блок with Memo1.Lines do очищает компонент Memo и добавляет четыре строки:
Top: Верхняя точка клиентской области окна.
Left: Левая точка клиентской области окна.
Bottom: Нижняя точка клиентской области окна.
Right: Правая точка клиентской области окна.
Каждая строка префиксирована описательным текстом и сопровождается значением соответствующей свойства, конвертированным в строку с помощью IntToStr.
Чтобы улучшить этот код, вы могли бы рассмотреть добавление обработки ошибок в случае, если foreground window не может быть получен или его прямоугольник не может быть получен. Вы также можете хотелось бы отображать более детальную информацию о активном окне, например, его заголовок или имя класса.
Вот альтернативное решение, использующее unit Windows и предоставляющее более подробную информацию:
procedure TForm1.Button1Click(Sender: TObject);
var
hWindow: HWnd;
r: TRect;
begin
hWindow := GetForegroundWindow;
if hWindow = 0 then
Memo1.Lines.Add('Не найдено активного окна.')
else begin
GetWindowRect(hWindow, r);
Memo1.Clear;
with Memo1.Lines do
begin
Add('Заголовок окна: ' + GetWindowText(hWindow));
Add('Имя класса окна: ' + GetClassName(hWindow));
Add('Верх: ' + IntToStr(r.Top));
Add('Лево: ' + IntToStr(r.Left));
Add('Низ: ' + IntToStr(r.Bottom));
Add('Право: ' + IntToStr(r.Right));
end;
end;
end;
В этом коде используется GetWindowText для получения заголовка окна и GetClassName для получения имени класса окна. Он также включает обработку ошибок в случае, если не найдено активного окна.
В статье описывается процедура на языке Delphi, которая получает координаты активного окна на экране и выводит их в текстовом поле.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS