...

Листинг 10.5.

Определение общей информации об окне

procedure TfrmWindowProp.LoadWindowInfo();

var

rect: TRect;

buffer: String;

begin

//Сбор сведений об окне

//..имя класса

SetLength(buffer, 1024);

SetLength(buffer, GetClassName(wnd, PAnsiChar(buffer), 1024));

txtClassName.Text := buffer;

//..имя (заголовок) окна

SetLength(buffer, SendMessage(wnd, WM_GETTEXTLENGTH, 0, 0) + 1);

SendMessage(wnd, WM_GETTEXT, Length(buffer),

Integer(PAnsiChar(buffer)));

txtWindowName.Text := buffer;

//..идентификатор (или дескриптор меню) окна

txtId.Text := IntToStr(GetWindowLong(wnd, GWL_ID));

//..оконный прямоугольник

GetWindowRect(wnd, rect);

txtWindowRect.Text :=

\'(\' + IntToStr(rect.Left) + \',\' + IntToStr(rect.Top) + \')\' +

\' – \' +

\'(\' + IntToStr(rect.Right) + \',\' + IntToStr(rect.Bottom) + \') \' +

IntToStr(rect.Right–rect.Left) + \'x\' + IntToStr(rect.Bottom –

rect.Top);

//Определение стиля окна

LoadWindowStyle();

LoadWindowExStyle();

end;

Если вы внимательно просмотрели листинг 10.5, то могли заметить вызовы двух процедур в двух последних строках кода. Процедура LoadWindowStyle заполняет списки используемых и доступных оконных стилей (см. рис. 10.4), а процедура LoadWindowExStyle соответственно заполняет списки используемых и доступных дополнительных (или расширенных) стилей окна.

Реализация процедуры LoadWindowStyle приводится в листинге 10.6

Загрузка...