Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
VPS в 21 локации

От 104 рублей в месяц

Безлимитный трафик. Защита от ДДоС.

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

Глава 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.   
                              Назад | Содержание
VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...