Глава 21. Объектные типы ObjectWindows (продолжение)
Тип TVTransfer модуль Validate
-----------------------------------------------------------------
Описание: TVTransfer = (vtDataSize, vtSetData, vtGetData);
Назначение: Объекты проверки допустимости используют пара-
метры типа TVTransfer в своих методах Transfer для управления пе-
редачей данных при установке или считывании значения из соответс-
твующей строки ввода.
См. также: TValidator.Transfer.
Тип TWndClass модуль WinTypes
-----------------------------------------------------------------
Описание:
TWndClass = record
style: Word;
lpfnWndProc: TFarProc;
cbClsExtra: Integer;
cbWndExtra: Integer;
hInstance: THandle;
hIcon: HIcon;
hCursor: HCursor;
hbrBackGround: HBrush;
lpszMenuName: PChar;
lpszClassName: PChar;
end;
Назначение: Запись TWndClass содержит атрибуты класса окна,
известные также как атрибуты регистрации, зарегистрированные с
помощью функции RegisterClass.
Поле style содержит стиль класса - одну из комбинаций конс-
тант стиля класса cs_.
Поле lpfnWndProc указывает на оконную функцию окна - подп-
рограмму, которая получает и обрабатывает сообщения.
cbClsExtra - это число байт, которые должны выделяться в
конце записи TWndClass. Они называются дополнительными байтами
класса и доступны с помощью функций GetWindowLong и
GetWindowWord. Установить их можно с помощью функций
SetWindowLong и SetWindowWord.
cbWndExtra дает число байт, выделенных в конце экземпляра
окна.
hInstance - это описатель экземпляра, который должен указы-
вать на модуль класса. Он должен быть ненулевым.
Поля hIcon, hCursor и hbrBackGround - это описатели пиктог-
раммы, курсора класса и фонового цвета класса соответственно. В
качестве фонового цвета должно указываться значение цвета (один
из стандартных системных цветов, заданный константой color_, уве-
личенный на 1) или описатель кисти для раскраски фона. Если
hbgBackGround равно 0, то фон приложения должен раскрашиваться
при раскраске области клиента. Необходимость этого можно опреде-
лить обработкой сообщения wm_EraseBkgnd или проверкой поля fErase
записи TPaintStruct, созданной BeginPaint.
Поля lpszMenuName и lpszClassName указывают на строки с за-
вершающим нулем, представляющими, соответственно, имя ресурса ме-
ню класса и имя класса.
См. также: TWindowsObject.GetWindowClass.
------------------------------------------------------------------------
TWindow модуль OWindows
-----------------------------------------------------------------
TObject TWindowsObject
+------+ +----------------------------------------+
+------| | ChildList Parent |
|-Init-| | Flags Status |
|-Done-| | HWindow TransferBuffer |
| Free | | Instance |
+------+ +----------------------------------------|
|-Init-------- GetChildren |
|-Load-------- -GetClassName-------|
| Done GetClient |
| AddChild -GetId--------------|
| At GetSiblingPtr |
| Canclose -GetWindowClass-----|
| ChildWithId IndexOf |
| CloseWindow IsFlagSet |
| CMExit Next |
|-Create------ Previous |
| CreateChildren PutChildPtr |
| CreateMemoryDC PutChildren |
| DefChildProc PutSiblingPtr |
| DefCommandProc -Register-----------|
| DefNotificationProc RemoveChild |
|-DefWndProc-- SetFlags |
| Destroy -SetupWindow--------|
| Disable Show |
| DisableAutoCreate -Store--------------|
| DisableTransfer Transfer |
| DispatchScroll TransferData |
| Enable -WMActivate---------|
| EnableAutoCreate WMClose |
| EnableKBHandler WMCommand |
| EnableTransfer WMDestroy |
| FirstThat -WMNScroll----------|
| Focus WMNCDestroy |
| ForEach WMNQueryEndSession |
| GetChildPtr -WMVScroll----------|
+----------------------------------------+
TWindow
+-------------------+
| Attr |
| DefaultProc |
| Scrol[ler |
| FocusChildHandle |
+-------------------|
| Init |
| InitResource |
| Load |
| Done |
| Create |
| DefWndProc |
| FocusChild |
| GetId |
| GetWindowClass |
| Paint |
| SetCaption |
| SetupWindow |
| Store |
| UpdateFocusChild |
| WMActivate |
| WMHScroll |
| WMLButtonDown |
| WMMDIActivate |
| WMMove |
| WMPaint |
| WMSize |
| WMSysCommand |
| WMVScroll |
+-------------------+
TWindow определяет фундаментальное поведение для всех окон и
объектов управляющих элементов. Экземпляры объектов TWindow - это
просто общие окна, но они могут включать в себя меню, курсоры и
пиктограммы.
Поля
-----------------------------------------------------------------
Attr (чтение/запись)
Attr: TWindowAttr;
Attr содеpжит запись TWindowAttr, котоpая опpеделяет атpибу-
ты создания окон - хаpактеpистики, влияющие на создание соответс-
твующего интеpфейсного элемента окна. К ним относятся текст,
стиль, pасшиpенный стиль, положение и pазмеp, описатель окна и
идентификатоp управляющего элемента. Эти атрибуты устанавливаются
по умолчанию конструктором Init, но могут переопределяться в
конструкторах наследующих типов.
См. также: тип TWindowAttr.
DefaultProc (только чтение)
DefaultProc: TFarProc;
DefaultProc содержит адрес используемой по умолчанию проце-
дуры окна, которая определяет применяемую по умолчанию обработку
сообщений Windows.
FocusChildHandle (только чтение)
FocusChildHandle: THandle;
FocusChildHandle cодеpжит описатель дочеpнего окна для дан-
ного окна, котоpое было активно в момент, когда окно активи-
зиpовалось в последний pаз. Windows не отслеживает автоматически
фокус дочерних окон, так что когда вы вновь активизируете окно
или восстанавливаете его из пиктограммы, ObjectWindows обеспечи-
вает восстановление фокуса для того дочернего окна, где он бы в
последний раз.
С данным полем вы можете работать с помощью методов
FocusChild и UpdateFocusChild.
Scroller (чтение/запись)
Scroller: PScroller;
Scroller содеpжит указатель на объект TScroller, котоpый ис-
пользуется для организации прокрутки изображения. В конструкторе
TWindow создается экземпляр объекта Scroller и устанавливается
элемент прокрутки.
Методы
-----------------------------------------------------------------
Ниже перечисляются методы, содержащиеся в данном объекте.
Init (часто переопределяется)
-----------------------------------------------------------------
constructor Init(AParent: PTWindowsObject; ATitle, PChar);
Создает объект окна с порождающим окном, пеpедаваемым в
AParent и соответствующим текстом (заголовком для окон), пеpеда-
ваемым в ATitle. Для основных окон, не имеющих порождающих окон
AParent должно иметь значение nil. Поле Attr.Style объекта уста-
навливается в ws_OverlappedWindow (если окно не является порож-
денным окном MDI - в этом случае оно устанавливается в
ws_ClipSiblings). Устанавливает позицию и поля в Attr в их соот-
ветствующие используемые по умолчанию значения для образования
перекрывающихся и всплывающих окон.
В конструкторе объекта, производного от TWindow (или в любой
момент перед созданием интерфейсного элемента), используемые по
умолчанию значения структуры Attr можно установить по-другому.
Конструктор производного от TWindow объекта может также устанав-
ливать Scroller (по умолчанию nil) в экземпляр объекта TScroller.
InitResource
-----------------------------------------------------------------
constructor InitResource(AParent: PWindowsObject;
ResourceID: Word);
На основе определения ресурса строит интерфейсный объект,
связанный с элементом экрана (обычно управляющим элементов). Для
построения объекта вызывает TWindowsObject.Init.
См. также: TWindowsObject.Init.
Load
-----------------------------------------------------------------
constructor Load(var S: TStream);
Строит и загружает окно из потока S, вызывая сначала
TWindowsObjecrt.Load, а затем считывая и получая дополнительные
поля (Attr и Scroller), введенные в TWindow.
См. также: TWindowsObject.Load.
Done (часто переопределяется)
-----------------------------------------------------------------
destructor Done; virtual;
Перед вызовом для уничтожения всего объекта деструктора
Done, наследуемого из TWindowsObject, уничтожает объект TScroller
в Scroller (при его наличии).
Create
-----------------------------------------------------------------
function Create: Boolean; virtual;
Если объект не был построен с помощью InitResource (в этом
случае экранный элемент уже существует), создает для оконного
объекта соответствующий экранный элемент. Если класс окна еще не
зарегистрирован, Create для регистрации вызывает Register. Затем
Create создает окно и вызывает метод SetupWindow, который вы мо-
жете определить для инициализации вновь созданного окна, обычно
путем создания дочерних окон и изображения графики или текста. В
случае успешного выполнения Create возвращает значение True. В
случае неуспешного выполнения возвращается False, и вызывается
Error.
Обычно функция Create никогда не вызывается непосредственно.
Create вызывается методом TApplication.MakeWindow, который выпол-
няет сначала проверку наличия памяти.
См. также: TWindowsObject.Register,
TApplication.MakeWindow, TWindowsObject.SetupWindow.
DefWndProc (никогда не переопределяется)
-----------------------------------------------------------------
procedure DefWndProc(var Msg: TMessage); virtual;
Вызывает используемую по умолчанию процедуру окна, выполня-
ющую обработку поступающих сообщений Windows. Результат этого вы-
зова сохраняется в поле Result записи сообщения Msg.
FocusChild
-----------------------------------------------------------------
procedure FocusChild;
Вызывается WMActivate и WMSysCommand для установки фокуса
ввода на дочернем окне с описателем FocusChildHandle.
См. также: TWindow.WMActive, TWindow.WMSysCommand.
GetID (переопределяется редко)
-----------------------------------------------------------------
function GetID: Integer; virtual;
Возвращает идентификатор окна (такой как идентификатор уп-
равляющего элемента).
GetWindowClass (часто переопределяется)
-----------------------------------------------------------------
procedure GetWindowClass(var AWndClass: TWndClass); virtual; protected
Заполняет структуру класса окна, задаваемую AWndClass, соот-
ветствующим TWindow используемыми по умолчанию атрибутами. Поле
стиля устанавливается в значение cs_HRedraw или cs_VRedraw. Пик-
тограмма устанавливается в общую пиктограмму, курсор принимает
форму в виде стрелки, а фоновый цвет становится равным фоновому
цвету системного окна. Имя регистрируемого класса можно получить
с помощью вызова GetClassName.
См. также: TWindowsObject.GetClassName,
TWindowObject.Register, TWindow.Create.
Paint (часто переопределяется)
-----------------------------------------------------------------
procedure Paint(PaintDC: HDC; var PaintInfo: TPaintStruct);
virtual;
Служит меткой-заполнителем для поpожденных типов, котоpые
опpеделяют метод Paint. Paint вызывается автоматически в ответ на
запpос от Windows для повтоpного отобpажения содеpжимого окна.
PaintDC следует использовать как контекст дисплея. Он всегда по-
лучается до вызова Paint и освобождается после Paint. Пеpеданная
стpуктуpа pаскpаски PaintInfo содеpжит инфоpмацию непосpедственно
о запpосе на отображение.
См. также: TWindow.WMPaint.
SetCaption
-----------------------------------------------------------------
procedure SetCaption(ATitle: PChar);
Уничтожает текст в поле Attr.Title окна, вызывая StrDispose,
а затем вызывает StrNew для выделения новой копии строки в ATitle
для Attr.Style. Для обновления заголовка окна вызывает функцию
API SetWindowText.
SetupWindow (часто переопределяется)
-----------------------------------------------------------------
procedure SetupWindow: virtual;
Устанавливает вновь созданное окно. Если окно является до-
черним окном MDI, то SetupWindow вызывает SetFocus для передачи
фокуса новому окну. Если окно имеет объект прокрутки, SetupWindow
вызывает для установки диапазона полос прокрутки SetBarRange.
См. также: TScroller.SetBarRange.
Store
-----------------------------------------------------------------
procedure Store(var S: TStream);
Сохраняет окно в потоке S, вызывая сначала
TWindowsObject.Store, а затем записывая и помещая дополнительные
поля (Attr и Scroller), введенные в TWindow.
См. также: TWindowsObject.Store.
UpdateFocusChild
-----------------------------------------------------------------
procedure UpdateFocusChild;
Устанавливает FocusChildHandle в описатель дочернего окна,
имеющее в данный момент фокус ввода.
См. также: TWindow.FocusChildHandle.
WMActivate (иногда переопределяется)
-----------------------------------------------------------------
procedure WMActivate(var Msg: TMessage) virtual
vm_First + vm_Activate;
Для окон, которые перехватывают для своих управляющих эле-
ментов сообщения от клавиатуры, реагирует на потерю и получение
окном фокуса путем сохранения описателя дочернего управляющего
элемента, который в данный момент имеет фокус в FocusChildHandle,
и восстанавливает фокус.
См. также: TWindowsObject.EnableKBDriver.
WMCreate
-----------------------------------------------------------------
procedure WMCreate(var Msg: TMessage); virtual
wm_First + wm_Create;
Отвечает на сообщение wm_Create вызовом SetupWindow, после
чего вызывает DefWntProc. Поскольку создание окна в ObjectWindows
выполняется иначе чем в Windows, сообщение wm_Create нужно перех-
ватывать и использовать для установки атрибутов окна.
См. также: TWindow.SetupWindow.
WMHScroll (иногда переопределяется)
-----------------------------------------------------------------
procedure WMHScroll(var Msg: TMessage); virtual
wm_First + wm_HScroll;
Для окон с пpокpуткой на события в гоpизонтальной полосе
пpокpутки окна отвечает вызовом методов HScroll и DefWndProc объ-
екта прокрутки HScroll.
См. также: TScroller.HScroll.
WMLButtonDown (иногда переопределяется)
-----------------------------------------------------------------
procedure WMLButtonDown(var Msg: TMessage); virtual
vmFirst + wm_LButtonDown;
Этот метод при автоматической прокрутки отвечает на нажатие
левой кнопки "мыши", перехватывая весь будущий ввод от "мыши",
пока левая кнопка "мыши" не будет освобождена. Если вы планируете
для обработки нажатий кнопок "мыши" переопределить данный метод,
но все равно собираетесь пользоваться автоматической прокруткой,
убедитесь, что этот метод вызывается из вашего метода
WMLButtonDown.
WMMDIActivate
-----------------------------------------------------------------
procedure TWindow.WMMDActivate(var Msg: TMessage); virtual
wm_First + wm_MDIActivate;
Вызывая WMActivate, управляется активизацией MDI Windows.
См. также: TWindow.WMActivate.
WMMove
-----------------------------------------------------------------
procedure WMMove(var Msg: TMessage); virtual
wm_First + wm_MDIActivate;
При получении сообщения wm_Move обновляет координаты Attr.X
и Attr.Y. Если окно имеет вид пиктограммы или минимизировано, то
это сообщение игнорируется.
WMPaint (переопределяется редко)
-----------------------------------------------------------------
procedure WMPaint(var Msg: TMessage); virtual
wm_First + wm_Paint;
Отвечает на сообщение Windows wm_Paint, вызывая метод Paint
оконного объекта. Если окно имеет полосу прокрутки, перед вызовом
Paint WMPaint вызывает BeginView, а после вызова - EndView.
См. также: TWindow.Paint, TScroller.EndView,
TScroller.BeginView.
WMSize (иногда переопределяется)
-----------------------------------------------------------------
procedure WMSize(var Msg: TMessage); virtual
wm_First + wm_Size;
Для окон с пpокpутками на события изменения pазмеpов окна
отвечает вызовом SetPageSize для установки нового pазмеpа окна.
См. также: TScroller.SetPageSize.
WMSysCommand
-----------------------------------------------------------------
procedure WMSysCommand TWindow.WMSysCommand(var Msg:
TMessage); virtual wm_First + wm_SysCommand;
Если окно обрабатывает ввод с клавиатуры, перед вызовом
DefWndProc для выполнения нормальной обработки проверяет поле
wParam на два значения. Если Msg.wParam равно sc_Mininize (это
означает, что окно будет сжато в пиктограмму), вызывает перед
сжатием в пиктограмму UpdateFocusChild. Если Msg.wParam равно
sc_Restore, WMSysCommand вызывает для восстановления фокуса ввода
перед восстановлением окна FocusChild.
См. также: TWindow.FocusChild, TWindow.UpdateFocusChild.
WMVScroll (иногда переопределяется)
-----------------------------------------------------------------
procedure WMVScroll(var Msg: TMessage); virtual
wm_First + wm_VScroll;
Для окон с объектами прокрутки отвечает на события верти-
кальной полосы прокрутки вызовом метода DefWndProc объекта
VScroll.
См. также: TScroll.DefWndProc.
Тип TWindowAttr модуль OWindows
-----------------------------------------------------------------
Описание:
TWindowAttr = record
Title: PChar;
Style: Longint;
ExStyle: Longint;
X, Y, W, H: Integer;
Param: Pointer;
case Integer of
0: (Menu: HMenu); { обработка меню окна или .
1: Id: Integer); { идентификатор управляющего
элемента }
end;
Назначение: В записях TWindowAtt определяет свои атрибуты
объекта TWindow.
См. также: TWindowAttr.
------------------------------------------------------------------------
TWindowPrintout модуль OPrinter
-----------------------------------------------------------------
TObject TPrintout
+------+ +-----------------+
+------| | Banding |
|-Init-| | DC |
|-Done-| | ForceAllBands |
| Free | | Size |
+------+ | Title |
+-----------------|
|-Init------------|
| Done |
| BeginDocument |
| BeginPrinting |
|-GetDialogInfo---|
| GetSelection |
| HasNextPage |
|-PrintPage-------|
| SetPrintParams |
+-----------------+
TWindowPrintout обеспечивает объект распечатки, упрощенный
для печати содержимого окна.
Поля
-----------------------------------------------------------------
Scale
Scale: Boolean;
Имеет значение True, если распечатка должна масштабировать
образ для заполнения страницы. По умолчанию TWindowPrintout.Init
устанавливает Scale в значение True.
Window
Window: PWindow;
Window указывает на распечатываемое окно.
Методы
-----------------------------------------------------------------
Ниже описываются методы объекта распечатки.
Init
-----------------------------------------------------------------
constructor Init(ATitle: PChar; AWindow: PWindow);
Строит объект распечатки окна, вызывая сначала конструктор
Init, наследуемый из TPrintout, передавая ATitle, а затем уста-
навливая Window в AWindow и устанавливая Scale в значение True.
См. также: TPrintout. Init.
GetDialogInfo
-----------------------------------------------------------------
function GetDialogInfo(var Pages: Integer): Boolean;
virtual;
Устанавливает Pages в 0 и возвращает False, так как окно ге-
нерирует только одну страницу распечатки. Это предотвращает вывод
диалога печати.
PrintPage
-----------------------------------------------------------------
procedure PrintPage(Page: Word; var Rect: TRect;
Flags: Word); virtual;
Масштабирует для окна контекст устройства, так что распечат-
ка будет иметь правильный вид, а затем для вывода образа окна в
контекст устройства вызывает метод Paint.
------------------------------------------------------------------------
TWindowsObject модуль OWindows
------------------------------------------------------------------
TObject TWindowsObject
+------+ +----------------------------------------+
+------| | ChildList Parent |
|-Init-| | Flags Status |
|-Done-| | HWindow TransferBuffer |
| Free | | Instance |
+------+ +----------------------------------------|
| Init GetChildren |
| Load GetClassName |
| Done GetClient |
| AddChild GetId |
| At GetSiblingPtr |
| Canclose GetWindowClass |
| ChildWithId IndexOf |
| CloseWindow IsFlagSet |
| CMExit Next |
| Create Previous |
| CreateChildren PutChildPtr |
| CreateMemoryDC PutChildren |
| DefChildProc PutSiblingPtr |
| DefCommandProc Register |
| DefNotificationProc RemoveChild |
| DefWndProc SetFlags |
| Destroy SetupWindow |
| Disable Show |
| DisableAutoCreate Store |
| DisableTransfer Transfer |
| DispatchScroll TransferData |
| Enable WMActivate |
| EnableAutoCreate WMClose |
| EnableKBHandler WMCommand |
| EnableTransfer WMDestroy |
| FirstThat WMNScroll |
| Focus WMNCDestroy |
| ForEach WMNQueryEndSession |
| GetChildPtr WMVScroll |
+----------------------------------------+
TWindowsObject определяет фундаментальное поведение всех ин-
терфейсных объектов, включая окна, диалоговые блоки и управляющие
элементы. TWindowsObject - это абстрактный объект, производный от
Object, и его методы полезны только для наследующих типов. Методы
TWindowsObject реализуют фундаментальное создание элементов экра-
на и действия по их уничтожению, поведение при регистрации класса
окна и механизм автоматического ответа на сообщения.
Поля
-----------------------------------------------------------------
ChildList (только чтение)
ChildList: PWindowsObject;
ChildList - это связанный список всех объектов дочерних окон
интерфейсного объекта, таких как всплывающие окна, диалоговые
блоки и управляющие элементы. ChildList всегда указывает на пос-
ледний добавленный объект.
Flags (чтение/запись)
Flags: Byte;
Flags - это байт данных, биты которого используются для за-
писи следующих атрибутов окна: обработки клавиатуры, автоматичес-
кого создания, передачи, статуса MDI и создания ресурса. Flags
содержит одну или более констант wb_ (которые описываются в дан-
ной главе).
См. также: TWindowsObject.SetFlags,
TWindowsObject.ISFlagSet.
HWindow (только чтение)
HWindow:; HWnd;
HWindow содержит описатель связанного с интерфейсным объек-
том интерфейсного элемента. Если HWindow содержит 0, то значение
является недопустимым описателем. HWindow устанавливается в опи-
сатель связанного интерфейсного элемента при его создании
(Create) и обнуляется при уничтожении интерфейсного элемента
(WMNCDestroy).
Parent (только чтение)
Parent: TPWindowsObject;
PWindowsObject указывает на интерфейсный объект, который
служит порождающим окном для данного интерфейсного объекта. Нап-
ример, выводимое в оконном объекте поле Parent объекта управляю-
щего элемента будет указывать на своего предка - оконный объект.
Status (чтение/запись)
Status: Integer;
Status используется, чтобы сообщить об ошибке в инициализа-
ции интерфейсного объекта. Ненулевое значение Status указывается,
что инициализация объекта не выполнена успешно, отрицательное
свидетельствует о неудаче. Производные от TWindowsObject объекты,
включая TWindow и TDialog, проверяют Status перед созданием соот-
ветствующих элементов. Используйте Status в коде наследующих объ-
ектных типов, чтобы отметить ошибку инициализации.
Возможные значения ошибки, определенные в TWindowsObject,
включают в себя em_InvalidWindow (недопустимое окно),
em_InvalidClient (недопустимый пользователь), em_InvalidChild
(недопустимое порожденное окно) и em_InvalidMainWindow (недопус-
тимое основное окно).
TransferBuffer (чтение/запись)
TransferBuffer: Pointer;
TransferBuffer указывает на буфер передачи, определенный
приложением, использующим механизм передачи. В противном случае
это nil.
Методы
-----------------------------------------------------------------
Ниже описываются методы, определенные в данном объекте.
Init (часто переопределяется)
-----------------------------------------------------------------
constructor Init(AParent: PWindowsObject);
Строит и инициализирует интерфейсный объект. Конструктор
наследующих типов должен вызывать TWindowsObject.Init. Вызывает
EnableAutoCreate, так что дочерние окна будут по умолчанию созда-
ваться и выводиться наряду с их порождающими окнами. Кроме того,
добавляет к списку дочерних окон объекта порождающего окна интер-
фейсный объект.
См. также: TWindowsObject.EnableAutoCreate,
TWindowsObject.AddChild.
Load
-----------------------------------------------------------------
constructor Load(var S: TStream);
Строит и загружает интерфейсный объект из потока S, считывая
Status, другие атрибуты и размер ChildList, а затем загружая
каждое дочернее окно.
Done (часто переопределяется)
-----------------------------------------------------------------
destructor Done; virtual;
Уничтожает интерфейсный объект, уничтожая сначала соответс-
твующий интерфейсный элемент (если он имеется), а затем вызывая
наследуемый из TObject деструктор Done. Уничтожает все свои до-
черние окна и удаляет себя из списка дочерних окон своего порож-
дающего окна. Деструкторы всех наследующих типов должны включать
в себя вызов TWindowsObject.Don.
AddChild
-----------------------------------------------------------------
procedure AddChild(AChild: PWindowsObject);
Добавляет Achild с списку дочерних окон.
At
-----------------------------------------------------------------
function At(I: Integer): PWindowsObject;
Возвращает указатель на I-ое дочернее окно в списке дочерних
окон объекта. Список дочерних окон циклический, так что если I
больше числа дочерних окон, то At выполняет переход к началу
списка.
CanClose (иногда переопределяется)
-----------------------------------------------------------------
function CanClose: Boolean; virtual
Для каждого дочернего окна вызывает метод CanClose и возвра-
щает False, если возвращает False какое-либо дочернее окно, ука-
зывая, что закрыть интерфейсный элемент нельзя (не OK). Если ме-
тоды CanClose всех дочерних окон возвращают True, то CanClose
также возвращает True.
ChildWithID (никогда не переопределяется)
-----------------------------------------------------------------
ChildWithid(Id: Integer): PWindowsObject; virtual;
Возвpащает указатель на окно с пеpеданным идентификатоpом в
списке дочеpних окон. Если дочеpнего окна с указанным идентитфи-
катором Id нет, ChildWithid возвpащает значение nil. Если Id рав-
но -1, то ChildWithID возвращает первый неуправляющий объект в
списке дочерних окон.
CloseWindow
-----------------------------------------------------------------
procedure CloseWindow;
Чтобы увидеть, готово ли окно к закрытию, вызывает CanClose.
Если метод CanClose возвращает значение True, CloseWindow уничто-
жает объект и уничтожает соответствующий оконный элемент.
См. также: TWindowObject.CanClose.
CMExit
-----------------------------------------------------------------
procedure CMExit(var Msg: TMessage); virtual
cm_First + cm_Exit;
Если CanCLose возвращает True, отвечает на командное сообще-
ние cm_Exit, прекращая выполнение приложения. Сообщение cm_Exit
обычно посылается основному окну приложения.
Create (никогда не переопределяется)
-----------------------------------------------------------------
function Create: Boolean; virtual;
Создает соответствующий экранный элемент интерфейсного объ-
екта. Это абстрактный метод, переопределяемый в наследующих ти-
пах.
CreateChildren
-----------------------------------------------------------------
function CreateChildren: Boolean;
Вызывает Create для всех дочерних окон. CreateWindow вызыва-
ется SetupWindow, так что вам не нужно обычно вызывать этот метод
непосредственно. CreateChildren требуется вызывать только после
GetChildren для получения визуальных элементов для дочерних окон-
ных объектов, загружаемых из потока.
См. также: TWindowsObject.GetChildren.
CreateDCMemory
function CreateDCMemory(var Msg: TMessage); virtual;
Создает контекст устройства памяти (DC), совместимый с кон-
текстом дисплея окна. Значения DC необходимы для поразрядного
отображения.
DefChildProc (иногда переопределяется)
-----------------------------------------------------------------
procedure DefChildProc(var Msg: TMessage); virtual
Выполняет стандаpтную обpаботку для поступающего сообщения,
базиpующегося на идентификатоpе дочеpнего окна, устанавливая по-
ле Result в Msg в 0 (это указывает, что сообщение обработано не
было).
DefCommandProc (иногда переопределяется)
-----------------------------------------------------------------
procedure DefCommandProc(var Msg: TMessage); virtual;
Выполняет стандаpтную обpаботку для поступающего сообщения,
базиpующегося на команде, устанавливая поле Result в Msg в 0 (это
указывает, что сообщение обработано не было).
DefNotificationProc (иногда переопределяется)
-----------------------------------------------------------------
procedure DefNotificationProc(var Msg: TMessage); virtual;
Выполняет стандаpтную обpаботку для поступающего уведомляю-
щего сообщения, устанавливая поле Result в Msg в 0 (это указыва-
ет, что сообщение обработано не было).
DefWndProc
-----------------------------------------------------------------
procedure DefWndProc(var Msg: TMessage); virtual;
Эта используемая по умолчанию оконная процедура не выполняет
никаких операций и обычно переопределяется. Она полагает, что по-
ле Result в Msg остается нулевым (это указывает, что сообщение не
обработано). TWindow переопределяет DefWndProc для вызова предус-
мотренных в Windows стандартной реакции на сообщения Windows.
См. также: TWindow.DefWndProc.
Destroy (никогда не переопределяется)
-----------------------------------------------------------------
procedure Destroy; virtual;
Вызывает уничтожение связанного элемента интеpфейсного объ-
екта, удаляя его с экрана, вызывая получение оконным объектом со-
общения wm_Destroy. Destroy вызывает также для любого созданного
дочернего окна метод EnableCreate. Это обеспечивает, что при пов-
торном создании объект будет выглядеть как в момент уничтожения.
См. также: TWindowsObject.WMDestroy,
TWindowsObject.EnableAutoCreate.
Disable
-----------------------------------------------------------------
procedure Disable;
Вызывая DisableWindow, запрещает связанный с интерфейсным
объектом экранный элемент. Запрещенный экранный элемент обычно
выводится серым и не реагирует в Windows на ввод с клавиатуры или
от "мыши". Все экранные элементы по умолчанию разрешены, но могут
запрещаться вызовом Disable.
См. также: TWindowsObject.Enable.
DisableAutoCreate
-----------------------------------------------------------------
procedure DisableAutoCreate;
Запpещает возможность, котоpая позволяет интеpфейсному объ-
екту, как дочеpнему окну, создаваться и отобpажаться наряду с его
порождающим окном. Вызывайте DisableAutoCreate для всплывающих
окон и управляющих элементов в том случае, если вы хотите, чтобы
они создавались и отобpажались позднее, чем их порождающие окна.
См. также: TWindowsObject.EnableAutoCreate.
DisableTransfer
-----------------------------------------------------------------
procedure DisableTransfer;
Запpещает для интеpфейсного класса механизм пеpедачи, ко-
тоpый позволяет осуществлять обмен инфоpмацией о состоянии с бу-
феpом пеpедачи.
DispatchScroll (никогда не переопределяется)
-----------------------------------------------------------------
procedure DispatchScroll(var Msg: TMessage); virtual;
Вызывается WMHScroll и WMVScroll для диспетчеризации сообще-
ний прокрутки окон соответствующих объектов.
См. также: TWindowsObejct.WMHScroll,
TWindowsObject.WMVScroll.
Enable
-----------------------------------------------------------------
procedure Enable;
Вызывая EnableWindow, разрешает связанный с интерфейсным
объектом экранный элемент. Реагировать на ввод с клавиатуры или
от "мыши" может только разрешенный экранный элемент (и, следова-
тельно, объект). Все экранные элементы по умолчанию разрешены,
поэтому вам нужно вызывать Enable только после запрещения элемен-
та.
См. также: TWindowsObject.Disable.
EnableAutoCreate
-----------------------------------------------------------------
procedure EnableAutoCreate;
Обеспечивает, чтобы интеpфейсный класс, как дочеpнее окно,
создавался и отобpажался наряду с его порождающим окном. Эта воз-
можность pазpешена, по умолчанию, для окон и управляющих элемен-
тов, но запpещена для диалоговых блоков. Вызывайте
EnableAutoCreate в том случае, если вы хотите, чтобы диалоговый
блок создавался и отобpажался вместе с его порождающими окнами.
См. также: TWindowsObject.DisableAutoCreate.
EnableKBHandler
-----------------------------------------------------------------
procedure EnableKBHandler;
Разpешает такую возможность окон и безpежимных диалогов, ко-
тоpая позволяет обеспечить интеpфейс с клавиатуpой для дочеpних
элементов упpавления, что позволяет пользователю пеpемещаться по
упpавляющим элементам с помощью клавиши табуляции. По умолчанию
эта возможность отключена.
См. также: TWindowsObject.WMActive,
TApplication.SetKBHandler.
EnableTransfer
-----------------------------------------------------------------
procedure EnableTransfer;
Разpешает для интеpфейсного объекта механизм пеpедачи, ко-
тоpый позволяет осуществлять обмен инфоpмацией о состоянии упpав-
ляющего элемента с буфеpом пеpедачи.
FirstThat
-----------------------------------------------------------------
function FirstThat(Test: Pointer): PWindowsObject;
Пpоходит итеративно по списку дочеpних окон и вызывает бу-
левскую функцию Test, пеpедавая поочередно в качестве аpгумента
каждое дочеpнее окно списка. Если при вызове Test возвращается
значение True, итерация останавливается, и FirstThat возвращает
указатель объект дочернего окна, который передавался в Test. В
противном случае FirstThat возвращает значение nil.
Напpимеp, вы можете написать метод GetFirstChecked, котоpый
использует FirstThat для получения указателя на первую кнопку с
независимой фиксацией в выбранном состоянии:
function MyWindow.GetFirstChecked: PWindowsObject;
function IsThisOneChecked(ABox: PWindowsObject); Boolean;
far;
begin
IsThisOneChecked := ABox^.GetCheck <> 0;
end;
begin
GetFirstChecked := FirstThat(@IsThisOneChecked);
end;
Focus
-----------------------------------------------------------------
procedure Focus;
Сообщает Windows о передаче фокуса ввода связанному с объек-
том экранному элементу.
ForEach
-----------------------------------------------------------------
procedure ForEach(Action: Pointer);
Пpоходит итеративно по списку дочеpних окон и для каждого
дочеpнего окна вызывает процедуру, указываемую Action, и пеpедает
ей поочередно в качестве аpгумента объект дочеpнего окна.
В следующем примере CheckAllBoxes вызывает ForEach, анализи-
руя все блоки проверки в списке порожденных окон:
function MyWindow.CheckAllBoxes;
procedure CheckTheBox(ABox: PWindowsObject); far;
begin
PCheckBox(ABox)^.Check;
end;
begin
ForEach(@CheckTheBox);
end;
GetChildPtr
-----------------------------------------------------------------
procedure GetChildPtr(var S: TStream; var P);
Загружает из потока S указатель на дочернее окно.
GetChildPtr следует вызывать для считывания указателя дочернего
окна, записанного в PutChildPtr из метода Store.
См. также: TWindowsObject.GetSiblingPtr,
TWindowsObject.PutSiblingPtr, TWindowsObject.PutChildPtr.
GetChildren
-----------------------------------------------------------------
procedure GetChildren(var S: TStream);
Считывает дочерние окна из указанного потока и помещает их в
список дочерних окон. GetChildren предполагает, что список дочер-
них окон ChildList первоначально пуст: указатели на дочерние ок-
на, добавленные перед вызовом GetChildren, будут потеряны.
См. также: TWindowsObject.CreateChildren,
TWindowsObject.PutChildren.
GetClassName (иногда переопределяется)
-----------------------------------------------------------------
function GetClassName: PChar; virtual
Возвращает используемое по умолчанию имя класса окна -
'TurboWindow'.
GetClient (никогда не переопределяется)
-----------------------------------------------------------------
function GetClient: PMDIClient; virtual;
Возвращает NULL для всех интеpфейсных объектов, не относя-
щихся к MDI, котоpые не имеют окон пользователя MDI. TMDIWindows
переопределяет этот метод для обеспечения своих окон клиента MDI.
GetId (переопределяется редко)
-----------------------------------------------------------------
function GetId: Integer; virtual;
В общем случае возвращает идентификатор окна. По умолчанию
GetId просто возвращает -1. GetId переопределяется потомками
TControl для возврата идентификатора управляющего элемента объек-
та. Все другие интерфейсные объекты не имеют идентификаторов уп-
равляющих элементов.
См. также: TControl.GetId.
GetSiblingPtr
-----------------------------------------------------------------
procedure GetSiblingPtr(var S: TStream; var P);
Загpужает указатель P "бpатского" окна из указанного потока.
"Бpатское" окно - это окно с тем же порождающим окном, что и дан-
ное, напpимеp, окно TGroupBox объекта TCheckBox является "бpатс-
ким" для TCheckBox. GetSiblingPtr должен использоваться только
внутри конструкторов Load для чтения значений указателей, которые
были записаны в PutSibling из метода Store. Значение, загpуженное
в P, не становится допустимым до тех поp, пока pодитель окна не
закончит свою опеpацию Load; таким образом, разыменование указа-
теля братского окна в конструкторе Load не дает корректного ре-
зультата.
См. также: TWindowsObject.PutSiblingPtr,
TWindowsObject.GetChildPtr, TWindowsObject.PutChildPtr.
GetWindowClass (иногда переопределяется)
-----------------------------------------------------------------
procedure GetWindowClass(var AWndClass: TWndClass); virtual;
Используется для подстановки в наследующих типах для опреде-
ления записи класса окна и возврата ее в AWndClass. Данная проце-
дура GetWndClass не выполняет никаких действий.
IndexOf
-----------------------------------------------------------------
function IndexOf(P: PWindowsObject): Integer;
Возвращает порядковую позицию P в списке дочерних окон объ-
екта. Первое дочернее окно в списке имеет номер 1. Если P отсутс-
твует в списке дочерних окон, возвращает 0.
IsFlagSet
-----------------------------------------------------------------
function IsFlagSet(Mask: Byte); Boolean;
Возвращает состояние битового флага, маска которого указыва-
ется в Mask. Если битовый флаг установлен, возвращает значение
True, в противном случае возвращается значение False.
См. также: TWindowObject.SetFlag.
Next
-----------------------------------------------------------------
function Next: PWindowsObject;
Возвpащает указатель на следующую окно в списке дочеpних
окон порождающего окна.
См. также: TWindowsObject.Previous.
Previous
-----------------------------------------------------------------
function Previous: PTWindowsObject;
Возвращает указатель на предыдущее окно в списке дочерних
окон порождающего окна.
См. также: TWindowsObject.Next.
PutChildPtr
-----------------------------------------------------------------
procedure PutChildPtr(var S: TStream;
var P: PTWindowsObject);
Записывает дочернее окно в указанный поток S. PutChildPtr
следует вызывать только в методе Store для записи значений указа-
телей, которые позднее можно считать с помощью GetChildPtr в
конструкторе Load.
См. также: TWindowsObject.GetSiblingPtr,
TWindowsObject.GetSiblingPtr, TWindowsObject.PutChildPtr.
PutChildren
-----------------------------------------------------------------
PutChildren(var S: TStream);
Выполняя итерацию по окнам списка дочерних окон, записывает
каждое дочернее окно в списке в указанный поток S. PutChildren
автоматически вызывается методом TWindowsObject.Store, но вы мо-
жете также вызывать этот метод непосредственно в тех случаях,
когда хотите сохранить контекст окна без сохранения самого окна.
См. также: TWindowsObject.GetChildren.
PutSiblingPtr
-----------------------------------------------------------------
PutSiblingPtr(var S: TStream; P: PWindowsObject);
Записывает указатель P "бpатского" окна в указанный поток.
"Бpатское" окно - это окно с тем же порождающим окном, что и дан-
ное. PutSiblingPtr должна использоваться только в методе Store
для записи значений указателей, которые позднее можно считать с
помощью GetSiblingPtr в конструкторе Load.
См. также: TWindowsObject.GetSiblingPtr,
TWindowsObject.GetChildPtr, TWindowsObject.PutChildPtr.
Register (никогда не переопределяется)
-----------------------------------------------------------------
function Register: Boolean; virtual;
Регистрирует оконный класс, определенный в методе объкта
GetWindowClass и именует его в методе GetClassName (если он еще
не зарегистрирован). Register возвращает значение True, если
класс успешно зарегистрирован.
См. также: TWindowsObject.GetClassName,
TWindowsObject.GetWindowClass.
RemoveChild
-----------------------------------------------------------------
procedure RemoveChild(AChild: PWindowsObject); protected
Удаляет из списка дочерних окон объекта заданное окно
AChild.
SetFlags
-----------------------------------------------------------------
procedure SetFlags(Mask: Byte; OnOff: Boolean);
Включает или выключает битовый флаг в зависимости от значе-
ния OnOff. Если OnOff имеет значение True, биты в Mask устанавли-
ваются. В пpотивном случае, биты сбpасываются. Mask может быть
любой константой wb_ или их комбинацией.
См. также: TWindowsObject.IsFlagSet.
SetupWindow (часто переопределяется)
-----------------------------------------------------------------
procedure SetupWindow; virtual;
Выполняет инициализацию вновь созданного интеpфейсного эле-
мента. Путем итерации списка дочерних окон пытается создать свя-
занный интерфейсный элемент для каждого объекта дочернего окна,
для которого разрешено автоматическое создание. (По умолчанию ав-
томатическое создание разрешается для окон и управляющих элемен-
тов и запрещается для диалогов.) Если дочернее окно создать нель-
зя, то Status устанавливается в значение em_InvalidChild. Затем
SetupWindow для копирования данных в новые дочерние окна вызывает
TransferData. Для выполнения специальной инициализации в произ-
водных объектах этот метод можно переопределить.
Show (никогда не переопределяется)
-----------------------------------------------------------------
procedure Show(ShowCmd: Integer); virtual;
Show отобpажает интеpфейсный элемент на экpане таким
обpазом, как указано значением, пеpеданным в ShowCmd. ShowCmd мо-
жет содеpжать следующие значения:
Значения параметров метода Show Таблица 21.28
+------------------------+----------------------------------+
| Значение | Описание |
+------------------------+----------------------------------|
| sw_Hide | Скрыто |
| sw_Show | В текущем положении и с текущим |
| | pазмеpом окна |
| sw_ShowMaximized | Максимизиpовано и активно |
| sw_ShowMinimized | Минимизиpовано и активно |
| sw_ShowNornal | Восстановлено и активно |
+------------------------+----------------------------------+
Store
-----------------------------------------------------------------
procedure Store(var S: TStream);
Записывает интерфейсный элемент в поток S, записывая Status,
другие атрибуты и размер ChildList. Затем записывается каждое до-
чернее окно.
Transfer (иногда переопределяется)
-----------------------------------------------------------------
procedure Transfer(DataPtr: Pointer; TransferFlag: Word):
Word; virtual;
Возвращает 0. Transfer переопределяется в потомках TControl
для передачи их данных о состоянии в буфер передачи и из него.
Возвращаемое из Transfer значение представляет собой число пере-
данных байт.
TransferData (иногда переопределяется)
-----------------------------------------------------------------
procedure TransferData(Direction: Word); virtual;
Если установкой TransferBuffer в запись передачи разрешен
механизм передачи, передает данные и в буфер или из него и участ-
вующих в pаботе дочеpних окон интеpфейсного объекта. Для каждого
участвующего дочернего окна TransferData вызывает метод Transfer,
передавая указатель на пересылаемые данные, а также направление,
заданное в параметре Direction (tf_SetData или tf_GetData).
См. также: TWindowsObject.EnableTransfer,
TWindowsObject.DisableTransfer, TWindowsObject.SetupWundow.
WMActivate (иногда переопределяется)
-----------------------------------------------------------------
procedure WMActivate(var Msg: TMessage); virtual
wm_Fist + wm_Activate;
В случае, если интерфейсный объект участвует в механизме об-
работки клавиатуры, отвечает на то, что интерфейсный объект ста-
новится активным окном, вызывая метод SertKeyBoardHandler объекта
приложения.
См. также: TApplication.SetKeyBoardHandler.
WMClose (иногда переопределяется)
-----------------------------------------------------------------
WMClose(var Msg: TMessage); virtual wm_First + wm_Close;
Отвечает на запpос о закpытии окна вызовом метода
CloseWindow данного объекта или метода CanClose объекта приложе-
ния в случае, если данный объект является основным окном приложе-
ния. Если CanClose возвращает True, данный интерфейсный элемент
уничтожается вызовом Destroy.
См. также: TWindowsObject.Destroy.
WMCommand (переопределяется редко)
-----------------------------------------------------------------
procedure WMCommand(var Msg: TMessage); virtual
wm_First + wm_Command;
Обеспечивает механизм для обpаботки сообщений, базиpующихся
на командах и идентификатоpах дочерних окон, и вызова соответс-
твующих методов реакции.
WMDestroy (переопределяется редко)
-----------------------------------------------------------------
procedure WMDestroy(var Msg: TMessage); virtual
wm_First + wm_Destroy;
Отвечает на приходящее сообщение wm_Destroy. Если данный
объект - это основное окно, отвечает на это уничтожение интер-
фейсных элементов и посылает для завершения прикладной программы
сообщение выхода wm_Quit (информируя, таким образом, Windows).
Если объект не является основным окном приложения, то вызывается
поведение окна, используемое по умолчанию.
См. также: TWindowsObject.DispatchScroll.
WMHScroll (переопределяется редко)
-----------------------------------------------------------------
procedure WMHScroll(var Msg: TMessage); virtual
wm_First + wm_Destroy;
Перехватывает поступающие сообщения горизонтальной прокрут-
ки, вызывая DispatchScroll.
См. также: TWindowsObject.DispatchScroll.
WMNCDestroy (никогда не переопределяется)
-----------------------------------------------------------------
procedure WMNCDestroy(var Msg: TMessage); virtual
wm_First + wm_QueryEndSession;
Отвечает на последнее сообщение интерфейсного элемента, по-
лученное перед его уничтожением, установкой HWindow в 0.
WMQueryEndSession
-----------------------------------------------------------------
procedure WMQueryEndSession(var Msg: TMessage); virtual
wm_First + wmQueryEndSession;
Если окно является основным окном приложения, то отвечает на
сообщение wm_QueryEndSession вызовом Application^.CanClose и, ес-
ли этот метод возвращает значение True, устанавливает Msg.Result
в 1. В противном случае Msg.Result устанавливается в 0.
WMVScroll (переопределяется редко)
-----------------------------------------------------------------
procedure WMVScroll(var Msg: TMessage); virtual
wm_First + wm_VScroll;
Перехватывает сообщения вертикального окна полосы прокрутки
и вызывает DispatchScroll.
См. также: TWindowsObject.DispatchScroll.
------------------------------------------------------------------------
Тип TWordArray модуль Objects
-----------------------------------------------------------------
Описание: TWordArray = array[01683] of Word;
Назначение: Тип массива с элементами размером в слово для
общего использования.
Константы voXXXX модуль Validate
-----------------------------------------------------------------
Назначение: Константы, начинающиеся с vo, представляют в
слове Options с побитовым отображением в объектах проверки допус-
тимости.
Значения: Биты Ooptions объекта проверки допустимости опре-
делены следующим образом:
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
|msb| | | | | | | | | | | | | | |lsb|
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+-------------+---------------+ +---+---+---+---+---+ | |
не определены | | |
voReserved = $00FC | |
| |
voTransfer = $0002 |
|
voFill = $0001
Рис. 21.1 Флаги параметров объекта проверки допустимости
(msb - старший бит, lsb - младший бит).
Флаги параметров объекта проверки допустимости Таблица 21.29
+-----------------+--------------+------------------------------+
| Константа | Значение | Смысл |
+-----------------+--------------+------------------------------|
| voFill | $0001 | Используется в средствах про-|
| | | верки допустимости по трафа-|
| | | рету для указания заполнения|
| | | набираемыми пользователем ли-|
| | | теральными символами. |
+-----------------+--------------+------------------------------|
| voTransfer | $0002 | Объект проверки допустимости|
| | | обрабатывает передачу данных|
| | | для строки ввода. В данное|
| | | время используется средством|
| | | проверки допустимости по диа-|
| | | пазону. |
+-----------------+--------------+------------------------------|
| voReserved | $00FC | Биты в данной маске, зарезер-|
| | | вированные Borland. |
+-----------------+--------------+------------------------------+
Константы vsXXXX модуль Validate
-----------------------------------------------------------------
Назначение: Объекты строки ввода используют vsOK для провер-
ки и правильного построения соответствующих объектов проверки до-
пустимости. При вызове с командным параметром или cmValid метод
Valid объекта строки ввода проверяет поле Status своего объекта
проверки допустимости. Если Status равно vsOK, то метод Valid
строки ввода возвращает значение True, указывая, что объект про-
верки допустимости можно использовать.
Единственное значение, определенное для поля Status и отлич-
ное от vsOK - это vsSyntax, используемое в TPXPictureValidator
для указания, что невозможно интерпретировать переданную строку
трафарета. Если вы создаете собственные объекты проверки допусти-
мости, то можете определить коды ошибок и возвратить их в поле
Status.
Значения: Модуль Validate определяет две константы, исполь-
зуемые в объектах проверки допустимости для сообщения о своем
состоянии.
Константы состояния объекта проверки допустимости Таблица 21.30
+-------------------+-------------+-----------------------------+
| Константа | Значение | Смысл |
+-------------------+-------------+-----------------------------|
| vsOK | 0 | Объект проверки допустимости|
| | | построен правильно. |
+-------------------+-------------+-----------------------------|
| vsSyntax | 1 | Ошибка синтаксиса в трафаре-|
| | | те шаблона объекта проверки.|
+-------------------+-------------+-----------------------------+
См. также: TValidator.Status.
Константы wb_XXXX модуль OWindows
-----------------------------------------------------------------
Назначение Поле Glags в TWindowsObject - это поле с побито-
вым отображением. К битам можно обращаться с помощью констант,
начинающихся с wb_.
Значения: Определены следующие значения констант:
Константы поля с
побитовым отображением TWindowsObject Таблица 21.31
+----------------------+---------+------------------------------+
| Константа |Значение | Смысл в случае установки |
+----------------------+---------+------------------------------|
| wb_KeyboardHandler | $01 | Окно обрабатывает события|
| | | клавиш как диалог. |
+----------------------+---------+------------------------------|
| wb_FromResource | $02 | Диалог был загружен из ресур-|
| | | са. |
+----------------------+---------+------------------------------|
| wb_AutoCreate | $04 | Окно создается при создании|
| | | его порождающего окна. |
+----------------------+---------+------------------------------|
| wb_MDIChild | $08 | Окно является дочерним окном|
| | | MDI. |
+----------------------+---------+------------------------------|
| wb_Transfer | $10 | Окно участвует в механизме|
| | | передачи Transfer. По умолча-|
| | | нию этот бит устанавливается|
| | | InitResource и очищается|
| | | Init. |
+----------------------+---------+------------------------------+
См. также: TWindowsObject.Flag.
Константы wm_XXXX модуль OWindows
-----------------------------------------------------------------
Назначение: ObjectWindows определяет несколько констант,
связанных со стандартными сообщениями Windows и определяющими за-
резервированные для Windows диапазоны сообщений.
Значения: Определены следующие константы:
Константы сообщений Windows Таблица 21.23
+---------------+-----------+--------------------------+
| Константа | Значение | Смысл |
+---------------+-----------+--------------------------|
| wm_First | $0000 | Начало сообщений Windows.|
| wm_Count | $8000 | Число сообщений Windows. |
+---------------+-----------+--------------------------+
------------------------------------------------------------------------
Тип WordRec модуль Objects
-----------------------------------------------------------------
Описание:
WordRec = record
Lo, Hi: Byte;
end;
Назначение: Рабочая запись, позволяющая обращаться к старшим
(Hi) и младшим (Lo) байтам слова.
См. также: LongRec.
Стили окна ws_XXXX модуль WinTypes
-----------------------------------------------------------------
Вы можете использовать эти константы для установки атрибутов
создания интерфейсных объектов путем комбинирования их в поле
Attrr.Style объекта перед созданием объектом его экранного эле-
мента. Вы можете также использовать их для задания стилей окна
при создании окон, диалоговых блоков и управляющих элементов с
CreateWindow или CreateWindowEx.
Стили окна Таблица 21.33
+------------------------+--------------------------------------+
| Константа | Смысл |
+------------------------+--------------------------------------|
| ws_Borded | Окно имеет рамку. Не допускается с|
| | ws_DlgFrame. |
+------------------------+--------------------------------------|
| ws_Caption | Окно имеет строку заголовка и рам-|
| | у. ws_Caption и ws_DlgFrame не могут|
| | использоваться вместе. ws_Caption|
| | предполагает включение ws_Border. |
+------------------------+--------------------------------------|
| ws_Child | Окно является дочерним окном.|
| | ws_Child и ws_Popup не могут исполь-|
| | зоваться вместе. |
+------------------------+--------------------------------------|
| ws_ChildWindow | То же, что ws_Child. |
+------------------------+--------------------------------------|
| ws_ClipChildren | Окно не включает области, перекрытые|
| | при отображении дочерними окнами. |
+------------------------+--------------------------------------|
| ws_ClipSibling | Окно при отображения обрезает все|
| | "братские" окна. Это означает, что|
| | отображаемые области в каждой области|
| | клиента дочерних окон одного порожда-|
| | ющего окна не будут перекрываться. |
+------------------------+--------------------------------------|
| ws_Disables | Окно первоначально запрещено. |
+------------------------+--------------------------------------|
| ws_DlgFrame | Окно имеет двойную рамку и не имеет|
| | заголовка. Не допускается с|
| | ws_Borded. |
+------------------------+--------------------------------------|
| ws_Group | Окно - это управляющий элемент, ко-|
| | торый является первым элементом в|
| | группе, и пользователь может получать|
| | к нему доступ с помощью клавиш стре-|
| | лок. Каждый последующий управляющий|
| | элемент, определенный без ed_Group,|
| | принадлежит к группе, начинающейся с|
| | последнего управляющего элемента с|
| | ws_Group. |
+------------------------+--------------------------------------|
| ws_HScroll | Окно имеет горизонтальную полосу|
| | прокрутки. |
+------------------------+--------------------------------------|
| ws_Iconic | То же, что ws_Mininize. |
+------------------------+--------------------------------------|
| ws_Maximize | Окно занимает весь экран (максимизи-|
| | ровано). |
+------------------------+--------------------------------------|
| ws_MaximizeBox | Окно имеет блок максимизации. |
+------------------------+--------------------------------------|
| ws_Overlapped | Окно является перекрывающимся окном.|
| | Перекрывающееся окно имеет заголовок|
| | и рамку. |
+------------------------+--------------------------------------|
| ws_OverlappedWindow | То же, что комбинация ws_Overlapped,|
| | ws_Caption, ws_SysMenu,|
| | ws_ThickFrame, ws_MinimizeBox и|
| | ws_MaximizeBox. |
+------------------------+--------------------------------------|
| ws_Popup | Окно является всплывающим окном. |
+------------------------+--------------------------------------|
| ws_PopupWindow | То же, что комбинация ws_Border,|
| | ws_ws_Popup и ws_SysMenu. Блок управ-|
| | ляющего меню выводится только если|
| | используется также стиль ws_CAption. |
+------------------------+--------------------------------------|
| ws_SizeBox | То же, что ws_ThickFrame. |
+------------------------+--------------------------------------|
| ws_SysMenu | Окно содержит в строке заголовка блок|
| | управляющего меню. Применяется только|
| | к окнам со строкой заголовка. |
+------------------------+--------------------------------------|
| ws_TabStop | Окно представляет собой управляющий|
| | элемент диалогового блока в списке|
| | управляющих элементов, по которым|
| | пользователь может циклически переме-|
| | щаться с помощью клавиши Tab. |
+------------------------+--------------------------------------|
| ws_ThickFrame | Окно имеет жирную рамку, которую|
| | пользователь может перемещать (букси-|
| | ровать) для изменения размера окна. |
+------------------------+--------------------------------------|
| ws_Tiled | То же, что ws_Overlapped. |
+------------------------+--------------------------------------|
| ws_TiledWindow | То же, что ws_OverlappedWindow. |
+------------------------+--------------------------------------|
| ws_Visible | Окно первоначально является видимым. |
+------------------------+--------------------------------------|
| ws_VScroll | Окно имеет вертикальную полосу про-|
| | рутки. |
+------------------------+--------------------------------------+
См. также: TWindow.Attr.
Назад | Содержание