procedure TFormX.FormCreate(Sender: TObject);
Var
r: TRect;
client: HWND;
Begin
client := application.mainform.clienthandle;
Windows.GetClientRect( client, r );
MapWindowPoints( client, HWND_DESKTOP, r, 2 );
BoundsRect := r;
End;
Here's a translation of the provided text into Russian:
Код, представленный ниже, является частью обработчика события FormCreate в Delphi и используется для создания окна MDI (Многодокументное интерфейсе) с координатами (0, 0).
Разбивка кода:
Var r: TRect; объявляет переменную r типа TRect, которая представляет собой прямоугольник.
client := application.mainform.clienthandle; получает клиентский хэндл основного окна.
Windows.GetClientRect(client, r); извлекает размеры клиентской области указанного окна (client) и сохраняет их в переменной r. Функция GetClientRect возвращает координаты прямоугольника, ограничивающего клиентскую область, включая любые полосы прокрутки или другие не-клиентские области.
MapWindowPoints(client, HWND_DESKTOP, r, 2); преобразует точки внутри окна из одной координатной системы в другую. В этом случае она преобразует точки в клиентском окне (client) в координаты десктопа тех же точек. Последний параметр, 2, указывает, что преобразование выполняется с помощью функции SMAPTOVIRTUAL.
BoundsRect := r; присваивает значение r (прямоугольника клиентской области) переменной BoundsRect.
Однако может возникнуть путаница в том, как создать окно MDI с координатами (0, 0). Если вы хотите задать позицию основного окна на десктопе, вам нужно использовать свойства Left и Top вместо.
Вот модифицированная версия кода:
procedure TFormX.FormCreate(Sender: TObject);
begin
Left := 0; // Задает левую позицию в 0
Top := 0; // Задает верхнюю позицию в 0
end;
Это установит основное окно на верхнем левом углу десктопа.
В статье описывается создание MDI-окна с координатами 0,0 в программировании на Delphi с использованием процедуры TFormX.FormCreate.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS