ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы.



 

Часть 4

                                   Оглавление
      ГЛАВА 14. КЛАССЫ РЕДАКТОРА......................................6
      TEditor.........................................................7
      Буфер TEditor...................................................7
      Выделение блока................................................10
      Опции..........................................................10
      Переопределение функциональных и управляющих клавиш............10
      Константы......................................................11
      Поля TEditor...................................................12
      TEditWindow
       EDITORS.H.....................................................31
      TFileEditor
       EDITORS.H.....................................................33
      TIndicator
       EDITORS.H.....................................................37
      TMemo
       EDITORS.H.....................................................39
      ГЛАВА 15. СТАНДАРТНЫЕ ДИАЛОГОВЫЕ ОКНА..........................41
      TChDirDialog
       STDDLG.H......................................................41
      TDirCollection
       STDDLG.H......................................................45
      TDirEntry
       STDDLG.H......................................................49
      TDirListBox
       STDDLG.H......................................................50
      TFileCollection
       STDDLG.H......................................................53
      TFileDialog
       STDDLG.H......................................................57
      TFileInfoPane
       STDDLG.H......................................................61
      TFileInputLine
       STDDLG.H......................................................63
      TFileList
       STDDLG.H......................................................65
      TSortedListBox
       STDDLG.H......................................................68
      ГЛАВА 16. ГЛОБАЛЬНЫЙ СПРАВОЧНИК................................70
      Функция sample
       SAMPLE.H......................................................70
      Константы  apXXXX
       APP.H.........................................................70
      Boolean enumeration
       TTYPES.H......................................................71
      BUILDER typedef
       TOBJSTRM.H....................................................71
      Константы bfXXXX
       DIALOGS.H.....................................................71
      ccAppFunc typedef
       TTYPES.H......................................................72
      ccIndex typedef
       TTYPES.H......................................................72
      константа ccNotFound
       TTYPES.H......................................................72
      ccTestFunc typedef
       TTYPES.H......................................................72
      Константы cmXXXX
       VIEWS.H.......................................................72
      Таблица 16.3 Коды стандартных команд...........................74
      Таблица 16.4 Стандартные команды панели диалога................76
      Таблица 16.5 Стандартные команды отображаемых объектов.........77
      функция cstrlen
       UTIL.H........................................................79
      функция ctrlToArrow
       UTIL.H........................................................79
      DEFAULT_SAFETY_POOL_SIZE
       BUFFERS.H.....................................................80
      константы dmXXXX
       VIEWS.H.......................................................80
      константа EOS
       TTYPES.H......................................................81
      константа eventQSize
       CONFIG.H......................................................81
      константы  evXXXX
       SYSTEM.H......................................................81
      Таблица 16.8 Флаги стандартных событий.........................82
      константа focusedEvents
       VIEWS.H.......................................................83
      функция genRefs
       GENINC.H......................................................83
      функция getAltChar
       UTIL.H........................................................83
      функция getAltCode
       UTIL.H........................................................83
      константы gfXXXX
       VIEWS.H.......................................................85
      константы hcXXXX
       VIEWS.H.......................................................86
      функция historyAdd
       UTIL.H........................................................86
      функция historyCount
       UTIL.H........................................................86
      функция historyStr
       UTIL.H........................................................87
      функция inputBox
       MSGBOX.H......................................................87
      функция inputBoxRect
       MSGBOX.H......................................................87
      константы kbXXXX
       TKEYS.H.......................................................87
      Таблица 16.12 Состояние клавиатуры и маски Shift...............88
      функция lowMemory
       UTIL.H........................................................91
      Переменная maxCollectionSize
       CONFIG.H......................................................91
      константа maxFindStrLen
       CONFIG.H......................................................91
      константа maxReplaceStrLen
       CONFIG.H......................................................91
      константа maxViewWidth
       VIEWS.H.......................................................91
      константа mbXXXX
       SYSTEM.H......................................................91
      Таблица 16.20 Константы кнопок мыши............................93
      функция message
       UTIL.H........................................................93
      функция messageBox
       MSGBOX.H......................................................93
      функция messageBoxRect
       MSGBOX.H......................................................94
      константы mfXXXX
       MSGBOX.H......................................................95
      функция moveBuf
       UTIL.H........................................................95
      функция moveChar
       UTIL.H........................................................95
      функция moveCStr
       UTIL.H........................................................96
      функция moveStr
       UTIL.H........................................................96
      функция newStr
       UTIL.H........................................................96
      константы ofXXXX
       VIEWS.H.......................................................97
      операция +
       MENUS.H.......................................................99
      операция delete
       NEW.CPP.......................................................99
      операция new
       NEW.CPP.......................................................99
      константа positionalEvents
       VIEWS.H......................................................100
      константы sbXXXX
       VIEWS.H......................................................101
      selectMode enumeration
       VIEWS.H......................................................102
      константы sfXXXX
       VIEWS.H......................................................103
      переменная specialChars
       TTYPES.H.....................................................105
      StreamableInit enumeration
       TTYPES.H.....................................................105
      TScrollChars typedef
       VIEWS.H......................................................106
      uchar typedef
       TTYPES.H.....................................................106
      ushort typedef
       TTYPES.H.....................................................106
      константы wfXXXX
       VIEWS.H......................................................106
      константa wnNoNumber
      константa wnNoNumber
       VIEWS.H......................................................107
      структура write_args
       VIEWS.H......................................................107
      константы wpXXXX
       VIEWS.H......................................................108
      ННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН






                           ГЛАВА 14. КЛАССЫ РЕДАКТОРА
      -----------------------------------------------------------------

           Класс TEditor,  наследник класса TView, является реализацией
      небольшого (64К), быстрого редактора для использования в приклад-
      ных программах,  разработанных  с использованием Turbo Vision.  В
      нем реализованы поддержка "мыши",  отмена действия (т.н. операция
      "undo"),  копирование  (перемещение)  в  "карман",  извлечение из
      "кармана" и копирование, автоотступ, режим замены текста, переоп-
      ределение клавиш,  поиск и замена.  Этот редактор может использо-
      ваться для редактирования файлов,  реализации многостроковых  по-
      лей,  для  ввода  и редактирования текста при диалогах и работе с
      формами. На приведенном ниже рисунке изображена иерархия классов.

      Примечание: TEditor - это потоковый класс,  наследующий  свойства
                  класса TStreamable через класс TView.

                               ЪДДДДДДДДДДДДДї
                               і    TView    і
                               АДДВДДДВДДДВДДЩ
                                  ^   ^   ^
                      ЪДДДДДДДДДДДЩ   і   АДДДДДДДДДДДДДДДДДДДДї
               ЪДДДДДДБДДДДДДї ЪДДДДДДБДДДДДДї ЪДДДДДДДДДДДДДї і
               і   TEditor   і і    TGroup   і і TWindowInit і і
               АДДДДДДВДДДДДДЩ АДДДДДДВДДДДДДЩ АДДДВДДДДДДДДДЩ і
                      ^               ^            ^(v)ЪДДДДДДДБДДДДДї
            ЪДДДДДДДДДБДДДДї          АДДДДДДДВДДДДЩ   і TIndicator  і
            і              і                  і        АДДДДДДДДДДДДДЩ
      ЪДДДДДБДДДДДї ЪДДДДДДБДДДДДДї    ЪДДДДДДБДДДДДДї
      і   TMemo   і і TFileEditor і    і   TWindow   і
      АДДДДДДДДДДДЩ АДДДДДДДДДДДДДЩ    АДДДДДДВДДДДДДЩ
                                              ^
      ЪДДДДДДДДДДДДДї                  ЪДДДДДДБДДДДДДї
      і  TMemoData  і                  і TEditWindow і
      АДДДДДДДДДДДДДЩ                  АДДДДДДДДДДДДДЩ
      ЪДДДДДДДДДДДДДДї
      іTFindDialogRecі                       v - виртуальный
      АДДДДДДДДДДДДДДЩ
      ЪДДДДДДДДДДДДДДДДДї
      іTReplaceDialogRecі
      АДДДДДДДДДДДДДДДДДЩ

                       Рисунок 14.1. Классы редактора.




                                    TEditor
      -----------------------------------------------------------------

           Класс TEditor (файл EDITORS.H) является базовым  классом для
      всех редакторов. В нем реализовано большинство функций редактора.
      При создании объекта TEditor, в динамически распределяемой облас-
      ти памяти выделяется буфер требуемого размера.  При инициализации
      этот буфер пуст.

           Применение класса TEditor для редактирования файлов показано
      в файле  TVEDIT.CPP,  для  редактирования  текстовых  полей (типа
      "memo") - в файле TVFORMS.CPP. Оба этих файла можно найти в ката-
      логе с демонстрационными примерами на установочных дискетах.




                                 Буфер TEditor

           В классе TEditor реализован редактор,  построенный на основе
      буфера. Текст  в нем сохраняется в виде двух кусков.  Любой текст
      до курсора сохраняется в начале буфера,  а  текст  после  курсора
      сохраняется в конце буфера.  Разрыв текста в дальнейшем будем на-
      зывать интервалом. Когда символ вставляется в редактор, он встав-
      ляется  в  область интервала.  Редактор реализует отмену действия
      предыдущей операции с помощью записи уничтожаемого текста  в  ин-
      тервал  и учета числа вставленных и уничтоженных символов.  Когда
      выполняется запрос на отмену действия,  редактор удаляет символы,
      которые  были  вставлены,  копирует  в начало интервала удаленные
      символы и помещает курсор после ранее удаленного текста.

           Для демонстрации работы буфера рассмотрим  диаграмму  буфера
      редактора после вставки символов "abcdefghijkxxxopqrstuvwxyz".



                                                          curPtr
                                                          іgapLenДДДД>ґ
      ЪДВДВДВДВДВДВДВДВДВДВДВДВДВДВДВДВДВДВДВДВДВДВДВДВДВДЕДВДВДВДВДВДґ
      іaіbіcіdіeіfіgіhіiіjіkіxіxіxіoіpіqіrіsіtіuіvіwіxіyіzі і і і і і і
      ГДБДБДБДБДБДБДБДБДБДБДБДБДБДБДБДБДБДБДБДБДБДБДБДБДБДЕДБДБДБДБДБДґ
      Г<ДДДДДДДДДДДДДДДДДbufLenДДДДДДДДДДДДДДДДДДДДДДДДДД>ґ           і
      Г<ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДbufSizeДДДДДДДДДДДДДДДДДДДДДД>ґ

                   Рис. 14.2. Буфер после вставки текста.

           Поле curPtr содержит позицию курсора, gapLen - это длина ин-
      тервала,  а в bufLen записано общее число символов в буфере. Раз-
      мер буфера сохраняется в bufSize и он всегда равен сумме gapLen и
      bufLen.  Если  курсор в дальнейшем переместится за символы "xxx",
      то буфер будет выглядеть следующим образом:

                                  curPtr
                                  іgapLenДДДДДґ
      ЪДВДВДВДВДВДВДВДВДВДВДВДВДВДЕДВДВДВДВДВДЕДВДВДВДВДВДВДВДВДВДВДВДґ
      іaіbіcіdіeіfіgіhіiіjіkіxіxіxі і і і і і іoіpіqіrіsіtіuіvіwіxіyіzі
      ГДБДБДБДБДБДБДБДБДБДБДБДБДБДЕДБДБДБДБДБДЕДБДБДБДБДБДБДБДБДБДБДБДґ
      Г<ДДДДДДДДДbufLenДДДДДДДДДД>ґ     +     Г<ДДДДДДДbufLenДДДДДДДД>ґ
      ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДbufSizeДДДДДДДДДДДДДДДДДДДДДДДДД>ґ

                Рис. 14.3. Буфер после перемещения курсора.

           Заметьте, что интервал сохраняется до курсора. Это позволяет
      быстро вставлять символы без передвижения текста. Если "xxx" уда-
      ляется с помощью клавиши "Backspace",  символы копируются в конец
      интервала,  а  курсор  перемещается  в  другую  сторону.  В  поле
      delCount содержится число удаляемых символов.

                            curPtr
                            іgapLenДДДДДДДДДД>ґ
      ЪДВДВДВДВДВДВДВДВДВДВДЕДВДВДВДВДВДВДВДВДЕДВДВДВДВДВДВДВДВДВДВДВДї
      іaіbіcіdіeіfіgіhіiіjіkі і і і і і іxіxіxіoіpіqіrіsіtіuіvіwіxіyіzі
      ГДБДБДБДБДБДБДБДБДБДБДЕДБДБДБДБДБДЕДБДБДЕДБДБДБДБДБДБДБДБДБДБДБДґ
      і                     і   delCountГ<ДДД>ґ                       і
      Г<ДДДДДДДДДbufLenДДДД>ґ       +         Г<ДДДДДДДbufLenДДДДДДДД>ґ
      Г<ДДДДДДДДДДДДДДДДДДДДДДДbufSizeДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД>ґ

               Рис. 14.4. Буфер после удаления символов "xxx".

           Когда символы вставляются,  то значение счетчика вставляемых
      символов insCount  увеличивается  на  число вставленных символов.
      Это позволяет узнать,  сколько символов надо  будет  удалить  при
      отмене действия.  Если теперь будут введены "lmn", то буфер будет
      выглядеть следующим образом:

                                  curPtr
                                  іgapLenДДДД>ґ
      ЪДВДВДВДВДВДВДВДВДВДВДВДВДВДЕДВДВДВДВДВДЕДВДВДВДВДВДВДВДВДВДВДВДї
      іaіbіcіdіeіfіgіhіiіjіkіlіmіnі і і іxіxіxіoіpіqіrіsіtіuіvіwіxіyіzі
      ГДБДБДБДБДБДБДБДБДБДБДЕДБДБДЕДБДБДЕДБДБДЕДБДБДБДБДБДБДБДБДБДБДБДґ
      і             insCountГ<ДДД>ґ     Г<ДДД>ґdelCount               і
      Г<ДДДДДДДДДbufLenДДДДДДДДДД>ґ     +     Г<ДДДДДДДbufLenДДДДДДДД>ґ
      ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДbufSizeДДДДДДДДДДДДДДДДДДДДДДДД>ґ

               Рис. 14.5. Буфер после вставки символов "lmn".

           Поле insCount содержит число вставленных символов.  Если те-
      перь потребуется отмена действия, то символы "lmn" будут удалены,
      а поверх них будут скопированы символы "xxx",  вернув таким обра-
      зом буфер к тому виду, который он имел до редактирования.



                                  curPtr
                                  іgapLenДДДД>ґ
      ЪДВДВДВДВДВДВДВДВДВДВДВДВДВДЕДВДВДВДВДВДЕДВДВДВДВДВДВДВДВДВДВДВДґ
      іaіbіcіdіeіfіgіhіiіjіkіxіxіxі і і і і і іoіpіqіrіsіtіuіvіwіxіyіzі
      ГДБДБДБДБДБДБДБДБДБДБДБДБДБДЕДБДБДБДБДБДЕДБДБДБДБДБДБДБДБДБДБДБДґ
      Г<ДДДДДДДДДbufLenДДДДДДДДДДДґ     +     Г<ДДДДДДДbufLenДДДДДДДД>ґ
      Г<ДДДДДДДДДДДДДДДДДДДДДДДДДДДДbufSizeДДДДДДДДДДДДДДДДДДДДДДДДДД>ґ

                  Рис. 14.6. Буфер после отмены действия.

           Если курсор  перемещается перед выполнением отмены действия,
      вся связанная с отменой действия информация в связи  с  тем,  что
      интервал переместится,  будет утрачена. Отмена действия будет вы-
      полняться лишь для операций, выполняемых между перемещениями кур-
      сора. После перемещения курсора все выполненные операции редакти-
      рования считаются "принятыми".  Имейте также в виду, что операция
      отмены  действия занимает определенное пространство в буфере, что
      может помешать пользователю вставить в него текст. Это пространс-
      тво можно восстановить перемещением курсора.




                                Выделение блока

           Выделение или  маркировка  блока  производится всегда до или
      после местоположения курсора.  Если текст в редакторе вставляется
      либо нажатием клавиши,  либо с помощью метода insertText,  то  он
      заменяет содержимое выделенного блока. Если никакой блок не выде-
      лен,  то текст вставляется произвольным образом.  Выделенный блок
      обозначается полями selStart и selEnd. Выделение блока выполняет-
      ся с помощью вызова метода setSelect,  который  также  перемещает
      курсор.




                                     Опции

           TEditor предусматривает ряд  опций,  значения  которых  хра-
      нятся  в полях типа Boolean. Поле canUndo указывает, что в редак-
      торе записывается информация для отмены действия. Поскольку отме-
      на  действия  (undo) временно отнимает пространство у вставляемых
      элементов  текста,  то  может  оказаться  полезным  заблокировать
      свойство отмены действия. Для "кармана" это выполняется автомати-
      чески.  Поле overwrite указывает,  находится ли редактор в режиме
      замены или вставки.  Поле autoIndent фиксирует, будет ли редактор
      при нажатии клавиши Enter смещать курсор вправо к столбцу первого
      непробельного символа предыдущей строки (автоотступ). Это особен-
      но удобно при использовании редактора для редактирования исходно-
      го текста программы.




              Переопределение функциональных и управляющих клавиш

           Клавиши привязаны ко многим сочетаниям символов,  используе-
      мым в интегрированной среде разработки  программ  фирмы  Borland.
      Исключение составляют  команды работы с блоками.  Поскольку класс
      TEditor не использует постоянные блоки,  то команды работы с бло-
      ками имитируются  при  помощи копирования информации в "карман" и
      из него. Например, команды Ctrl-K Ctrl-B выполняют операцию выде-
      ления текста.  Команды  Ctrl-K  Ctrl-K копирует текст в "карман".
      Ctrl-K Ctrl-C передает содержимое из  этого  буфера  в  редактор.
      Вместо использования  назначений  клавиш  Ctrl-K  выделение блока
      можно выполнить с помощью нажатия клавиши  регистра  (Shift)  при
      одновременном выполнении любой команды перемещения курсора.

           Данные переопределения  функциональных клавиш можно изменить
      с помощью замещения их методом convertEvent,  выполняющего преоб-
      разование заданного события, связанного с нажатием клавиши, в со-
      бытие, связанное с командой.




                                   Константы

           Константы, приводимые  в данном разделе,  определены в файле
      EDITORS.H.

           Максимальная длина  строки  maxLineLength  определена равной
      256.


      Таблица 14.1. Константы TEditor.
      -----------------------------------------------------------------
      Константа          Значение       Константа       Значение
      -----------------------------------------------------------------
      Командные константы:

      cmSave             = 80,          cmPageDown      = 509,
      cmSaveAs           = 81,          cmTextStart     = 510,
      cmFind             = 82,          cmTextEnd       = 511,
      cmReplace          = 83,          cmNewLine       = 512,
      cmSearchAgain      = 84;          cmBackSpace     = 513,
      cmCharLeft         = 500          cmDelChar       = 514,,
      cmCharRight        = 501          cmDelWord       = 515,,
      cmWordLeft         = 502          cmDelStart      = 516,,
      cmWordRight        = 503          cmDelEnd        = 517,,
      cmLineStart        = 504          cmDelLine       = 518,,
      cmLineEnd          = 505          cmInsMode       = 519,,
      cmLineUp           = 506          cmStartSelect   = 520,,
      cmLineDown         = 507          cmHideSelect    = 521,,
      cmPageUp           = 508          cmIndentMode    = 522,,
      cmUpdateTitle      = 523;

      Диалоговые константы TEditor:

      edOutOfMemory      = 0,           edSaveAs        = 6,
      edReadError        = 1,           edFind          = 7,
      edWriteError       = 2,           edSearchFailed  = 8,
      edCreateError      = 3,           edReplace       = 9,
      edSaveModify       = 4,           edReplacePrompt = 10,
      edSaveUntitled     = 5,

      Флаги редактора TEditor:

      efCaseSensitive    = 0x0001,      efReplaceAll    = 0x0008,
      efWholeWordsOnly   = 0x0002,      efDoReplace     = 0x0010,
      efPromptOnReplace  = 0x0004,      efBackupFiles   = 0x0100,

      Палитры редактора:

      cpIndicator        "\x02\x03"
      cpEditor           "\x06\x07"
      cpMemo             "\x1A\x1B"
      -----------------------------------------------------------------




                                  Поля TEditor

      autoIndent      Boolean autoIndent;

                      Имеет значение True,  если редактор  находится  в
                      режиме автоматического отступа вправо.

      buffer          char *buffer;

                      Указатель буфера,   используемого   для  хранения
                      текста.

      bufLen          ushort bufLen;

                      Содержит объем текста между началом буфера и  те-
                      кущим положением курсора. Об этом см. выше в ком-
                      ментарии к Рис. 14.2.

      bufSize         ushort bufSize;

                      Содержит размер буфера.

      canUndo         Boolean canUndo;

                      Принимает значение True,  если редактор поддержи-
                      вает операцию undo. В противном случае имеет зна-
                      чение False.

                      См. также: TEditor::undo.

      clipboard       static TEditor *clipboard;

                      Указатель на "кармана".  Таким буфером может быть
                      любой  класс TEditor.  Его следует лишь присвоить
                      данной переменной.  "Карман" не должен  поддержи-
                      вать  операцию  отмены  действия  (т.к.  его поле
                      canUndo должно иметь значение False).

      curPos          TPoint curPos;

                      Содержит столбец и строку местонахождения курсора
                      в файле.

      curPtr          ushort curPtr;

                      Содержит смещение курсора.

      delCount        ushort delCount;

                      Обозначает число символов в конце интервала,  ко-
                      торые были удалены из  текста:  используется  для
                      реализации операции undo.

      delte           TPoint deltа;

                      Содержит верхнюю  строку  и самый левый столбец в
                      отображаемом объекте.

      drawLine        int drawLine;

                      Содержит местоположение на экране столбца,  в ко-
                      тором подчеркнуты вставленные символы. Предназна-
                      чен для внутреннего использования методом draw.

      drawPtr         ushort drawPtr;

                      Содержит смещение буфера, соответствующее текуще-
                      му положению курсора.  Предназначено для внутрен-
                      него использования методом draw.

      editorDialog    static TEditorDialog editorDialog;

                      Тип данных TEditorDialog служит указателем  функ-
                      ции, возвращающей  ushort  и  имеющей  один цело-
                      численный аргумент int и переменное число  допол-
                      нительных аргументов.  Он  определяется  в  файле
                      EDITORS.H следующим образом:

                         typedef ushort(*TEditorDialog)(int, ...);

                      Поле editorDialog является указателем на функцию,
                      используемую  объектами,  а  TEditor  служит  для
                      изображения  различных панелей диалога. Поскольку
                      панели диалога в значительной степени  зависят от
                      типа прикладной программы,  объект TEditor не вы-
                      дает непосредственно изображение собственных  па-
                      нелей диалога.  Он  управляет ими с помощью этого
                      указателя функции.  Пример  функции  editorDialog
                      приводится в файле TVEDIT.CPP.

                      Мнемоника имен различных диалоговых значений, пе-
                      редаваемых в  первом  аргументе int,  для знающих
                      английский язык очевидна и  не  требует  дополни-
                      тельных объяснений.

                         edOutOfMemory        edSaveAs
                         edReadError          edFind
                         edWriteError         edSearchFailed
                         edCreateError        edReplace
                         edSaveModify         edReplacePrompt
                         edSaveUntitled

                      Используемое по     умолчанию    значение    поля
                      editorDialog в defEditorDialog  возвращает просто
                      cmCancel.

      editorFlags     static ushort editorFlags;

                      Поле editorFlags  содержит  различные флаги,  ис-
                      пользуемые в редакторе:

                         efCaseSensitive     Является значением по умо-
                                             лчанию при поиске с разли-
                                             чием регистра букв.

                         efWholeWordsOnly    Является значением по умо-
                                             лчанию при  поиске  только
                                             полных слов.

                         efPromptOnReplace   Подсказка при замене.

                         efReplaceAll        Замена  для  всех  случаев
                                             появления.

                         efDoReplace         Выполнение замены.

                         efBackupFiles       Создание файлов с расшире-
                                             нием .BAK  для сохраненных
                                             значений.

                      Значением данного элемента по умолчанию является:
                      efBackupFiles і efPromptOnReplace.

      findStr         static char findStr[80];

                      Содержит значение последней строки,  использовав-
                      шееся для операции поиска.

                      См. также: TEditor::doSearchReplace.

      gapLen          ushort gapLen;

                      Содержит размер "интервала" между текстом, распо-
                      ложенным от курсора и после курсора. Пояснение по
                      этому полю см. в комментарии к Рис. 14.2.

      hScrollBar      TScrollBar *hScrollBar;

                      Является указателем горизонтальной  полосы  прок-
                      рутки; равно 0,  если строка прокрутки не сущест-
                      вует.

      indicator       TIndicator *indicator;

                      Является указателем индикатора; равно 0, если ин-
                      дикатор не существует.

      insCount        ushort insCount;

                      Обозначает число символов, которые были вставлены
                      в текст с момента последнего перемещения курсора.
                      Используется для реализации операции отмены дейс-
                      твия.

      isValid         Boolean isValid;

                      Принимает значение True, если отображаемый объект
                      корректен. Используется функцией valid.

                      См. также: TEditor::valid.

      keyState        int keyState;

                      Обозначает, что была нажата специальная  клавиша,
                      такая как     Ctrl-K.     Используется    методом
                      handleEvent для отслеживания "двойных" клавиш уп-
                      равления, таких как Ctrl-K-H и Ctrl-K-B.

      limit           TPoint limit;

                      Содержит максимальное число изображаемых столбцов
                      и число строк в файле.  Сохраняет предельные зна-
                      чения строк прокрутки.

      lockCount       uchar lockCount;

                      Содержит семафор блокировки счетчика, который ак-
                      тивизируется в момент  перерисовки  отображаемого
                      объекта. Приращение  lockCount  выполняется с по-
                      мощью функции lock,  а его уменьшение - с помощью
                      функции unlock.

                      См. также: TGroup::lock, TGroup::unlock, TGroup::
                      lockFlag.

      modified        Boolean modified;

                      Принимает значение True, если буфер был модифици-
                      рован.

      overwrite       Boolean overwrite;

                      Принимает значение True, если редактор работает в
                      режиме замены текста. В противном случае редактор
                      будет находиться в режиме вставки.

      replaceStr      static char replaceStr[80];

                      Хранит значение последней строки операции замены.

                      См. также: TEditor::doSearchReplace.

      selecting       Boolean selecting;

                      Принимает значение True, если редактор работает в
                      режиме выделения (т.е.  если была нажата  клавиша
                      Ctrl-K Ctrl-B).

      selEnd          ushort selEnd;

                      Содержит смещение конца текста, выделенного с по-
                      мощью клавиши Ctrl-K Ctrl-K.  См.  об этом выше в
                      разделе  о переопределении функциональных клавиш.

      selStart        ushort selStart;

                      Содержит смещение  начала  текста,  выделенного с
                      помощью клавиши Ctrl-K Ctrl-K.  См.  об этом  там
                      же.

      updateFlags     uchar updateFlags;

                      Представляет собой   набор  флагов,  обозначающих
                      состояние редактора.  Функция  doUpdate  и другие
                      функции просматривают эти  флаги,  чтобы  опреде-
                      лить, следует ли перерисовывать отображаемый объ-
                      ект.

      vScrollBar      TScrollBar *vScrollBar;

                      Служит указателем на вертикальную строку прокрут-
                      ки; равно 0, если строка прокрутки отсутствует.


                                   Методы

      constuctor      TEditor( const TRect& bounds, TScrollBar
                               *aHScrollBar, TScrollBar *aVScrollBar,
                               TIndicator *anIndicator, ushort
                               aBufSize);

                      Вызывает метод TView(bounds), создавая отображае-
                      мый объект    с    заданными    границами.   Поля
                      hScrollBar, vScrollBar, indicator и BufSize уста-
                      навливаются  по заданным аргументам.  Если вам не
                      требуются эти объекты,  строка прокрутки и  аргу-
                      менты  признаков  можно  установить в значение 0.
                      Следующие значения устанавливаются  по умолчанию:

                         canUndo      True
                         selecting    False
                         overwrite    False
                         autoIndent   False
                         lockCount    0
                         keyState     0
                         growMode     gfGrowHiX і gfGrowHiY
                         options      ofSelectable
                         eventMask    evMouseDown і evKeyDown і
                                      evCommand і evBroadcast

                      Выполняется выделение буфера и он очищается. Если
                      обнаружится нехватка памяти,  то с помощью метода
                      editorDialog выдается  изображение панели диалога
                      edOutOfMemory,  а поле isValid устанавливается  в
                      значение False. В противном случае isValid прини-
                      мает значение True. Поля, связанные с буфером ре-
                      дактирования, инициализируются очевидным образом:
                      bufLen устанавливается в значение 0,  gapLen - на
                      bufSize,  selStart  -  в 0,  modified - в False и
                      т.д.

                      См. также:  TView::Tview,  TEditor::editorDialog,
                      класс TScrollBar.

      destructor      virtual ~TEditor();

                      Уничтожает редактор и удаляет буфер.

      bufChar         char bufChar( ushort p);

                      Возвращает p-й символ файла,  внесенный в  интер-
                      вал.

      bufPtr          ushort bufPtr( ushort p);

                      Возвращает смещение в буфере buffer  p-го символа
                      файла, внесенного в интервал.

      build           static TStreamable *build();

                      Вызывается для создания  объекта  в  определенных
                      ситуациях, связанных с чтением из потоков.

                      См. также: TStreamableClass, ipstream::readData.

      changeBounds    virtual void changeBounds( const TRect& bounds );

                      Изменяет границы отображаемых объектов,  настраи-
                      вая значение  delta  и обновляя при необходимости
                      изображения строк прокрутки и отображаемых объек-
                      тов.  Переопределяется, чтобы обеспечить сохране-
                      ние положения файла внутри  отображаемого объекта
                      при изменении размеров владельца.

      charPos         int charPos( ushort p, ushort target );

                      Вычисляет и возвращает фактическую позицию курсо-
                      ра, проверяя символы в буфере между  полями  p  и
                      target. Все встречающиеся коды табуляции считают-
                      ся пробелами (в зависимости от шага табуляции).

      charPtr         ushort charPtr( ushort p, ushort target );

                      Функция, обратная функции  charPtr.  Вычисляет  и
                      возвращает местоположение в буфере, соответствую-
                      щее местоположению курсора.

      checkScrollBar  void checkScrollBar( const TEvent& event,
                                           TScrollBar *p, int& d);

                      Вызывается подпрограммой handleEvent в  ответ  на
                      переданное событие cmScrollBarChanged. Если теку-
                      щее значение  строки  прокрутки отлично от d,  то
                      строка прокрутки обновляется.

      clipCopy        Boolean clipCopy();

                      Возвращает значение False,  если данный  редактор
                      не имеет активного "кармана".  В противном случае
                      копирует выделенный  текст  из  редактора в "кар-
                      ман" с помощью следующего выражения:

                         clipboard->insertFrom( this );

                      Выделение текста отменяется  (подсветка  удаляет-
                      ся),  а отображаемый объект обновляется.  При ус-
                      пешном выполнении возвращается значение True.

                      См. также: TEditor::insertFrom.

      clipCut         void clipCut();

                      Действует подобно методу clipCopy,  но выделенный
                      текст после копирования в "карман" удаляется.

                      См. также:      TEditor::clipCopy,      TEditor::
                      insertFrom.

      clipPaste       void clipPaste();

                      Метод, обратный методу clipCopy: содержимое "кар-
                      мана" (если таковое имеется) копируется в текущую
                      позицию курсора, используя:

                         insertFrom( clipboard );

                      См. также:  TEditor::clipCopy,   TEditor::insert-
                      From.

      convertEvent    virtual void convertEvent( TEvent& ev );

                      Используется методом handleEvent  для обеспечения
                      основных операций редактирования путем преобразо-
                      вания различных событий, связанных с клавишами, в
                      события,  связанные с командами.  Вы можете изме-
                      нить или расширить эти определения функциональных
                      клавиш,  заданные по умолчанию, с помощью переоп-
                      ределения метода convertEvent. См. об этом выше в
                      разделе  о переопределении функциональных клавиш.

                      См. также: TEditor::handleEvent.

      cursorVisible   Boolean cursorVisible();

                      Принимает значение  True,  если   курсор   (точка
                      вставки)  является  видимым  внутри отображаемого
                      объекта.

      deleteRange     void deleteRange( ushort startPtr, ushort endPtr,
                                        Boolean delSelect);

                      Если поле delSelect имеет значение True и сущест-
                      вует текущий выделенный блок,  то этот выделенный
                      блок удаляется. В противном случае диапазон между
                      startPtr и endPtr выделяется и удаляется.

                      См. также: TEditor::deleteSelect.

      deleteSelect    void deleteSelect();

                      Удаляет выделенный блок, если таковой существует.
                      Например, после   успешного   выполнения   метода
                      clipCopy выделенный блок удаляется.

                      См. также: TEditor::deleteRange.

      doneBuffer      virtual void doneBuffer();

                      Удаляет буфер.

      doSearchReplace void doSearchReplace();

                      Может использоваться  как в операциях поиска, так
                      и в операциях  поиска/замены,  в  зависимости  от
                      состояния поля editorFlags,  ввода пользователя и
                      панели диалога. Если флаг edDoReplace не установ-
                      лен,  то метод doSearchReplace действует в режиме
                      простого поиска findStr без выполнения  замены. В
                      противном  случае данный метод стремится заменить
                      поля findStr полями replaceStr.  Во всех случаях,
                      если искомая строка не обнаружена, активизируется
                      editorDialog(     doSearchFailed     ).      Если
                      ofPromptOnReplace   устанавливается   в  значение
                      editorFlags, то   появляется    панель    диалога
                      edReplacePrompt. Замена в этом случае будет опре-
                      деляться реакцией пользователя.  Если установлено
                      поле efRelaceAll, то выполняется замена всех сов-
                      падающих строк без подсказки до  обнаружения  ко-
                      манды cmCancel.

                      См. также: TEditor::findStr, TEditor::replaceStr,
                      TEditor::editorDialog,  TEditor::find,  TEditor::
                      replace, TEditor::editorFlags.

      doUpdate        void doUpdate();

                      Если поле updateFlags равно 0,  то ничего не про-
                      исходит.  В противном случае  вид  и  его  строки
                      прокрутки  модифицируются и отображаются заново в
                      зависимости от состояния бит updateFlags.  Напри-
                      мер, если установлен флаг ufView, то отображаемый
                      объект   перерисовывается   с   помощью    метода
                      drawView.  Если  отображаемый  объект находится в
                      состоянии sfActive,  то команда модифицируется  с
                      помощью функции updateCommands.  После выполнения
                      этих модификаций поле updateFlags принимает  зна-
                      чение 0.

      draw            virtual void draw();

                      Переопределяет TView::draw для изображения редак-
                      тора.

      drawLines       void drawLines( int y, int count, ushort
                                      linePtr );

                      Отображает count копий строки linePtr,  начиная с
                      позиции строки y.

      find            void find();

                      Выполняет поиск существующего  поля  findStr  или
                      новых строк,  указанных пользователем. Метод find
                      выводит подсказку  редактора  для  ввода  искомой
                      строки  или  принятия  к  обработке  существующей
                      строки findStr.  Если вводится новая строка поис-
                      ка, то  она  заменит  предыдущую  строку  findStr
                      (если пользователь ее не отменит).  Вначале метод
                      find создает объект TFindDialogRec,  определяемый
                      следующим образом:

                         struct TFindDialogRec
                         {
                           TFindDialogRec( const char *str, ushort
                                           flgs )
                           {
                             strcpy( find, str );
                             options = flgs;
                           }
                           char find[80];
                           ushort options;
                         };

                      Выполняется вызов конструктора  со  строкой  str,
                      установленным в текущих полях findStr и flgs, ус-
                      тановленных в текущее  поле  editorFlags.  Диалог
                      редактора  edFind  затем  вызывает  изменение или
                      принятие строки findStr.  Наконец, для выполнения
                      простой  операции  поиска без замены (efDoReplace
                      выключено), вызывается метод doSearchReplace.

                      См. также: TEditor::findStr, TEditor::replaceStr,
                      TEditor::doSearchReplace,  TEditor::editorDialog,
                      TEditor::replace, TEditor::editorFlags.

      formatLine      void formatLine(void *buff, ushort linePtr, int
                                      x, ushort color );

                      Форматирует строку в поле linePtr в заданном цве-
                      те (color) и заносит результат в  буфер (buffer).
                      Используется функцией drawLines.

      getMousePtr     ushort getMousePtr( TPoint m);

                      Возвращает указатель  на символы в буфере,  соот-
                      ветствующие точке m на экране.

                      См. также: TEditor::charPtr.

      getPalette      virtual TPalette& getPalette() const;

                      Возвращает заданную по умолчанию палитру  TEditor
                      - cpEditor, определяемую как "\x06\x07\". Если вы
                      хотите изменить палитру редактора, ее следует пе-
                      реопределить.

      handleEvent     virtual void handleEvent( TEvent& ev );

                      Этот метод обеспечивает для  редактора  обработку
                      событий.  Если вы хотите расширить обрабатываемый
                      редактором набор команд,  его следует переопреде-
                      лить. Обработчик, заданный по умолчанию, вызывает
                      метод TView::handleEvent(ev), затем с помощью вы-
                      зова convertEvent преобразует все соответствующие
                      события, связанные с нажатием клавиши, в события,
                      связанные с командами.

      hasSelection    Boolean hasSelection();

                      Возвращает значение True, если было выполнено вы-
                      деление, т.е.  если  поле  selStart не равно полю
                      selEnd. Если эти два поля равны,  то выделения не
                      существует, и возвращается значение False.

                      См. также: TEditor::setSelect.

      hideSelect      void hideSelect();

                      Устанавливает selecting в значение False и с  по-
                      мощью метода setSelect( curPtr,  CurPtr,  false )
                      отменяет текущее выделение.

                      См. также:      TEditor::setSelect,     TEditor::
                      selecting.

      initBuffer      virtual void initBuffer();

                      Выделяет буфер размера  bufSize  и  устанавливает
                      на нем buffer.

      insertBuffer    Boolean insertBuffer( char *p, ushort offset,
                                            ushort length, Boolean
                                            allowUndo, Boolean
                                            selectText);

                      Этот метод вставки текста самого  нижнего уровня.
                      Он выполняет вставку length байт текста из масси-
                      ва p (начиная с p[offset]) в буфер (начиная с по-
                      ля  curPtr).  Если  поле allowUndo имеет значение
                      True, то метод insertBuffer выполняет запись дан-
                      ных,  восстанавливаемых во время отмены действия.
                      Если поле selectText установлено в значение True,
                      то будет выполнено выделение вставленного текста.
                      Метод insertBuffer в случае  успешного выполнения
                      операции возвращает значение True.  В случае неу-
                      дачного выполнения активизируется панель диалога,
                      и возвращается значение False. Метод insertBuffer
                      используется методами insertFrom и insertText. Их
                      непосредственный вызов выполняется редко.

                      См. также:     TEditor::insertFrom,     TEditor::
                      insertText.

      insertFrom      virtual Boolean insertFrom( TEditor *editor );

                      Выполняет вставку  текущего  выделенного блока из
                      editor в текущий редактор.  Этот метод  реализует
                      функции clipCut, clipCopy и clipPaste. Реализация
                      позволит  вам   понять   функции   insertFrom   и
                      insertBuffer:

                         Boolean TEditor::insertFrom( TEditor *editor )
                         {
                            return insertBuffer( editor->buffer, editor
                                                 ->bufPtr(editor->sel-
                                                 Start), editor->selEnd
                                                 - editor->selStart,
                                                 canUndo, isClipboard()
                                                 );
                         }

                      Имейте в виду,  что аргумент allowUndo установлен
                      в значение поля canUndo.  Аргумент selectText бу-
                      дет иметь значение True, если для этого редактора
                      имеется активный "карман".

                      См. также:   TEditor::insertBuffer,  TEditor::is-
                      Clipboard.

      insertText      Boolean insertText( void *text, ushort length,
                                          Boolean selectText );

                      Копирует length  байт  из заданного текста text в
                      буфер данного объекта. Если selectText имеет зна-
                      чение True,  то  будет выполнено выделение встав-
                      ленного текста.  Данная функция является упрощен-
                      ным вариантом функции insertBuffer.

                      См. также: TEditor::insertBuffer.

      isClipboard     Boolean isClipboard();

                      Возвращает значение True, если данный буфер имеет
                      прикрепленный "карман".  В противном случае возв-
                      ращается значение False.

                      См. также: TEditor::clipboard.

      lineEnd         ushort lineEnd( ushort p);

                      Возвращает указатель  буфера   (смещение)   конца
                      строки, содержащий заданный указатель p.

                      См. также: TEditor::lineStart.

      lineMove        ushort lineMove( ushort p, int count);

                      Перемещает строку,  содержащую  указатель (смеще-
                      ние) p вверх или вниз на число строк count (в за-
                      висимости от знака count).

                      См. также: TEditor::prewLine, TEditor::nextLine.

      lineStart       ushort lineStart( ushort p);

                      Возвращает указатель   буфера  (смещение)  начала
                      строки, содержащий заданный указатель p.

                      См. также: TEditor::lineEnd.

      lock            void lock();

                      Выполняет увеличение семафора  lockCount  (инкре-
                      мент).

                      См. также: TEditor::lockCount, TEditor::unlock.

      newLine         void newLine();

                      Вставляет новую  строку  (операция возврат карет-
                      ки/перевод строки) в текущее местоположение  ука-
                      зателя. Если   установлен    режим    автоотступа
                      (autoIndent), то  соответствующие символы табуля-
                      ции,  если это необходимо,  вставляются в  начало
                      новой строки.

                      См. также: TEditor::autoIndent.

      nextChar        ushort nextChar( ushort p );

                      Возвращает смещение буфера символа, следующего за
                      символом, находящимся на заданном смещении p.

      nextLine        ushort nextLine( ushort p);

                      Возвращает смещение в буфере начала строки,  сле-
                      дующей за строкой,  содержащей заданное  смещение
                      p.

      nextWord        ushort nextWord( ushort p);

                      Возвращает смещение в буфере  для  начала  слова,
                      следующего за словом,  содержащим заданное смеще-
                      ние p.

      prevChar        ushort prevChar( ushort p);

                      Возвращает смещение в буфере символа, предшеству-
                      ющего символу с заданным смещением p.

      prevLine        ushort prevLine( ushort );

                      Возвращает смещение в буфере начала строки, пред-
                      шествующей строке,  содержащей заданное  смещение
                      p.

      prevWord        ushort prevWord( ushort );

                      Возвращает смещение в буфере, соответствующее на-
                      чалу слова,  предшествующему слову,  на котором в
                      данный момент находится курсор.

      read            virtual void *read( ipstream& is );

                      Считывает редактируемый объект из входного потока
                      is.

                      См. также: TStreamableClass, ipstream.

      replace         void replace();

                      Заменяет существующую  строку  findStr (или новую
                      строку поиска,  задаваемую пользователем) на  су-
                      ществующую строку  replaceStr  (или  новую строку
                      замены, задаваемую    пользователем).     Функция
                      replace выводит панель диалога редактора,  запра-
                      шивающего ввод обеих строк или принятию существу-
                      ющих строк findStr и  replaceStr.  Если  вводится
                      новая строка,  то она заменит предыдущие значения
                      (если пользователь ее не отменит).  Вначале функ-
                      ция replace создает объект TReplaceDialogRec, оп-
                      ределяемый следующим образом:

                         struct TReplaceDialogRec
                         {
                           TReplaceDialogRec( const char *str, const
                                              char *rep, ushort flgs )
                           {
                             strcpy( find str );
                             strcpy( replace, rep );
                             options = flgs;
                           }
                           char find[80];
                           char replace[80];
                           ushort options;
                         };

                      Конструктор вызывается с помощью str и rep, уста-
                      новленных   на   текущее   положение   findStr  и
                      replaceStr,  а также fld, установленного на теку-
                      щее   положение   editorFlags.  Диалог  редактора
                      edReplace далее запрашивает замену  или  принятие
                      двух строк.  Наконец, для выполнения операции по-
                      иска-замены вызывается   метод    doSearchReplace
                      (efDoReplace включено).

                      См. также  TEditor::findStr, TEditor::replaceStr,
                      TEditor::doSearchReplace, TEditor::editorDialog,
                      TEditor::find, TEditor::editorFlags.

      ScrollTo        void ScrollTo( int x, int y);

                      Перемещает столбец x и строку y в  левый  верхний
                      угол редактора.

      search          Boolean search( const char *findStr, ushort
                                      opts);

                      Выполняет поиск заданной строки в буфере редакти-
                      рования (начиная с curPtr) с  заданными  опциями.
                      Этими опциями являются:

                         efCaseSensitive     Поиск с различием
                                             регистра букв

                         efWholeWordsOnly    Поиск только полных слов

                      Возвращает значение True, если совпадение обнару-
                      жено. В   противном  случае  возвращает  значение
                      False. Если совпадение обнаружено, то выполняется
                      выделение совпавшего текста.

      setBufLen       void setBufLen( ushort length);

                      Устанавливает для поля bufLen длину length, затем
                      настраивает в соответствии с ним gapLen  и limit.
                      Поля selStart,  selEnd, curPtr, delta.x, delta.y,
                      drawLine, drawPtr, delCount и insCount устанавли-
                      ваются в 0.  Поле curPos устанавливается в значе-
                      ние delta, modified - в значение False, а отобра-
                      жаемый объект модифицируется и  при необходимости
                      обновляется. Конструктор     TEditor     вызывает
                      setBufLen (0). Метод setBufLen используется также
                      методом insertBuffer.

                      См. также:   TEditor::update,   TEditor::TEditor,
                      поля TEditor,  TEditor::insertBuffer. См. об этом
                      выше в комментарии к Рис. 14.2.

      setBufSize      virtual Boolean setBufSize( ushort newSize );

                      Должна вызываться перед изменением размера буфера
                      на newSize. Он возвращает значение True, если бу-
                      фер может иметь этот новый размер.  По  умолчанию
                      если  размер  newSize  окажется меньше или равным
                      размеру bufSize, возвращает значение True.

      setSmdState     void setSmdState( ushort command, Boolean
                                        enable );

                      Разрешает или запрещает выполнение данной команды
                      в зависимости от того,  имеет ли enable  значение
                      True или False, и находится ли редактор в состоя-
                      нии sfActive. Если редактор не является выбранным
                      отображаемым объектом,  команда всегда запрещена.
                      Данная функция представляет собой удобный альтер-
                      нативный  вариант  для  функций  enableCommands и
                      disableCommands.

      setCurPtr       void setCurPtr( ushort p, uchar selectMode );

                      Вызывает метод  setSelect  и перемещает curPtr на
                      величину смещения p.  Если curPtr находится в на-
                      чале или в конце выделенного текста, то в зависи-
                      мости от  значения  selectMode  может выполняться
                      некоторая настройка.

                      См. также TEditor::setSelect, TEditor::curPtr.

      setSelect       void setSelect( ushort newStart, ushort newEnd,
                                      Boolean curStart);

                      Устанавливает выделенные блоки на заданные смеще-
                      ния в файле и при необходимости выводит отобража-
                      емый объект заново. Эта подпрограмма в зависимос-
                      ти от значения curStart (соответственно, True или
                      False)  будет  помещать  курсор либо перед,  либо
                      после выделенного блока,

      setState        virtual void setState( ushort aState, Boolean
                                             enable );

                      Переопределяет TView::setState таким образом, что
                      она сможет "скрывать" и демонстрировать индикатор
                      и строки прокрутки.  Вначале, чтобы блокировать и
                      разблокировать  команды,  она  вызывает   TView::
                      setState,  Если вы пожелаете разрешить или запре-
                      тить дополнительные команды, то следует переопре-
                      делить метод updateCommands.  Эта функция вызыва-
                      ется  всякий  раз,  если требуется модифицировать
                      состояния команд.

      shutDown        virtual void shutDown();

                      Служит для   внутреннего   использования  методом
                      TObject::destroy,  чтобы  обеспечить   корректное
                      разрушение   порожденных  и  связанных  объектов.
                      Метод shutDown переопределяется во  многих  клас-
                      сах,  чтобы  обеспечить правильную установку свя-
                      занных полей при вызове метода destroy.

                      См. также:  глава  6,  "Разработка надежных прог-
                      рамм".

      startSelect     void startSelect();

                      Вызывается методом  handleEvent  при  обнаружении
                      Ctrl-K Ctrl-B (выделенного  фрагмента).  Отменяет
                      предыдущий  выделенный  фрагмент  и устанавливает
                      selecting в значение True.

                      См. также: TEditor::handleEvent, TEditor::hideSe-
                      lect.

      toggleInsMode   void toggleInsMode();

                      Переключает overwrite  с  True на False и с False
                      на True.  Изменяет форму курсора с помощью вызова
                      setState.

                      См. также: TEditor::overwrite, sfCursorIns.

      trackCursor     void trackCursor( Boolean center );

                      Обеспечивает видимость курсора. Если center имеет
                      значение True,  курсор переводится в центр экрана
                      в направлении y (по строке).  Положение курсора x
                      (столбец) не изменяется.

      undo            void undo();

                      Отменяет изменения,  сделанные  после  последнего
                      перемещения курсора.

      unlock          void unlock();

                      Уменьшает значение поля lockCount до тех пор, по-
                      ка оно не достигнет 0; в этот момент будет иници-
                      ирован метод doUpdate.  Механизм блокировки/разб-
                      локировки предотвращает слишком частое обновление
                      отображаемого объекта.

                      См. также:   TEditor::doUpdate,    TEditor::lock,
                      TEditor::lockCount.

      update          void update( uchar aFlags );

                      Устанавливает aFlags  в  поле  updateFlags.  Если
                      lockCount имеет  значение 0,  то вызывается метод
                      doUpdate.

                      См. также:   TEditor::doUpdate,    TEditor::lock,
                      TEditor::lockCount, TEditor::updateFlags.

      updateCommands  void updateCommands();

                      Данная функция всегда вызывается при необходимос-
                      ти модификации команд. Он используется для разре-
                      шения или запрещения  таких  команд  как  cmUndo,
                      cmClip и cmCopy.

      valid           virtual Boolean valid( ushort command );

                      Определяет  достоверность  отображаемого  объекта
                      для заданной   команды  (command).  По  умолчанию
                      возвращается значение   isValid,   которое  равно
                      True, если буфер buffer не равен 0.

      write           virtual void write( opstream& os );

                      Выполняет запись выходного потока os.

                      См. также: TStreamableClass, opstream.


                            Дружественные-функции

           Дружественной-функцией по отношению к TEditor является функ-
      ция genRets.


                              Родственные функции

           С TEditor связаны определенные функции-операции,  которые не
      являются методами. Подробнее об этом см. в главе 13.






        TEditWindow                                            EDITORS.H
      -----------------------------------------------------------------

                            ЪДДДДДДДДДДДДДї
                            і    TView    і
                            АДДВДДДВДДДВДДЩ
                   ЪДДДДДДДДДДДЩ   і   АДДДДДДДДДДДї
            ЪДДДДДДБДДДДДДї ЪДДДДДДБДДДДДДї ЪДДДДДДБДДДДДДї
            і   TWimdow   і і   TEditor   і і  TIndicator і
            АДДДДДДВДДДДДДЩ АДДДВДДДДВДДДДЩ АДДДДДДДДДДДДДЩ
                   і            і    АДДДДДДДДДДДДДї
            ЙННННННПНННННН» ЪДДДБДДДДДДДї   ЪДДДДДДБДДДДДДї
            є TEditWindow є і   TMemo   і   і TFileEditor і
            ИНННННННННННННј АДДДДДДДДДДДЩ   АДДДДДДДДДДДДДЩ


           Класс TEditWindow  представляет собой окно,  предназначенное
      для хранения TFileEditor или "кармана". При изображении имени ре-
      дактируемого  файла  его  заголовок изменяется и инициализируются
      строки прокрутки и индикатор для редактора.  Если передаваемое  в
      TEditWindow имя окажется пустым,  это будет означать, что вы ини-
      циализируете "карман".


                                    Поля

      editor          TFileEditor *editor;

                      Указатель на редактор,  связанный с данным окном.


                                   Методы

      constuctor      TEditWindow( const TRect& bounds, const char
                                   *fileName, int aNumber);

                      Создает объект  TWindow,  который будет выполнять
                      редактирование файла с заданным именем в  окне  с
                      номером aNumber.  Инициализирует управляемое окно
                      с рамкой,  имеющее строки прокрутки и  индикатор.
                      Если fileName равно 0, то файл воспринимается как
                      не имеющий названия.  Если поле editor равно полю
                      Clipboard, то редактор будет считаться работающим
                      с "карманом".

      build           static TStreamable *build();

                      Вызывается для создания объектов  в  определенных
                      ситуациях, связанных  с чтением информации из по-
                      токов.

                      См. также: TStreamableClass, ipstream::readData.

      close           virtual void close();

                      Переопределяет TWindow::close т.о.,  чтобы выпол-
                      нялось "сокрытие",  а не закрытие окна,  если ре-
                      дактор работает с "карманом".

                      См. также: TWindow::close.

      getTitle        virtual const char *getTitle( int );

                      Возвращает имя редактируемого файла,  либо "Clip-
                      board", если редактор работает с "карманом".

      handleEvent     virtual void handleEvent( TEvent& ev );

                      Управляет cmUpdateTitle  при обновлении рамки ок-
                      на.  Используется в TFileEditor::saveAs для изме-
                      нения заголовка окна,  если изменяется имя редак-
                      тируемого файла.

                      См. также: TFileEditor::saveAs.

      read            virtual void *read( ipstream& is );

                      Считывает информацию из входного потока is.

                      См. также: TStreamableClass, ipstream.

      write           virtual void write( opstream& os );

                      Записывает информацию в выходной поток os.

                      См. также: TStreamableClass, opstream.


                             Родственные функции

           С TEditWindow связаны определенные функции-операции, которые
      не являются методами. Подробнее об этом см. в главе 13.




        TFileEditor                                            EDITORS.H
      -----------------------------------------------------------------

                            ЪДДДДДДДДДДДДДї
                            і    TView    і
                            АДДВДДДВДДДВДДЩ
                   ЪДДДДДДДДДДДЩ   і   АДДДДДДДДДДДї
            ЪДДДДДДБДДДДДДї ЪДДДДДДБДДДДДДї ЪДДДДДДБДДДДДДї
            і   TWimdow   і і   TEditor   і і  TIndicator і
            АДДДДДДВДДДДДДЩ АДДДВДДДДВДДДДЩ АДДДДДДДДДДДДДЩ
                   і            і    АДДДДДДДДДДДДДї
            ЪДДДДДДБДДДДДДї ЪДДДБДДДДДДДї   ЙННННННПНННННН»
            і TEditWindow і і   TMemo   і   є TFileEditor є
            АДДДДДДДДДДДДДЩ АДДДДДДДДДДДЩ   ИНННННННННННННј


           Класс TFileEditor является специализированным порожденным от
      класса TEditor классом, предназначенным для редактирования содер-
      жимого файла.


                                    Поля

      fileName        char fileName[MAXPATH];


                                   Методы

      constuctor      TEditor( const TRect& bounds, TScrollBar
                               *aHScrollBar, TScrollBar *aVScrollBar,
                               TIndicator *anIndicator, const char
                               aFileName);

                      Создает объект  TFileEditor  с заданными строками
                      прокрутки и индикатором  и  загружает  содержимое
                      заданного файла. Если файл не обнаружен или недо-
                      пустим, выдается  сообщение  об  ошибке  и  метод
                      valid объекта возвращает значение False. Перемен-
                      ная    options    устанавливается    в   значение
                      sfSelectable,  а eventMask устанавливается  т.о.,
                      чтобы  позволить  обработку передаваемых событий.
                      Если  вам  не  требуются  аргументы  aHScrollBar,
                      aVScrollBar или anIndicator, установите их в зна-
                      чение 0.

      build           static TStreamable *build();

                      Вызывается для создания объектов  в  определенных
                      ситуациях, связанных  с чтением информации из по-
                      токов.

                      См. также: TStreamableClass, ipstream::readData.

      doneBuffer      virtual void doneBuffer();

                      Удаляет буфер.

      handleEvent     virtual void handleEvent( TEvent& event );

                      Вызывает TEditor::handleEvent, затем обрабатывает
                      команды cmSave и cmSaveAs. Команда cmSave активи-
                      зирует save,   команда   cmSaveAs    активизирует
                      saveAs.

                      См. также:  TFileEditor::save, TFileEditor::save-
                      As.

      initBuffer      virtual void initBuffer();

                      Выделяет в  памяти bufSize байт для буфера редак-
                      тора.

      loadFile        Boolean loadFile();

                      Считывает файл  fileName с диска и выполняет про-
                      верку ошибок. Если они не обнаружены, возвращает-
                      ся значение True. В противном случае возвращается
                      значение False. В зависимости от причин неудачно-
                      го выполнения выводится изображение панели диало-
                      га edReadError либо edOutOfMemory.

                      См. также: TEditor::editorDialog.

      read            virtual void *read( ipstream& is );

                      Считывает информацию из входного потока is.

                      См. также: TStreamableClass, ipstream.

      save            Boolean save();

                      Вызывает функцию saveAs,  если редактируемый файл
                      не имеет заголовка (является  "Untitled"  -  т.е.
                      для него  не выделено поле fileName) и возвращает
                      значение  из  saveAs.  Если  имеется  достоверное
                      fileName, активизируется saveFile, и save возвра-
                      щает значение из saveFile.

                      См. также:  TFileEditor::saveAs, TFileEditor::sa-
                      veFile.

      saveAs          Boolean saveAs();

                      Активизирует панель  диалога edSaveAs,  в котором
                      запрашивается подсказка имени  сохраняемого файла
                      "save as".  Если сообщается корректное имя файла,
                      то текущий текст будет сохранен под этим именем с
                      помощью  функции  saveFile.  Владельцу  редактора
                      файла сообщается об этом событии через передавае-
                      мое сообщение cmUpdateTitle. Функция saveAs возв-
                      ращает  значение  значение   True,   если   вызов
                      saveFile будет выполнен успешно, в противном слу-
                      чае возвращается значение False.  Значение  False
                      возвращается также   при  отмене  панели  диалога
                      edSaveAs.

                      См. также:  TFileEditor::saveFile,  TFileEditor::
                      editorDialog.

      saveFile        Boolean saveFile();

                      Сохраняет файл  с именем fileName на диске.  Если
                      сохранение будет неудачным,  то возвращается зна-
                      чение False.  В противном случае возвратится зна-
                      чение True.  Если в  editorFlags  установлен  бит
                      efBackupFiles, то  создается файл a.BAK.  Причина
                      неудачи будет   указана    в    панели    диалога
                      edCreateError или edWriteError.

                      См. также:  TEditor::editorDialog,  TFileEditor::
                      saveAs, TFileEditor::save.

      setBufSize      virtual Boolean setBufSize( ushort newSize );

                      Переопределяет метод  TEditor::setBufSize   таким
                      образом, что при его увеличении размер буфера бу-
                      дет уменьшаться с шагом 4К. Значение gapLen будет
                      соответствующим образом настраиваться.

      updateCommands  virtual void updateCommands();

                      Вызывает метод   TEditor::updateCommands,   затем
                      разблокирует команды cmSave и cmSaveAs.  Эти  ко-
                      манды  допустимы только в том случае,  если выде-
                      ленный отображаемый объект является редактором, в
                      противном случае они будут заблокированы.

                      См. также: TEditor::updateCommands.

      valid           virtual Boolean valid( ushort );

                      Переопределяет метод TEditor::valid,  чтобы сооб-
                      щить о необходимости сохранения файла перед выхо-
                      дом из  программы.  Панели диалога edSaveUntitled
                      или edSaveModify выводятся на экран соответствую-
                      щим образом.  Если пользователь отменяет сохране-
                      ние, возвращает значение False.

      write           virtual void write( opstream& os );

                      Записывает информацию в выходной поток os.

                      См. также: TStreamableClass, opstream.


                             Родственные функции

           С TFileEditor связаны определенные функции-операции, которые
      не являются его методами. Подробнее об этом см. в главе 13.




        TIndicator                                             EDITORS.H
      -----------------------------------------------------------------

                            ЪДДДДДДДДДДДДДї
                            і    TView    і
                            АДДВДДДВДДДВДДЩ
                   ЪДДДДДДДДДДДЩ   і   АДДДДДДДДДДДї
            ЪДДДДДДБДДДДДДї ЪДДДДДДБДДДДДДї ЙННННННПНННННН»
            і   TWimdow   і і   TEditor   і є  TIndicator є
            АДДДДДДВДДДДДДЩ АДДДВДДДДВДДДДЩ ИНННННННННННННј
                   і            і    АДДДДДДДДДДДДДї
            ЪДДДДДДБДДДДДДї ЪДДДБДДДДДДДї   ЪДДДДДДБДДДДДДї
            і TEditWindow і і   TMemo   і   і TFileEditor і
            АДДДДДДДДДДДДДЩ АДДДДДДДДДДДЩ   АДДДДДДДДДДДДДЩ


           Класс TIndicator является счетчиком строк и столбцов в  ниж-
      нем левом   углу  редактора.  Он  инициализируется  конструктором
      TEditWindow и передается конструктору TEditor в качестве  четвер-
      того аргумента.


                                    Поля

      location        TPoint location;

                      Сохраняет местоположение,   предназначенное   для
                      изображения на экране. Модифицируется TEditor.

      modified        Boolean modified;

                      Имеет значение True, если связанный с ним TEditor
                      был модифицирован.

                      См. также: TEditor::draw.


                                   Методы

      constuctor      TEditor( const TRect& bounds);

                      Создает объект TIndicator.

      build           static TStreamable *build();

                      Вызывается для создания  объекта  в  определенных
                      ситуациях, связанных с чтением из потоков.

                      См. также: TStreamableClass, ipstream::readData.

      draw            virtual void draw();

                      Выполняет отображение индикатора.  Если  modified
                      имеет значение True,  выдается изображение специ-
                      ального символа (значение 15 кода ASCII).

      getPalette      virtual TPalette& getPalette() const;

                      Возвращает cpIndicator  =   "\x02\x03"   (палитра
                      TIndicator, принятая по умолчанию).

      read            virtual void *read( ipstream& is );

                      Считывает информацию из входного потока is.

                      См. также: TStreamableClass, ipstream.

      setState        virtual void setState( ushort aState, Boolean
                                             enable );

                      Если отображаемый объект  перемещается, выполняет
                      изображение индикатора  в цвете перемещаемой рам-
                      ки.

      setValue        void setValue( const TPoint& aLocation, Boolean
                                     aModified);

                      Метод вызывается  TEditor для модификации и изоб-
                      ражения значений полей  ассоциированного  объекта
                      TIndicator.

      write           virtual void write( opstream& os );

                      Записывает информацию в выходной поток os.

                      См. также: TStreamableClass, opstream.


                             Родственные функции

           С TIndicator связаны определенные  функции-операции, которые
      не являются его методами. Подробнее об этом см. в главе 13.





        TMemo                                                  EDITORS.H
      -----------------------------------------------------------------

                               ЪДДДДДДДДДДДДДї
                               і    TView    і
                               АДДВДДДВДДДВДДЩ
                      ЪДДДДДДДДДДДЩ   і   АДДДДДДДДДДДї
               ЪДДДДДДБДДДДДДї ЪДДДДДДБДДДДДДї ЪДДДДДДБДДДДДДї
               і   TWimdow   і і   TEditor   і і  TIndicator і
               АДДДДДДВДДДДДДЩ АДДДВДДДДВДДДДЩ АДДДДДДДДДДДДДЩ
                      і            і    АДДДДДДДДДДДДДї
               ЪДДДДДДБДДДДДДї ЙНННПННННННН»   ЪДДДДДДБДДДДДДї
               і TEditWindow і є   TMemo   є   і TFileEditor і
               АДДДДДДДДДДДДДЩ ИНННННННННННј   АДДДДДДДДДДДДДЩ


           Класс TMemo, потомок TEditor, предназначен для работы в сос-
      таве панели диалога или формы.  Он поддерживает поле  dataSize  и
      допускает обработку клавиши Tab классом TDialog. Его палитра так-
      же отличается от палитры TEditor. В dataSize используется следую-
      щая структура:

              struct TMemoRec
              {
                 ushort length;
                 char *buffer;
              }

      задавая размер (bufSize + sizeof( ushort )).


                                    Методы

      constructor     TMemo();

                      Создает объект  TMemo через его базовые конструк-
                      торы.

      build           static TStreamable *build();

                      Вызывается для создания  объекта  в  определенных
                      ситуациях, связанных с чтением из потоков.

                      См. также: TStreamableClass, ipstream::readData.

      dataSize        virtual ushort dataSize();

                      Используется методами  setData и getData при сох-
                      ранении и  восстановлении  объектов  TMemo.  Поля
                      setData и getData унаследованы от TView. По умол-
                      чанию, возвращает (sizeof( ushort ) + bufSize).

                      См. также: TView::getData, TView::setData.

      getPalette      virtual TPalette& getPalette() const;

                      Возвращает cpMemo = "\x1a\x1B" (палитра текстово-
                      го поля (memo), задаваемая по умолчанию).

      handleEvent     virtual void handleEvent( TEvent& event );

                      Не допускает обработку событий, связанных с нажа-
                      тием клавиши kbTab, TMemo. В противном случае она
                      обрабатывает  события  таким  же  образом,  что и
                      TEditor.

                      См. также: TEditor::handleEvent.

      read            virtual void *read( ipstream& is );

                      Считывает информацию из входного потока is.

                      См. также: TStreamableClass, ipstream.

      write           virtual void write( opstream& os );

                      Записывает информацию в выходной поток os.

                      См. также: TStreamableClass, opstream.


                             Родственные функции

           С TMemo связаны определенные  функции-операции,  которые  не
      являются его методами. Подробнее об этом см. в главе 13.                     ГЛАВА 15. СТАНДАРТНЫЕ ДИАЛОГОВЫЕ ОКНА
      -----------------------------------------------------------------

           Глава описывает  расширение  Turbo  Vision,  предоставляющее
      большое  количество  стандартных возможностей по созданию панелей
      диалога.




       TChDirDialog                                             STDDLG.H
      -----------------------------------------------------------------

                           ЪДДДДДДДДДї
                           і TDialog і
                           АДДДДВДДДДЩ
                         ЙННННННПННННННН»
                         є TChDirDialog є
                         ИННННННННННННННј

           TChDirDialog - это панель диалога с меткой "Смена каталога".
      Строка  ввода  обеспечивает  ввод имени каталога от пользователя.
      Окна протокола и списка каталогов с вертикальной прокруткой  пре-
      доставляют  соответственно  предыдущие  выборы каталогов и дерево
      всех доступных каталогов.  Выбор пунктов  осуществляется  обычным
      способом управления подсветкой с помощью клавиатуры или "мыши". В
      панели отображаются следующие опции:

           Directory name
           Directory tree
           OK(по умолчанию)
           Chdir
           Revert
           Help

           TChDirDialog::handleEvent посылает  соответствующие  команды
      для каждого выбора.

           TDirListBox является дружественным классом для TChDirDialog,
      поэтому методы  TDirListBox  имеют  доступ  к полям TChDirDialog:
      setUpDialog, dirInput, dirList, okButton и chDirButton.

                              Константы команд
           ------------------------------------------------------------

           Следующие команды посылаются TChDirDialog:

                    Таблица 15.1 Команды TChDirDialog.

           ------------------------------------------------------------
           Константа     Значение  Назначение
           ------------------------------------------------------------
           cmChangeDir   1005      посылается, когда выбрано Chdir.
           cmRevert      1006      посылается, когда выбрано Revert
           ------------------------------------------------------------


                             Методы TChDirDialog
           ------------------------------------------------------------


                                 Конструктор

           TChDirDialog(ushort aOptions, ushort histId);

           Cоздает  диалоговый  объект  для  смены  каталога  с  данным
      идентификатором протокола (ID).  aOptions может принимать следую-
      щие значения:

           юcdNormal: - опция немедленного использования диалога.

           юcdNoLoadDir: - опция инициализации диалога без загрузки те-
            кущего каталога в диалог.  Применяется,  если вы намеревае-
            тесь используя setData перезагрузить каталог, или сохранить
            в потоке.

           юcdHelpButton: - опция помещения кнопки помощи в диалог.

           Конструктор создает и размещает объект TInputLine (с  меткой
      "Directory ~n~ame"), объект THistory, список с вертикальной прок-
      руткой,  объект TDirListBox (с меткой "Directory ~t~ree")  и  три
      кнопки ("O~K~", "~C~hdir", "~R~evert"). Если aOptions имеет набор
      флагов cdHelpButton,  то создается четвертая кнопка помощи.  Если
      не выбрана опция cdNoLoadDir то панель диалога  загружается с те-
      кущим каталогом.


                                 Метод build

           static TStreamable *build();

           Вызывается  для  создания  объектов  при некоторых ситуациях
      чтения из потока.

           См. также TStreamableClass, ipstream::readData


                               Метод dataSize

           virtual ushort dataSize();

           По  умолчанию  dataSize  возвращает  0. Переопределяется для
      возвращения размера  данных  (в  байтах), используемых  getData и
      setData для запоминания и поиска входных данных панели диалога.

           См. также: TView::dataSize, TView::setData, TView::getData


                                Метод getData

           virtual void getData(void *rec);

           По умолчанию getData ничего не делает.  Переопределяется для
      копирования dataSize байт из отображаемого объекта в rec. Исполь-
      зуется в комбинации с dataSize и setData для запоминания и поиска
      входных данных панели диалога.

           См. также: TView::dataSize, TView::setData, TView::getData


                              Метод handleEvent

           virtual void handleEvent(TEvent& event);

           Вызывает  TDialog::handleEvent  затем  обрабатывает  события
      cmRevert   (восстанавливает   предыдущий   текущий   каталог)   и
      сmChangeDir (переключает  на  выбранный каталог). Если необходимо
      панель диалога перерисовывается.

           См. также: TDialog::handleEvent


                                 Метод read

           virtual void *read(ipstream& os);

           Читает из входного потока is.

           Cм. также: TStreamableClass, ipstream


                                Метод setData

           virtual void setData(void *rec);

           По умолчанию setData ничего не делает.  Переопределяется для
      копирования байтов  dataSize из отображаемого объекта в rec.  Ис-
      пользуется в комбинации с методами dataSize и setData для запоми-
      нания и поиска входных данных панели диалога.

           См. также: TView::dataSize, TView::setData, TView::getData


                               Метод shutDown

           virtual void shutDown();

           Используется методом TObject::destroy для  обеспечения  кор-
      ректного уничтожения  производных  и родственных объектов.  Метод
      shutDown переопределяется во многих классах для обеспечения  пра-
      вильного установления родственных полей когда вызывается destroy.

           См. также: Глава 6, "Написание надежных программ"


                                 Метод valid

           virtual Boolean valid(ushort command);

           Возвращает значение True, если command отлична от cmOK. Если
      кнопка OK "нажата", valid проверяет введенную строку и возвращает
      True для правильного каталога. Неправильный каталог вызывает окно
      с сообщением "неправильный каталог" и возвращает False.

           См. также: TDialog::valid

                            Метод write

           virtual void write(opstream& os);

           Записывает в выходной поток os.

           См. также: TStreamableClass, opstream

                             Родственные функции
           ------------------------------------------------------------

           Некоторые функции-операции родственны  TChDirDialog,  но  не
      являются методами.





        TDirCollection                                          STDDLG.H
      -----------------------------------------------------------------

                              ЪДДДДДДДДДДДДДї
                              і TCollection і
                              АДДДДДДВДДДДДДЩ
                             ЙНННННННПНННННННН»
                             є TDirCollection є
                             ИННННННННННННННННј

           Класс TDirCollection  является  простым  наследником  класса
      TCollection используемым   для   хранения   объектов   TDirEntry.
      TDirCollection - это потоковый класс,  наследующий TStreamable из
      его базового класса.


                            Методы TDirCollection
           -------------------------------------------------------------

                                 Конструктор

           TDirCollection(ccIndex    aLimit,    ccIndex    aDelta)    :
                          TCollection(aLimit, aDelta);

           Вызывает базовый  конструктор  TCollection для создания кол-
      лекции каталогов с данными limit и delta.

           См. также: TCollection::TCollection

                                  Метод at

           TDirEntry *at(ccIndex index);

           Возвращает указатель на объект TDirEntry, вставленный в дан-
      ную коллекцию каталогов в позицию index.

           См. также: TNSCollection::at

                               Метод atInsert

           void atInsert(ccIndex index, TDirEntry *item);

           Помещает данный элемент в коллекцию в позицию index и смеща-
      ет последующие элементы вниз на одну позицию. Если будет превыше-
      но значение limit, коллекция будет расширена на delta.

           См. также: TNSCollection::atInsert

                                 Метод atPut

           void atPut(ccIndex index, TDirEntry *item);

           Заменяет элемент в позицию index на данный элемент item.

           См. также: TNSCollection::atPut

                                 Метод build

           static TStreamable *build();

           Вызывается  для  создания  объектов  при некоторых ситуациях
      чтения из потока.

           См. также: TStreamableClass, ipstream::readData

                               Метод firstThat

           TDirEntry *firstThat(ccTestFunc Test, void *arg);

           Этот итератор  возвращает   указатель   на   первый   объект
      TDirEntry в коллекции, для которого функция Test возвращает True.
      Смотрите описание TNSCollection::firstThat для детального  объяс-
      нения.

           См. также: TDirCollection::lastThat

                                 Метод free

           void free(TDirEntry *item);

           Удаляет данный  элемент  из  коллекции и освобождает место в
      коллекции.

           См. также: TNSCollection::free, TNSCollection::remove

                                Метод indexOf

           virtual ccIndex indexOf(TDirEntry *item);

           Возвращает позицию index данного элемента item в данной кол-
      лекции каталогов.

           См. также: TNSCollection::indexOf

                                Метод insert

           virtual ccIndex insert(TDirEntry *item);

           Вставляет элемент item в коллекцию (набор) и  при  необходи-
      мости  корректирует индексы.  По умолчанию вставка производится в
      конец коллекции. Возвращается индекс вставленного элемента.

           См. также: TNSCollection::insert

                               Метод lastThat

           TDirEntry *lastThat(ccTestFunc Test, void *arg);

           Этот итератор    просматривает   коллекцию   от   последнего
      объекта TDirEntry к первому.  Он возвращает указатель  на  первый
      (т.е. ближайший к концу) элемент набора для которого функция Test
      возвращает True.  Для  подробного   объяснения   смотрите   метод
      TNSCollection::lastThat.

           См. также: TDirCollection::firstThat

                                 Метод read

           virtual void *read(ipstream& os, void * t);

           Считывает из входного потока is.

           См. также: TStreamableClass, ipstream

                          Метод readItem

           void *TDirCollection::readItem( ipstream& is );

           Вызывается для каждого элемента в коллекции. Нуждается в пе-
      реопределении    всех    производных    от    TCollection     или
      TSortedCollection     для     корректного    чтения    элементов.
      TSortedCollection переопределяет эту функцию.

           См. также: TStreamableClass, TStreamable, ipstream

                                Метод remove

           void remove(TDirEntry *item);

           Удаляет данный элемент item из коллекции. (Место в коллекции
      не освобождается).

           См. также: TNSCollection::remove, TNSCollection::free

                                 Метод write

           virtual void write(opstream& os);

           Записывает в выходной поток os.

           См. также: TStreamableClass, opstream

                               Метод writeItem

           void TDirCollection::writeItem( void *obj, opstream& os );

           Вызывается для каждого элемента в коллекции.  Для корректной
      записи элементов нуждается в переопределении всех  порожденных от
      TCollection или TSortedCollection классов.  TSortedCollection уже
      переопределяет эту функцию.

           См. также: TStreamableClass, TStreamable, opstream

                            Родственные функции
           ------------------------------------------------------------

           Некоторые функции-операции родственны TDirCollection,  но не
      являются методами.




       TDirEntry                                                STDDLG.H
      -----------------------------------------------------------------

                             ЙННННННННННННН»
                             є  TDirEntry  є
                             ИНННННННННННННј

           Класс TDirEntry - это простой класс, обеспечивающий описания
      и маршруты  каталогов.  Объекты  TDirEntry  хранятся  в  объектах
      TDirCollection. TDirEntry имеет два поля,  доступных через методы
      dir и text.

                               Методы TDirEntry
           ------------------------------------------------------------

                              Метод constructor

           TDirEntry(const char *txt, const char *dir);
           inline TDirEntry::TDirEntry((const char *txt, const char *dir) :
                  displayText(newStr(txt)), directory(newStr(dir))

                                  Метод dir

           char *dir();

           Возвращает текущий каталог (значение поля directory).

                                 Метод text

           char *text();

           Возвращает текущий   отображаемых   текст   (значение   поля
      displayText).




       TDirListBox                                              STDDLG.H
      -----------------------------------------------------------------

                                ЪДДДДДДДДДї
                                і  TView  і
                                АДДДДВДДДДЩ
                             ЪДДДДДДДБДДДДДДДДї
                             і  TListViewer   і
                             АДДДДДДДВДДДДДДДДЩ
                               ЪДДДДДБДДДДДДї
                               і  TListBox  і
                               АДДДДДВДДДДДДЩ
                            ЙННННННННПНННННННН»
                            є   TDirListBox   є
                            ИНННННННННННННННННј

           Класс TDirListBox является наследником TListBox и  специали-
      зируется  на отображении и выборе каталогов хранящихся в объектах
      TDirCollection. По умолчанию эти каталоги отображаются в виде од-
      ного столбца с вертикальной прокруткой.

                             Методы TDirListBox
           ------------------------------------------------------------

                                 Конструктор

           TDirListBox(const TRect& bounds, TScrollBar *aScrollBar);

           Для создания списка с вертикальной прокруткой в форме одного
      столбца      в      данных      границах      вызывает      метод
      TListBox::TListBox(bounds, 1, aScrollBar)

           См. также: TListBox::TListBox

                              Метод destructor

           ~TDirListBox();

           Вызывает свой базовый деструктор для удаления окна со  спис-
      ком.

                                 Метод build

           static TStreamable *build();

           Вызывается  для  создания  объектов  при некоторых ситуациях
      чтения из потока.

           См. также: TStreamableClass, ipstream::readData

                                Метод getText

           virtual void getText(char *dest, short item, short maxLen);

           Считывает строку текста с индексом  item  и  копирует  ее  в
      dest.

                              Метод handleEvent

           virtual void handleEvent(TEvent& event);

      С помощью  метода  putEvent(cmChangeDir)  обрабатывает событие от
      "мыши" (двойное нажатие кнопки). Это позволяет с помощью двойного
      нажатия переключаться на выбранный каталог.  Другие события обра-
      батываются TListBox::handleEvent.

           См. также: TView::putEvent, TListBox::handleEvent

                              Метод isSelected

           virtual Boolean isSelected(short item);

           Возвращает значение  True если выбран элемент item, в против-
      ном случае возвращает False.

                                 Метод list

           TDirCollection *list();

           Возвращает указатель  на  объект  TDirCollection связанный с
      данным окном списка каталогов.

           См. также: TSortedListBox::list

                        Метод newDirectory

           void newDirectory(const char *);

           Удаляет существующий объект  TDirEntry  связанный  с  данным
      оконным списком  и  заменяет  его  на  коллекцию  файлов данный в
      aList. Первый элемент в коллекции будет активизирован.

           См. также: TSortedListBox::newList

                                 Метод read

           virtual void *read(ipstream& os);

           Читает из входного потока is.

           См. также: TStreamableClass, ipstream

                               Метод setState

           virtual void setState(ushort aState, Boolean enable);

           По умолчанию    использует    метод,    унаследованный    от
      TListViewer::setState.

           См. также: TListViewer::setState

                                 Метод write

           virtual void write(opstream& os);

           Записывает в выходной поток os.

           См. также: TStreamableClass, opstream

                             Родственные функции
           ------------------------------------------------------------

           Некоторые функции-операции родственны TDirListBox, но не яв-
      ляются методами.





       TFileCollection                                          STDDLG.H
      -----------------------------------------------------------------

                           ЪДДДДДДДДДДДДДДДДДДДї
                           і TSortedCollection і
                           АДДДДДДДДДВДДДДДДДДДЩ
                           ЙНННННННННПННННННННН»
                           є  TFileCollection  є
                           ИНННННННННННННННННННј

           TFileCollection является    простым    наследником  TSorted-
      Collection дающим отсортированную коллекцию  имен  файлов.  Имена
      файлов хранятся как объекты типа TSearchRec, определенного следу-
      ющим образом:

              struct TSearchRec
              {
                  uchar attr;
                  long time;
                  long size;
                  char name[MAXFILE+MAXEXT-1];
              };
           Поля TSearchRec имеют  свое обычное  DOS-значение.  Дисковод
      и маршрут каталога обрабатываются объектами  TDirEntry раздельно.

                           Методы TFileCollection
           ------------------------------------------------------------

                              Метод constructor

           TFileCollection(ccIndex   aLimit,    ccIndex    aDelta)    :
                           TSortedCollection(aLimit, aDelta) {}

           Вызывает базовый конструктор TSortedCollection для создания
      коллекции с данными limit и delta.

           См. также: TSortedCollection::TSortedCollection

                                  Метод at

           TSerchRec *at(ccIndex index)

           Возвращает указатель на объект TSearhRec, вставляемый по по-
      зиции index в данную коллекцию файлов.

           См. также: TNSCollection::at

                               Метод atInsert

           void atInsert(ccIndex index, TSearchRec *item)

           Вставляет файл TSearchRec, на который ссылается элемент item
      в  коллекцию по данному индексу index и сдвигает последующие эле-
      менты на одну позицию вниз.  Если вставка нового элемента вызовет
      превышение значения limit, коллекция будет расширена на delta.

           См. также: TNSCollection::atInsert

                                 Метод atPut

           void atPut(ccIndex index, TSerchRec *item)

           Заменяет файл  TSearchRec,  находящийся  по позиции index на
      указанном элементе item.

           См. также: TNSCollection::atPut

                                 Метод build

           static TStreamable *build();

           Вызывается для создания  объектов  при  некоторых  ситуациях
      чтения их потока.

           См. также: TStreamableClass, ipstream::readData

                          Метод compare ("частный")

           virtual int compare(void *key1, void *key2);

           Выполняет стандартное строковое сравнение файлов и возвраща-
      ет значение в зависимости от результатов.

           юВозвращает 0, если имена файлов key1 и key2 одинаковы.
           юВозвращает > 0,

             * Если имя key1 лексикографически больше key2
             * Если имя key1 есть каталог ".."
             * Если имя key1 есть каталог, а key2 не каталог

           юВозвращает < 0,

             * Если имя key1 лексикографически меньше key2
             * Если key2 ссылается на каталог ".."
             * Если key2 есть каталог, а key1 не каталог.

           См. также: TSortedCollection::compare

                               Метод firstThat

           TSearchRec *firstThat(ccTestFunc Test, void *arg);

           Этот итератор   возвращает   указатель   на   первый  объект
      TSearchRec в коллекции, для которого функция Test возвращает зна-
      чение True.      Для      детального      пояснения      смотрите
      TNSCollection::firstThat.

           См. также: TFileCollection::lastThat

                                 Метод free

           void free(TSearchRec *item)

           Удаляет данный файловый элемент TSearchRec  из  коллекции  и
      освобождает место в коллекции.

           См. также: TNSCollection::free, TNSCollection::remove

                                Метод indexOf

           virtual ccIndex indexOf(TSearchRec *item)

           Возвращает индекс    index    данного   файлового   элемента
      TSearchRec в данной коллекции файлов.

           См. также: TNSCollection::indexOf

                                Метод insert

           virtual ccindex insert(TSearchRec *item)

           Вставляет TSearchRec item в коллекцию  и  при  необходимости
      корректирует  индексы.  По умолчанию вставка производится в конец
      коллекции. Возвращается индекс вставленного элемента.

           См. также: TNSCollection::insert

                               Метод lastThat

           TSearchRec *lastThat(ccTestFunc Test, void *arg);

           Этот итератор   просматривает   коллекцию   от    последнего
      объекта TDirEntry  к  первому.  Он возвращает указатель на первый
      (т.е.  ближайший к концу) элемент коллекции для которого  функция
      Test  возвращает значение True.  Смотрите TNSCollection::lastThat
      для детального объяснения.

           См. также: TFileCollection::firstThat

                                 Метод read

           virtual void *read(ipstream& os);

           Считывает из входного потока is.

           См. также: TStreamableClass, ipstream

                               Метод readItem

           void *TFileCollection::readItem( ipstream& is );

           Вызывается для каждого элемента в коллекции. Для корректного
      чтения элементов нуждается в переопределении.

           См. также: TStreamableClass, TStreamable, ipstream

                                Метод remove

           void remove(TSearchRec *item)

           Удаляет данный файловый элемент TSearchRec из коллекции фай-
      лов. (Место в коллекции не освобождается).

           См. также: TNSCollection::remove, TNSCollection::free

                                 Метод write

           virtual void write(opstream& os);

           Пишет в выходной поток os.

           См. также: TStreamableClass, opstream

                               Метод writeItem

           void TFileCollection::writeItem( void *obj, opstream& os );

           Вызывается для каждого элемента в коллекции. Нуждается в пе-
      реопределении для корректной записи элементов.

           См. также: TStreamableClass, TStreamable, opstream

                             Родственные функции
           ------------------------------------------------------------

           Некоторые функции-операции родственны TFileCollection, но не
      являются методами.





       TFileDialog                                              STDDLG.H
      -----------------------------------------------------------------

                                 ЪДДДДДДДДДї
                                 і TDialog і
                                 АДДДДВДДДДЩ
                               ЙННННННПНННННН»
                               є TFileDialog є
                               ИНННННННННННННј

           TFileDialog исполняет файловую панель диалога, список прото-
      кола,  строку ввода, в которой могут быть введены, отредактирова-
      ны, выбраны или открыты для редактирования  имена файлов (включая
      полное имя файла).

                                   Опции
           ------------------------------------------------------------

           Эти опции выполняют специфические операции.

                      Таблица 15.2 Опции TFileDialog.

       ------------------------------------------------------------
       Константа     Значение  Назначение
       ------------------------------------------------------------
       fdOKButton      0x0001  Помещает в панель диалога кнопку OK.
       fdOpenButton    0x0002  Помещает в панель диалога кнопку Open.
       fdReplaseButton 0x0004  Помещает в панель диалога кнопку Replase.
       fdClearButton   0x0008  Помещает в панель диалога кнопку Clear.
       fdHelpButton    0x0010  Помещает в панель диалога кнопку Help.
       fdNoLoadDir     0x0100  Не  загружайте    содержимого   текущего
                               каталога в панель диалога при  инициали-
                               зации,  т.к.  это будет означать, что вы
                               намереваетесь изменить полное  имя файла
                               используя  setData или записать диалог в
                               потоке.
       ------------------------------------------------------------

                            Командные константы
           ------------------------------------------------------------

           Следующие команды возвращаются TFileDialog:


               Таблица 15.3 Командные константы TFileDialog.

         --------------------------------------------------------------
         Константа     Значение  Назначение
         --------------------------------------------------------------
         cmFileOpen      1001    Посылается, когда нажата кнопка Open.
         cmFileReplase   1002    Посылается, когда нажата Replase.
         cmFileClear     1003    Посылается, когда нажата кнопка Clear.
         cmFileInit      1004    используется методом
                                 TFileDialog::valid.
         --------------------------------------------------------------

                                    Поля
           ------------------------------------------------------------

                               Поле directory

           const char *directory;

           Содержит текущий каталог.

                                Поле fileList

           TFileList *fileList;

           Указатель на ассоциированный список файлов.

           См. также TFileList

           Поле fileName

           TFileInputLine *fileName;

           Указатель на ассоциированную строку ввода.

           См. также TFileInput

           Поле wildCard

           char wildCard[MAXPATH];

           Текущие дисковод, маршрут и имя файла.

                             Методы TFileDialog
           ------------------------------------------------------------

                                 Конструктор

           TFileDialog(const char *aWildCard, const char *aTitle, const
                       char *inputName, ushort aOptions, uchar histId);

           Создает панель  диалога  фиксированного  размера  с рамкой и
      указанным заголовком. Объект TFileInputLine (на который ссылается
      поле  fileName) с заголовком inputName и с полем data установлен-
      ным в WildCard создается и вставляется.  Аргумент маршрута расши-
      ряется (если  необходимо)  для обеспечения объекта TFileList,  на
      который ссылается поле fileList.  Создается и вставляется  объект
      THistory с данным идентификатором протокола (ID). Также создается
      и вставляется список с вертикальной прокруткой.  В зависимости от
      флагов  aOptions устанавливаются присваивающие кнопки (см.  выбор
      опций   в   TFileDialog).   Создается   и   вставляется    объект
      TFileInfoPane.  Если не установлен флаг fdNoLoadDir, то файлы те-
      кущего каталога загружаются в список файлов.

           См. также: TDialog::TDialog, TFileInputLine::TFileInputLine,
      TFileList::TFileList,THistory::THistory

                              Метод destructor

           ~TFileDialog();

           Удаляет directory, затем уничтожает диалог.

                                 Метод build

           static TStreamable *build();

           Вызывается  для  создания  объектов  при некоторых ситуациях
      чтения из потока.

           См. также: TStreamableClass, ipstream::readData

                              Метод getFileName

           void getFileName(char *s);

           Считывает поле fileName->data и  расширяет  его  до  формата
      полного пути. Результат устанавливается в значение s.

                              Метод handleEvent

           virtual void handleEvent(TEvent& event);

           Вызывает TDialog::handleEvent,  а затем обрабатывает события
      cmFileOpen,   cmFileReplace   и  cmFileClear.  Все  они  вызывают
      endModal и  передают свои команды отображаемому объекту,  который
      открыл панель диалога.

           См. также: TDialog::handleEvent, TView::endModal

                                 Метод read

           virtual void *read(ipstream& os);

           Считывает из входного потока is.

           См. также: TStreamableClass, ipstream

                               Метод shutDown

           virtual void shutDown();

           Используется методом TObject::destroy для  обеспечения  кор-
      ректного  уничтожения  порожденных  и  родственных объектов.  Для
      обеспечения  соответствующего  установления  родственных  методов
      когда вызывается метод destroy,  метод shutDown во многих классах
      переопределяется.

           См. также: Глава 6, "Написание надежных программ".

                                 Метод valid

           virtual Boolean valid(ushort command);

           Возвращает True, если command есть cmValid, указывая на пра-
      вильную конструкцию.    В   противном   случае   вызывает   метод
      TDialog::valid. Если он возвращает True, то текущее fileName про-
      веряется на правильность.  Правильные имена возвращают True. Неп-
      равильные имена вызывают оконное сообщение "неправильное имя фай-
      ла" и возвращают False.

           См. также: TDialog::valid

                            Метод write

           virtual void write(opstream& os);

           Записывает в выходной поток os.

           См. также: TStreamableClass, opstream

                             Родственные функции
           ------------------------------------------------------------

           Некоторые функции-операции родственны TFileDialog, но не яв-
      ляются методами.





       TFileInfoPane                                            STDDLG.H
      -----------------------------------------------------------------
                               ЪДДДДДДДї
                               і TView і
                               АДДДВДДДЩ
                           ЙНННННННПННННННН»
                           є TFileInfoPane є
                           ИНННННННННННННННј

           TFileInfoPane - простой потоковый  отображаемый  объект  для
      отображения  информации  о файле в соответствующем окне файлового
      диалога.


                                    Поля
           ------------------------------------------------------------

                               Поле file_block

           TSearchRec file_block;

           Имя и атрибуты файла для этого инфоэлемента.  TSearchRec оп-
      ределена следующим образом:

             struct TSearchRec
             {
                  uchar attr;
                  long time;
                  long size;
                  char name[MAXFILE+MAXEXT-1];
             };

           где поля имеют свое обычное DOS файловое значение.

                            Методы TFileInfoPane
           ------------------------------------------------------------

                                 Конструктор

           TFileInfoPane(const TRect& bounds);

           Вызывает метод TView::TView(bounds) для  создания  файлового
      инфоэлемента с данными границами bounds.  Поле evBroadcast прини-
      мает значение eventMask.

                                 Метод build

           static TStreamable *build();

           Вызывается для создания  объектов  при  некоторых  ситуациях
      чтения из потока.

           См. также: TStreamableClass, ipstream::readData

                                 Метод draw

           virtual void draw();

           Отображает инфоэлемент файла с палитрой, принятой по умолча-
      нию. Отображаются размер файла и дата/время.

                              Метод getPalette

           virtual TPalette& getPalette() const;

           Возвращает палитру cpInfoPane="\x1E" принятую по умолчанию.

                              Метод handleEvent

           virtual void handleEvent(TEvent& event);

           Вызывает метод TView::handleEvent,  затем обрабатывает пере-
      даваемые cmFileFocused события (срабатывает, когда активизируется
      новый файл в списке файлов), отображая инфоэлемент файла.

           См. также: TView::handleEvent, команды TFileList

                                 Метод read

           virtual void *read(ipstream& os);

           Считывает из входного потока is.

           См. также: TStreamableClass, ipstream

                                 Метод write

           virtual void write(opstream& os);

           Записывает в выходной поток os.

           См. также: TStreamableClass, opstream


                             Родственные функции
           ------------------------------------------------------------

           Некоторые функции-операции родственны TFileInfoPane,  но  не
      являются методами.





       TFileInputLine                                           STDDLG.H
      -----------------------------------------------------------------

                                   ЪДДДДДДДї
                                   і TView і
                                   АДДДВДДДЩ
                                 ЪДДДДДБДДДДДДї
                                 і TInputLine і
                                 АДДДДДВДДДДДДЩ
                              ЙННННННННПННННННН»
                              є TFileInputLine є
                              ИННННННННННННННННј

           TFileInputLine реализует  специализированную  строку   ввода
      TInputLine  позволяющую редактировать имена файлов, включая необя-
      зательные маршруты и полные имена. Объект TFileInputLine ассоции-
      рован с файловой панелью диалога.

                            Методы TFileInputLine
           ------------------------------------------------------------

                                 Конструктор

           TFileInputLine(const TRect& bounds, short aMaxLen);

           Вызывает метод TInputLine::TInputLine(bounds,  aMaxLen)  для
      создания  строки  ввода файлов с данными границами и максимальной
      длиной maxLen. evBroadcast устанавливается в значение eventMask.

           См. также: TInputLine::TInputLine

                                 Метод build

           ctatic TStreamable *build();

           Вызывается  для  создания  объектов  при некоторых ситуациях
      чтения из потока.

           См. также: TStreamableClass, ipstream::readData

                              Метод handleEvent

           virtual void handleEvent(TEvent& event);

           Вызывает TInputLine::handleEvent, затем обрабатывает переда-
      ваемые cmFileFocused события копируя, введенное имя файла в стро-
      ку ввода поля data и перерисовывая объект. Если редактируемое имя
      является каталогом,  то текущее имя файла в  объекте  TFileDialog
      размещается первым.

           См. также: TInputLine::handleEvent

                                 Метод read

           virtual void *read(ipstream& os);

           Считывает из входного потока is.

           См. также: TStreamableClass, ipstream

                                 Метод write

           virtual void write(opstream& os);

           Записывает в выходной поток os.

           См. также: TStreamableClass, opstream

                             Родственные функции
           ------------------------------------------------------------

           Некоторые функции-операции  родственны TFileInfoPane,  но не
      являются методами.







       TFileList                                                STDDLG.H
      -----------------------------------------------------------------
                                ЪДДДДДДДДї
                                і TView  і
                                АДДДВДДДДЩ
                             ЪДДДДДДБДДДДДДї
                             і TListViewr  і
                             АДДДДДДВДДДДДДЩ
                               ЪДДДДБДДДДДї
                               і TListBox і
                               АДДДДВДДДДДЩ
                            ЪДДДДДДДБДДДДДДДДї
                            і TSortedListBox і
                            АДДДДДДДВДДДДДДДДЩ
                              ЙНННННПНННННН»
                              є TFileList  є
                              ИННННННННННННј
           TFileList реализует окно с  отсортированным  в  два  столбца
      списком  имен файлов (содержащихся в объекте TFileCollection). Вы
      можете выбрать имя файла с помощью "мыши" или клавиатуры. Доступ-
      на  вертикальная  прокрутка.  TFileList  наследует функции класса
      TSortedListBox.


                              Константы команд
           ------------------------------------------------------------

           Следующие общие команды посылаются TFileList:

                Таблица 15.4 Константы команд TFileList.

           ------------------------------------------------------------
           Константа      Значение            Назначение
           ------------------------------------------------------------
           cmFileFocused       102 Новый  файл  был   активизирован   в
                                   объекте  TFileList.
           cmFileDoubleClicked 103 Файл был выбран в объекте TFileList.
           ------------------------------------------------------------

                              Методы TFileList
           ------------------------------------------------------------

                                 Конструктор

           TFileList(const TRect& bounds, const char *aWildCard,
                     TScrollBar *aScrollBar);

           Вызывает конструктор TSortedListBox для создания  двухстолб-
      цового объекта  TFileList  c  данными  границами  bounds и,  если
      aScrollBar не  ноль,  строкой  вертикальной  прокрутки.  Аргумент
      aWildCard - это строка с дисководом, маршрутом, файлом и расшире-
      нием (стандартное имя файла DOS расширяется,  если  присутствует)
      из  которого вызовом readDirectory посылается коллекция файлов.

                              Метод destructor

           ~TFileList();

           Уничтожает список файлов.

                                 Метод build

           static TStreamable *build();

           Вызывается  для  создания  объектов  при некоторых ситуациях
      чтения из потока.

           См. также: TStreamableClass, ipstream::readData

                               Метод focusItem

           virtual void focusItem(short item);

           Активизирует данный  элемент  в   списке.   Вызывает   метод
      TSortedListBox::focusItem и посылает общее событие cmFileFocused.

           См. также: TSortedListBox::focusItem

                                Метод getText

           virtual void getText(char *dest, short item, short maxLen);

           Считывает объект TSearchRec в item и устанавливает имя файла
      в dest. "\\" присоединяется если имя есть каталог.

                              Метод handleEvent

           virtual void handleEvent(TEvent& event);

           Наследует обработчик событий TSortedListBox без модификаций,
      обрабатывает  все  нормальные  события  окна со списком:  выбор и
      подсветка имени файла "мышью" или клавиатурой.

           См. также: TSortedListBox::handleEvent,TListBox::handleEvent

                                 Метод list

           TFileCollection *list();

           Возвращает локальное  поле  items,   указатель   на   объект
      TFileCollection ассоциированный с данным списком файлов.

           См. также: TSortedListBox::list, TListBox::items

                                Метод newList

           void newList(TFileCollection *aList);

           Вызывает метод  TSortedListBox::newList  для уничтожения су-
      ществующего объекта  TFileCollection  ассоциированного  с  данным
      оконным списком и замены его коллекцией файлов, заданных парамет-
      ром aList.  Первый элемент в новой коллекции будет активизирован.

           См. также: TSortedListBox::newList

                                 Метод read

           virtual void *read(ipstream& os);

           Читает из входного потока is.

           См. также: TStreamableClass, ipstream

                             Метод readDirectory

           void readDirectory(const char *dir, const char *wildCard);
           void readDirectory(const char *wildCard);

           Расширяет строку wildCard для генерации коллекции файлов ас-
      социированного  с  данным списком файлов.  Первая форма позволяет
      раздельно передавать  относительный и абсолютный маршруты в аргу-
      менте dir.  Как '/' так и '\' могут быть использованы в  качестве
      разделителей подкаталогов (но '/' преобразуется в '\'). Результи-
      рующий объект TFileCollection (отсортированное множество объектов
      TSearchRec) присваивается  полю  items  (доступному  через  метод
      list). Если включено слишком много файлов,  то появляется предуп-
      реждающее сообщение.  readDirectory знает об атрибутах файла и не
      будет включать имена скрытых файлов.

           См. также: TFileList::TFileList

                                 Метод write

           virtual void write(opstream& os);

           Пишет в выходной поток os.

           См. также: TStreamableClass, opstream

                             Родственные функции
           ------------------------------------------------------------

           Некоторые функции-операции родственны TFileList, но не явля-
      ются методами.





       TSortedListBox                                           STDDLG.H
      -----------------------------------------------------------------
                                 ЪДДДДДДДДДДї
                                 і TListBox і
                                 АДДДДДВДДДДЩ
                              ЙННННННННПННННННН»
                              є TSortedListBox є
                              ИННННННННННННННННј

           TSortedListBox - специализированный потомок класса TListBox,
      располагающий элементы в отсортированную  последовательность. Это
      используется  как база для других классов оконных списков,  таких
      как TFileList.

                            Методы TSortedListBox
           ------------------------------------------------------------

                                 Конструктор

           TFileList(const TRect& bounds, ushort aNumCols,
                     TScrollBar *aScrollBar);

           Вызывает метод     TListBox::TListBox(bounds,      aNumCols,
      aScrollBar) для создания оконного списка данного размера,  с дан-
      ным количеством столбцов  и  вертикальной  прокруткой  элементов.
      shiftState устанавливается в 0 и курсор устанавливается на первый
      элемент.

                                Метод getKey

           virtual void *getKey(const char *s);       "частный"

           Вы должны переопределять  этот  метод  во  всех  порожденных
      классах  для  обеспечения  средств  возвращения  ключа для данной
      строки s.  Это будет зависеть от стратегии сортировки, принятой в
      ваших порожденных классах. По умолчанию getKey возвращает s.

                              Метод handleEvent

           virtual void handleEvent(TEvent& event);

           Вызывает TListBox::handleEvent,  затем  обрабатывает события
      специальных клавиш и события от "мыши",  используемые для  выбора
      элементов в списке.

           См. также: TListBox::handleEvent

                                 Метод list

           TSortedCollection *list();

           Возвращает указатель  на объект TSortedCollection ассоцииро-
      ванный со списком окна сортировки.  Это дает доступ к  локальному
      полю items,  указателю элементов подлежащих размещению в списке и
      выбору. Порожденные классы окон сортировки со списком обычно  пе-
      реопределяют list  для  обеспечения указателя на объекты классов,
      порожденных от TSortedCollection.  Например TFileList::list возв-
      ращает указатель на объект TFileCollection,  определяемый методом
      TFileList::items.

           См. также: TSortedListBox::list, TListBox::list, TFileList::list

                                Метод newList

           void newList(TSortedCollection *aList);

           Вызывает   TListBox::newList   для   удаления  существующего
      TSortedCollection объекта с данным  оконным списком и замены  его
      коллекцией данных в aList. Первый элемент в коллекции будет акти-
      визирован.

           См. также: TListBox::newList                        ГЛАВА 16. ГЛОБАЛЬНЫЙ СПРАВОЧНИК
      -----------------------------------------------------------------

           Эта глава описывает все элементы Turbo  Vision,  которые  не
      являются частью иерархии стандартных объектов Turbo Vision.  Эле-
      менты этой главы включают typedefs,  enumerations, константы, пе-
      ременные  и  функции,  определенные  в  заголовочных файлах Turbo
      Vision.

           Стандартные классы  описаны в  главе 13;  классы редактора и
      диалога описаны в 14 и 15 главах соответственно.

           Типичный элемент данной главы выглядит так:


       Функция sample                                           SAMPLE.H
      -----------------------------------------------------------------

           Описание: void sample(int arg);

           Функция: Sample считывает аргумент int и выполняет  ряд  по-
      лезных функций.

           См. также: родственные классы, функции и т.д.



       Константы  apXXXX                                           APP.H
      -----------------------------------------------------------------

           Значения: Определены следующие константы палитры:

                      Таблица 16.1 Константы палитры.

           ------------------------------------------------------------
           Константа     Значение  Назначение
           ------------------------------------------------------------
           apColor          0      Палитра для цветного монитора
           apBlackWhite     1      Палитра для жидкокристаллического
                                   монитора
           apMonochrome     2      Палитра для монохромного монитора
           ------------------------------------------------------------

           Функция:   Константы,  начинающиеся  с  ap, используются для
      указания того, с какой из трех стандартных палитр будет  работать
      программа, созданная с помощью Turbo Vision.  Три палитры исполь-
      зуются для цветного, черно-белого и монохромного дисплеев.



       Boolean enumeration                                      TTYPES.H
      -----------------------------------------------------------------

           Описание: enum Boolean ( False, True );

           Функция: Присваивает  int  значение 0 и 1 соответственно для
      False и True.  Заметьте,  что проверки if (testfunc() ) {...} и (
      True == testfunc() ) {...} могут быть не эквивалентны.



       BUILDER typedef                                        TOBJSTRM.H
      -----------------------------------------------------------------

           Описание: typedef TStreamable*(*BUILDER)();

           Функция: Каждый потоковый класс имеет  функцию "построителя"
      типа BUILDER. Построитель обеспечивает память корректного размера
      и инициализирует указатели vtable,  когда объекты созданы,  через
      некоторые операции  чтения из потока.  Функция read из потокового
      класса читает данные  из  потока  в  объекты-заготовки  созданные
      "построителем".

           См. также: TView::build, TStreamable



       Константы bfXXXX                                        DIALOGS.H
      -----------------------------------------------------------------

           Значения: определены следующие флаги кнопки:

                       Таблица 16.2 Флаги кнопки.

           ------------------------------------------------------------
           Константа     Значение  Назначение
           ------------------------------------------------------------
           bfNormal        0x00    Обычная кнопка
           bfDefault       0x01    Кнопка, используемая по умолчанию
           bfLeftJust      0x02    Метка кнопки выровнена влево
           ------------------------------------------------------------

           Функция:   Комбинация  этих  значений  передается  в  aFlags
      конструктора  TButton  для  определения  вновь  созданного   типа
      кнопки.   bfNormal  указывает  на  обычную  (не  назначенную   по
      умолчанию)  кнопку.   bfDefault   указывает  что,  кнопка   будет
      кнопкой по умолчанию. Программист обязан обеспечить, чтобы кнопка
      была   единственной   умалчиваемой  кнопкой  в  TGroup.  Значение
      bfLeftJust может быть добавлено к bfDefault или bfNormal  и  воз-
      действует  на  позицию  отображаемого текста внутри кнопки:  если
      сброшено, то метка центрируется;  если установлено,  то метка вы-
      равнивается влево.

           См. также:        TButton::flags,      TButton::makeDefault,
      TButton::draw



       ccAppFunc typedef                                        TTYPES.H
      -----------------------------------------------------------------

           Описание:  typedef void (*ccAppFunc)(void *item, void *arg);

           Функция: Используется  в функциях-итераторах для указания на
      функцию и аргументы для обработки элементов коллекции.

           См. также: TNSCollection::forEach, ccTestFunc



       ccIndex typedef                                          TTYPES.H
      -----------------------------------------------------------------

           Описание: typedef int ccIndex;

           Функция: Используется  для  индексации  и подсчета элементов
      коллекции.

           См. также: TNSCollection::at



       константа ccNotFound                                     TTYPES.H
      -----------------------------------------------------------------

           Описание: const ccNotFound = -1

           Функция: Значение  ccIndex возвращается различными функциями
      поиска в коллекции, если поиск не удался.

           См. также: TNSCollection::indexOf



       ccTestFunc typedef                                       TTYPES.H
      -----------------------------------------------------------------

           Описание:  typedef Boolean (*ccTestFunc)( void *item,
                                       void *arg );

           Функция: Используется  в функциях-итераторах для указания на
      функцию и аргументы для обработки элементов коллекции.

           См. также: TNSCollection::firstThat,TNSCollection::lastThat,
      ccAppFunc




       Константы cmXXXX                                          VIEWS.H
      -----------------------------------------------------------------

           Функция: Эти константы представляют предопределенные команды
      Turbo Vision.  Они  передаются  в  поля  TEvent::command  событий
      evMessage(evCommand    и   evBroadcast)   и   заставляют   методы
      handleEvent стандартных объектов Turbo Vision выполнять различные
      задачи.

           Turbo Vision резервирует значения констант от 0 до 99  и  от
      256 до 999 для своих целей.  Обработчики событий стандартных объ-
      ектов Turbo Vision реагируют на эти  предопределенные  константы.
      Программисты могут определить свои собственные константы в диапа-
      зонах от 100 до 255 и  от 1000 до 65535 без конфликтов  с предоп-
      ределенными командами.

           Значения: Следующие  стандартные  команды определены в Turbo
      Vision и используются стандартными объектами Turbo Vision:



                      Таблица 16.3 Коды стандартных команд

      -----------------------------------------------------------------
      Команда Значение Назначение
      -----------------------------------------------------------------

       cmValid   0    Передается  в    TView::valid   для      проверки
                      вновь созданных образцов отображаемых объектов.

       cmQuit    1    Заставляет     TProgram::handleEvent     вызывать
                      endModal(cmQuit),  завершая   программу.   Строка
                      состояния  или  одно  из  меню  обычно   содержат
                      элемент, который  отображает клавишу kbAltX в ко-
                      манду cmQuit.

       cmError   2    Не  обрабатывается никаким  объектом.  Может  ис-
                      пользоваться  для  представления  нереализованных
                      или неподдерживаемых команд.

       cmMenu    3    Заставляет метод TMenuView::handleEvent  вызывать
                      execView для выполнения выбора пункта меню, в ре-
                      зультате чего может посылаться новая  команда  (с
                      помощью putEvent). Строка состояния обычно содер-
                      жит элемент,  который отображает клавишу kbF10  в
                      команду cmMenu.

       cmClose   4    Обрабатывается  TWindow::handleEvent,  если  поле
                      infoPtr события установлено  в  значение  0,  или
                      указывает  на окно.  Если окно модальное (как мо-
                      дальный диалог),  то посредством putEvent посыла-
                      ется  evCommand со значением cmCancel.  Если окно
                      немодальное,  то вызывается метод close при усло-
                      вии,  что окно поддерживает закрытие (смотри флаг
                      wfClose). нажатие на кнопку закрытия окна переда-
                      ет событие evCommand с сommand = cmClose и указа-
                      тель infoPtr,  который указывает на окно.  Строка
                      состояния  или  одно из меню обычно содержит эле-
                      мент, который отображает клавишу kbAltF3 в коман-
                      ду cmClose.

       cmZoom    5    Заставляет  TWindow::handleEvent  вызывать  метод
                      TWindow::zoom, если окно поддерживает возможность
                      распахивания (смотри  флаг  wfZoom)  и  если поле
                      infoPtr записи события установлен в 0 или  указы-
                      вает на окно.  Нажатие кнопки мыши на кнопке рас-
                      пахивания окна или двойное нажатие в строке заго-
                      ловка окна передает событие evCommand с command =
                      cmZoom,  а infoPtr указывает на окно. Строка сос-
                      тояния  или одно из меню обычно содержит элемент,
                      который отображает клавишу kbF5 в команду cmZoom.

       cmResize  6    Заставляет  TWindow::handleEvent  вызывать  метод
                      TView::dragView,    если    окно     поддерживает
                      изменение  размеров   (смотри  флаги   wfMove   и
                      wfGrow). Строка состояния или одно из меню обычно
                      содержит элемент,   который   отображает  клавишу
                      kbCtrlF5 в команду cmResize.

       cmNext    7    Заставляет     TDeskTop::handleEvent     сдвигать
                      последнее окно  в  оперативном поле экрана на пе-
                      редний план.  Строка состояния или одно  из  меню
                      обычно содержит элемент,  который отображает кла-
                      вишу kbF6 в команду cmNext.

       cmPrev    8    Заставляет TDeskTop::handleEvent сдвигать  первое
                      окно оперативной области  экрана на самый  задний
                      план.  Строка состояния  или одно из меню  обычно
                      содержит элемент,   который   отображает  клавишу
                      kbShiftF6 в команду cmPrev.
      -----------------------------------------------------------------

           Следующие стандартные команды используются  для  определения
      поведения объектов панели диалога по умолчанию:



                Таблица 16.4 Стандартные команды панели диалога.

      -----------------------------------------------------------------
      Команда    Значение  Назначение
      -----------------------------------------------------------------

       cmOK        10      Была нажата кнопка OK

       cmCancel    11      Панель диалога   была   отменена  кнопкой
                           Cancel, кнопкой закрытия или клавишей Esc

       cmYes       12      Была нажата кнопка Yes

       cmNo        13      Была нажата кнопка No

       cmDefault   14      Была нажата кнопка, назначенная по  умолча-
                           нию
      -----------------------------------------------------------------

           События  с   командами  cmOK,   cmCancel,  cmYes   или  cmNo
      завершают  модальный  диалог  TDialog::handleEvent  и  возвращают
      значение  команды  (вызывая  endModal).   Модальный диалог обычно
      содержит по крайней мере одну кнопку TButton с одним из этих зна-
      чений команд.  Метод  TDialog::handleEvent будет посылать команду
      событие cmCancel в ответ на событие от клавиатуры kbEsc.

           Команда cmDefault заставляет  TButton::handleEvent  для  ис-
      пользуемой по умолчанию кнопки (см.  флаг bfDefault) моделировать
      нажатие кнопки.  Метод TDialog::handleEvent в  ответ  на  событие
      клавиатуры kbEnter будет посылать событие команды cmDefault.

           Определены следующие  стандартные  команды для использования
      стандартными отображаемыми объектами и программами редактора:



            Таблица 16.5 Стандартные команды отображаемых объектов.

      -----------------------------------------------------------------
      Команда         Значение    Назначение
      -----------------------------------------------------------------
      cmCut               20  Коды команд редактора
      cmCopy              21
      cmPaste             22
      cmUndo              23
      cmClear             24
      cmTile              25
      cmCasade            26

      cmReceivedFocus     50  TView::setState    использует     функцию
      cmReleasedFocus     51  message для передачи события  evBroadcast
                              с  одним   из  этих   значений  в    свой
                              TView::owner,   как   только    sfFocused
                              изменяется. infoPtr события  указывает на
                              сам отображаемый объект.  Это информирует
                              любой равный   отображаемый  объект,  что
                              отображаемый  объект  стал  или  перестал
                              быть активным, и что они должны корректи-
                              роваться соответственно.  Объект  Tlabel,
                              например, реагирует на эти команды, вклю-
                              чая или выключая свою подсветку.

      cmCommandSetChanged 52  Метод  TProgram::idle  посылает   событие
                              evBroadcast,  как только он обнаружит из-
                              менение в текущем наборе  команд (вызывая
                              методы   enableCommands,  desableCommands
                              или setCommands для TView). Общее сообще-
                              ние   cmCommandSetChanged   посылается  в
                              handleEvent каждого отображаемого объекта
                              иерархии (если только их eventMask специ-
                              фически     не     маскируют      события
                              evBroadcast). Если изменения в наборе ко-
                              манд затрагивают  появление отображаемого
                              объекта, он   должен    реагировать    на
                              cmCommandSetChanged  своей  перерисовкой.
                              Объекты TButton, TMenuView и TStatusLine,
                              например, реагируют на эту команду, отоб-
                              ражаясь заново.

      cmScrollBarChanged  53  TScrollBar использует функцию message для
      cmScrollBarClicked  54  передачи события  evBroadcast  с одним из
                              этих значений       своему      владельцу
                              TView::owner,  как только  обнаруживается
                              отметка "мышью" на строке прокрутки. Ука-
                              затель infoPtr события указывает на поло-
                              су  прокрутки.  Общие сообщения создаются
                              любыми равными  отображаемыми  объектами,
                              управляемыми  строкой  прокрутки,  такими
                              как объекты TScroller и TListViewer.

      cmSelectWindowNum   55  Заставляет  метод   TWiondow::handleEvent
                              вызывать метод     TView::select,    если
                              infoInt  записи   события   соответствует
                              TWindow::number.    TProgram::handleEvent
                              реагирует на события от клавиатуры от Alt
                              -1     до    Alt-9    общим    сообщением
                              cmSelectWindowNum с infoInt от 1 до 9.

      cmListItemSelected  56  Посылает  сообщение  TListViewer  о  том,
                              что элемент выбран.

      cmRecordHistory     60  Заставляет  объект  THistory   записывать
                              текущее содержимое  объекта   TInputLine.
                              TButton посылает                сообщение
                              cmRecordHistory своему  владельцу,  когда
                              он выбран, в результате, заставляя сохра-
                              нять все объекты THistory в панели диало-
                              га.
      -----------------------------------------------------------------

           См. также: TView::handleEvent, TCommandSet




       функция cstrlen                                            UTIL.H
      -----------------------------------------------------------------

           Описание: int cstrlen( const char *s );

           Функция: Возвращает длину строки s,  где s - это управляющая
      строка,  использующая символы тильда ('~') для указания  символов
      оперативных  клавиш.  Символы тильда исключаются из длины строки,
      поскольку они не будут появляться на экране. Например, для строки
      '~B~roccoly', cstrlen возвращает 8.

           См. также: moveCStr




       функция ctrlToArrow                                        UTIL.H
      -----------------------------------------------------------------

           Описание: ushort ctrlToArrow( ushort keyCode);

           Функция: Преобразует  управляющие  WordStar-совместимые коды
      клавиатуры в соответствующие коды клавиш управления курсором. Ес-
      ли младший байт keyCode соответствует одному из значений управля-
      ющих  клавиш,  описанных в Таблице 16.6,  результатом будет соот-
      ветствующая константа kbXXXX. В противном случае, keyCode возвра-
      щается неизмененным.



              Таблица 16.6 Преобразование управляющих клавиш.

           ------------------------------------------------------
             Комбинация клавиш     Код          Результат
           ------------------------------------------------------
                    Ctrl-A         0x01          kbHome
                    Ctrl-D         0x04          kbRight
                    Ctrl-E         0x05          kbUp
                    Ctrl-F         0x06          kbEnd
                    Ctrl-G         0x07          kbDel
                    Ctrl-S         0x13          kbLeft
                    Ctrl-V         0x16          kbIns
                    Ctrl-X         0x18          kbDown
           ------------------------------------------------------



       DEFAULT_SAFETY_POOL_SIZE                                BUFFERS.H
      -----------------------------------------------------------------

           Описание: const DEFAULT_SAFETY_POOL_SIZE = 4096

           Функция: Содержит  инициализированный  для  умолчания размер
      резервного буфера в байтах.  Вы можете изменить это значение  ре-
      дактированием описания.      Если      вы      вызовете     метод
      TVMemMgr::resizeSafetyPool без аргумента размера, то будет приня-
      то значение, назначенное по умолчанию.

           См. также: TVMemMgr::resizeSafetyPool



       константы dmXXXX                                          VIEWS.H
      -----------------------------------------------------------------

           Значения: Биты dragMode определены следующим образом:

                     Рис. 16.1 Флаги режима dragMode.

                    ЪДД dragMode Дї
                    і             і
               старший бит   младший бит

                    ЪДВДВДВДДДДДДДДДДД dmLimitAll = 0xF0
                   ЙПСПСПСПСНСНСНСН»
                   ИСПСПСПСПНПНПСПСј
                    і і і і     і АДДД dmDragMove = ox01
                    і і і і     АДДДДД dmDragGrow = 0x02
                    і і і АДДДДДДДДДДД dmLimitLoX = 0x10
                    і і АДДДДДДДДДДДДД dmLimitLoY = 0x20
                    і АДДДДДДДДДДДДДДД dmLimitHiX = 0x40
                    АДДДДДДДДДДДДДДДДД dmLimitHiY = 0x80

           Функция:   Эти   константы   используются   для   компоновки
      параметра mode метода TView::dragView.  Они указывают,  разрешены
      ли  движение  и/или  изменение  размера  и  как  интерпретировать
      параметр limits.

           Константы dragMode определены следующим образом:

                  Таблица 16.7 Константы режима dragMode.

           ------------------------------------------------------------
           Константа    Назначение
           ------------------------------------------------------------
           dmDragMove   Позволяет отображаемому объекту перемещаться.

           dmDragGrow   Позволяет отображаемому объекту менять размер.

           dmLimitLoX   Левая  сторона  отображаемого объекта не  может
                        выходить за limits.

           dmLimitLoY   Верхняя  сторона отображаемого объекта не может
                        выходить за limits.

           dmLimitHiX   Правая  сторона  отображаемого объекта не может
                        выходить за limits.

           dmLimitHiY   Нижняя  сторона  отображаемого объекта не может
                        выходить за limits.

           dmLimitAll   Никакая  часть  отображаемого объекта не  может
                        выходить за пределы limits.
           ------------------------------------------------------------

           Поле dragMode объекта TView может содержать любую комбинацию
      флагов dmLimitXX.  По умолчанию конструктор  TView  устанавливает
      это поле в значение dmLimitLoY.  Поле dragMode используется с по-
      токами только в методе TWindow::dragView, когда окно передвигает-
      ся или изменяет размер.




       константа EOS                                            TTYPES.H
      -----------------------------------------------------------------

           Описание: const char EOS = '\0';

           Функция: Синоним нулевого символа конца строки.




       константа eventQSize                                     CONFIG.H
      -----------------------------------------------------------------

           Описание: const eventQSize = 16;

           Функция: Задает размер очереди событий.



       константы  evXXXX                                        SYSTEM.H
      -----------------------------------------------------------------

           Функция: Эти мнемоники обозначают типы событий для  обработ-
      чиков событий Turbo Vision.  Константы evXXXX используются в нес-
      кольких местах: в поле event события, в поле eventMask отображае-
      мого объекта и в переменных positionalEvents и focusedEvents.

           Значения: Следующие значения флагов событий обозначают стан-
      дартные типы событий:



                     Таблица 16.8 Флаги стандартных событий

           ------------------------------------------------------------
           Константа     Значение         Смысл
           ------------------------------------------------------------
           evMouseDown   0x0001   Нажата кнопка "мыши"
           evMouseUp     0x0002   Отпущена кнопка "мыши"
           evMouseMove   0x0004   "Мышь" изменила положение
           evMouseAuto   0x0008   Периодическое  событие  до  тех  пор,
                                  пока нажата кнопка "мыши"
           evKeyDown     0x0010   Нажата клавиша
           evCommand     0x0100   Командное событие
           evBroadcast   0x0200   Общее событие
           ------------------------------------------------------------

           Следующие константы  могут  использоваться  для маскирования
      типов событий:

                  Таблица 16.9 Маски стандартных событий.

           ------------------------------------------------------------
           Константа     Значение         Смысл
           ------------------------------------------------------------
           evNothing     0x0000    Событие уже обработано
           evMouse       0x000F    Событие от мыши
           evKeyboard    0x0010    Событие от клавиатуры
           evMessage     0xFF00    Событие сообщение  (команда, общее
                                   сообщение или определено
                                   пользователем).
           ------------------------------------------------------------

           Биты маски события определены следующим образом:


           ЪДДДДДД Флаги события ДДДДДДДДї
           і                             і
      старший бит                   младший бит

           ЪДВДВДВДВДВДВДВДДДДДДДДДДДДДДДДДДД> evMessage   = 0xFF00
           і і і і і і і і       ЪДДДДДДДДДДД> evKeyboard  = 0x0010
           і і і і і і і і       і ЪДВДВДВДДД> evMouse     = 0x000F
          ЙПСПСПСПСПСПСПСПСНСНСНСПСПСПСПСП»
          ИНПНПНПНПНПНПСПСПНПНПНПСПСПСПСПСј
                       і і       і і і і АДДД> evMouseDown = 0x0001
                       і і       і і і АДДДДД> evMouseUp   = 0x0002
                       і і       і і АДДДДДДД> evMouseMove = 0x0004
                       і і       і АДДДДДДДДД> evMouseAuto = 0x0008
                       і і       АДДДДДДДДДДД> evKeyDown   = 0x0010
                       і АДДДДДДДДДДДДДДДДДДД> evCommand   = 0x0100
                       АДДДДДДДДДДДДДДДДДДДДД> evBroadcast = 0x0200

                 Рис. 16.2 Биты маски события.

           Маски стандартных  событий могут быть использованы для быст-
      рого определения того,  принадлежит ли событие конкретному классу
      событий. Например:

           if ( (event.what & evMouse) != 0 ) doMouseEvent();

           См.   также:     TEvent,   TView::eventMask,    getKeyEvent,
      getMouseEvent, handleEvent, positionalEvents, focusedEvents.



       константа focusedEvents                                   VIEWS.H
      -----------------------------------------------------------------

           Описание: focusedEvents = evKeyboard | evCommand;

           Функция: Определяет классы событий, которые являются фокуси-
      руемыми.  Значения focusedEvents и positionalEvents  используются
      методом  TGroup::handleEvent  для определения того,  как передать
      событие  подобъектам  группы.  Если  класс  события  не  содержит
      focusedEvents  или positionalEvents,  то оно понимается как общее
      событие.

           См. также: positionalEvents, TGroup::handleEvent, TEvent,
      evXXXX



       функция genRefs                                          GENINC.H
      -----------------------------------------------------------------

           Описание: char genRefs();

           Функция:   genRefs  используется  GENINC.CPP  для  генерации
      ассемблерного сдвига для полей многих классов. GENINC.EXE создает
      файл TVWRITE.INC  необходимый  для  построения  TV.LIB.   Функция
      genRefs является дружественной функцией для TDrawBuffer, TEditor,
      TEventQueue, TTerminal, TView и TGroup. Она будет интересна толь-
      ко опытным пользователям,  которые разрабатывают свои собственные
      Turbo Vision библиотеки.



       функция getAltChar                                         UTIL.H
      -----------------------------------------------------------------

           Описание: char getAltChar( ushort keyCode);

           Функция: Возвращает символ сh, для которого Alt-сh вырабаты-
      вает двухбайтовый скэн-код,  заданный в  аргументе  keyCode.  Эта
      функция возвращает значение, обратное к getAltCode.

           См. также: getAltCode.



       функция getAltCode                                         UTIL.H
      -----------------------------------------------------------------

           Описание: ushort getAltCode( char ch );

           Функция: Возвращает двухбайтовый  скан код ( код клавиши ),
      соответствующий Alt-сh. Эта функция делает обратное к getAltChar
      отображение.

           См. также: getAltChar.


       константы gfXXXX                                          VIEWS.H
      -----------------------------------------------------------------

           Функция: Эти  мнемоники  используются  для  установки  полей
      growMode во всех TView и порожденных объектах.  Биты, установлен-
      ные в growMode,  определяют,  как отображаемый объект будет изме-
      няться в зависимости от изменений размера его владельца.

           Значения: Биты growMode определены следующим образом:

                    ЪДД growMode Дї
                    і             і
               cтарший бит    младший бит

                            ЪДВДВДВДДД gfGrowAll = 0x0F
                   ЙНСНСНСНСПСПСПСП»
                   ИСПНПСПСПСПСПСПСј
                    АДВДЩ і і і і АДДД gfGrowLoX = 0x01
                      і   і і і АДДДДД gfGrowLoY = 0x02
             Неопределены і і АДДДДДДД gfGrowHiX = 0x04
                          і АДДДДДДДДД gfGrowHiY = 0x08
                          АДДДДДДДДДДД gfGrowRel = 0x10

                      Рис. 16.3 Биты режима growMode.

             Таблица 16.10 Определения флага режима growMode.

      -----------------------------------------------------------------
      Константа     Назначение
      -----------------------------------------------------------------
       gfGrowLoX    Если установлен,  то  левая  сторона  отображаемого
                    объекта будет  находиться  на  одном  расстоянии от
                    правой стороны владельца.  Если не  установлен,  то
                    указанное движение происходить не будет.

       gfGrowLoY    Если   установлен,  то  верхняя  сторона отображае-
                    мого объекта будет находиться на  одном  расстоянии
                    от нижней стороны владельца.

       gfGrowHiX    Если установлен, то  правая  сторона  отображаемого
                    объекта будет находиться  на  одном  расстоянии  от
                    правой стороны владельца.

       gfGrowHiY    Если установлен,  то  нижняя  сторона отображаемого
                    объекта будет находиться  на  одном  расстоянии  от
                    нижней стороны владельца.

       gfGrowAll    Если  установлен,  то  отображаемый  объект   будет
                    сдвигаться вместе с правым нижним  углом  его  вла-
                    дельца.

       gfGrowRel    Для использования  с  объектами  TWindow,   которые
                    находятся в  рабочей  области экрана.  Отображаемый
                    объект будет изменять размер  относительно  размера
                    владельца. Окно будет обрабатываться соответственно
                    размеру владельца, даже когда происходит переключе-
                    ние между режимами 25 и 43/50 строк.
      -----------------------------------------------------------------

           Заметим, что LoX= левая сторона;   LoY =  верхняя   сторона;
      HiX = правая сторона; HiY = нижняя сторона.

           См. также: TView::growMode



       константы hcXXXX                                          VIEWS.H
      -----------------------------------------------------------------

           Значения: Определены  следующие константы контекста подсказ-
      ки:

               Таблица 16.11 Константы контекста подсказки.

           -------------------------------------------
           Константа    Значение  Назначение
           -------------------------------------------
           hcNoContext     0      Контекст не задан
           hcDragging      1      Объект  перемещается
           -------------------------------------------

           Функция: Значение TView::helpCtx по умолчанию - hcNoContext,
      которое  указывает,  что  для отображаемого объекта нет контекста
      подсказки.  TView::getHelpCtx возвращает hcDragging,  как  только
      отображаемый объект становится перемещаемым (это указывается сос-
      тоянием флага sfDragging).

           Turbo Vision резервирует для контекста подсказки значения от
      0 до 999. Программисты могут определять свои константы в диапазо-
      не от 1000 до 65535.

        См. также:  TView::helpCtx, TStatusLine::update.




       функция historyAdd                                         UTIL.H
      -----------------------------------------------------------------

           Описание: void historyAdd( uchar id, const char *str);

           Функция: Добавляет строку str в протокол,  указываемый с по-
      мощью идентификатора id.




       функция historyCount                                       UTIL.H
      -----------------------------------------------------------------

           Описание: void historyCount( uchar id );

           Функция: Возвращает количество строк в протоколе,  соответс-
      твующее номеру ID.



       функция historyStr                                         UTIL.H
      -----------------------------------------------------------------

           Описание: const char *historyStr( uchar id, int index);

           Функция: Возвращает строку в протоколе в позиции index,  со-
      ответствующую номеру ID.



       функция inputBox                                         MSGBOX.H
      -----------------------------------------------------------------

           Описание:  ushort  inputBox( const  char *title, const  char
                                        *aLabel, char *s, uchar limit);

           Функция: отображает окно ввода  с данным заголовком и  типом
      элементов  ввода.  Принимает  ввод  в  строку  s  с  максимальным
      размером limit символов.

           См. также: inputBoxRect




       функция inputBoxRect                                     MSGBOX.H
      -----------------------------------------------------------------

           Описание: ushort  inputBoxRect( const  TRect &bounds,  const
                                  char *aLabel, char *s, uchar limit );

           Функция:  Отображает   окно  ввода   с  данными    границами
      заголовком и типом элементов ввода.  Принимает ввод в строку s  с
      максимальным размером limit символов.

           См. также: inputBox



       константы kbXXXX                                          TKEYS.H
      -----------------------------------------------------------------

           Значения: Следующие значения определяют состояние клавиатуры
      и  могут быть использованы при проверке регистров Shift клавиату-
      ры, которое находится в байте с абсолютным адресом 0x40:0x17.



                Таблица 16.12 Состояние клавиатуры и маски Shift

      ------------------------------------------------------------------
       Константа     Значение    Назначение
      ------------------------------------------------------------------
       kbRightShift   0x0001     Равно 1, если правая клавиша Shift
                                 нажата

       kbLeftShift    0x0002     Равно 1, если левая клавиша Shift
                                 нажата

       kbCtrlShift    0x0004     Равно 1, если нажата клавиша Ctrl

       kbAltShift     0x0008     Равно 1, если нажата клавиша Alt
       kbScrollState  0x0010     Равно 1, если клавиатура
                                 находится в состоянии Scroll Lock

       kbNumState     0x0020     Равно 1, если клавиатура
                                 находится в состоянии Num Lock

       kbCapsState    0x0040     Равно 1, если клавиатура
                                 находится в состоянии Caps Lock

       kbInsState     0x0080     Равно 1, если клавиатура в
                                 состоянии Ins Lock
      -----------------------------------------------------------------

           Следующие значения определяют  скэн-коды клавиатуры  и могут
      использоваться при проверке поля TEvent::keyCode,  поля evKeyDown
      события:

                       Таблица 16.13 Коды Alt-буква.

           -----------------------------------------------------------
             Константа    Значение           Константа    Значение
           -----------------------------------------------------------
             kbAltA      0x1E00              kbAltN      0x3100
             kbAltB      0x3000              kbAltO      0x1800
             kbAltC      0x2E00              kbAltP      0x1900
             kbAltD      0x2000              kbAltQ      0x1000
             kbAltE      0x1200              kbAltR      0x1300
             kbAltF      0x2100              kbAltS      0x1F00
             kbAltG      0x2200              kbAltT      0x1400
             kbAltH      0x2300              kbAltU      0x1600
             kbAltI      0x1700              kbAltV      0x2F00
             kbAltJ      0x2400              kbAltW      0x1100
             kbAltK      0x2500              kbAltX      0x2D00
             kbAltL      0x2600              kbAltY      0x1500
             kbAltM      0x3200              kbAltZ      0x2C00
           -----------------------------------------------------------

                  Таблица 16.14 Коды специальных клавиш.
           -----------------------------------------------------------
             Константа    Значение           Константа    Значение
           -----------------------------------------------------------
             kbAltEqual  0x8300              kbEnd       0x4F00
             kbAltMinus  0x8200              kbEnter     0x1C0D
             kbAltSpace  0x0200              kbEsc       0x011B
             kbBack      0x0E08              kbGrayMinus 0x4A2D
             kbCtrlBack  0x0E7F              kbHome      0x4700
             kbCtrlDel   0x0600              kbIns       0x5200
             kbCtrlEnd   0x7500              kbLeft      0x4B00
             kbCtrlEnter 0x1C0A              kbNoKey     0x0000
             kbCtrlHome  0x7700              kbPgDn      0x5100
             kbCtrlIns   0x0400              kbPgUp      0x4900
             kbCtrlLeft  0x7300              kbrayPlus   0x4E2B
             kbCtrlPgDn  0x7600              kbRight     0x4D00
             kbCtrlPgUp  0x8400              kbShiftDel  0x0700
             kbCtrlPrtSc 0x7200              kbShiftIns  0x0500
             kbCtrlRight 0x7400              kbShiftTab  0x0F00
             kbDel       0x5300              kbTab       0x0F09
             kbDown      0x5000              kbUp        0x4800

                       Таблица 16.15 Коды Alt-число.
           -----------------------------------------------------------
             Константа    Значение           Константа    Значение
           -----------------------------------------------------------
             kbAlt1      0x7800              kbAlt6      0x7D00
             kbAlt2      0x7900              kbAlt7      0x7E00
             kbAlt3      0x7A00              kbAlt8      0x7F00
             kbAlt4      0x7B00              kbAlt9      0x8000
             kbAlt5      0x7C00              kbAlt0      0x8100
           -----------------------------------------------------------

                 Таблица 16.16 Коды функциональных клавиш.
           -----------------------------------------------------------
             Константа    Значение           Константа    Значение
           -----------------------------------------------------------
             kbF1        0x3B00              kbF6        0x4000
             kbF2        0x3C00              kbF7        0x4100
             kbF3        0x3D00              kbF8        0x4200
             kbF4        0x3E00              kbF9        0x4300
             kbF5        0x3F00              kbF0        0x4400
           -----------------------------------------------------------

             Таблица 16.17  Коды Shift-функциональная клавиша.
           -----------------------------------------------------------
             Константа   Значение            Константа   Значение
           -----------------------------------------------------------
             kbShiftF1   0x5400              kbShiftF6   0x5900
             kbShiftF2   0x5500              kbShiftF7   0x5A00
             kbShiftF3   0x5600              kbShiftF8   0x5B00
             kbShiftF4   0x5700              kbShiftF9   0x5C00
             kbShiftF5   0x5800              kbShiftF0   0x5D00
           -----------------------------------------------------------

              Таблица 16.18 Коды Ctrl-функциональная клавиша.
           -----------------------------------------------------------
             Константа   Значение            Константа   Значение
           -----------------------------------------------------------
             kbCtrlF1    0x5E00              kbCtrlF6    0x6300
             kbCtrlF2    0x5F00              kbCtrlF7    0x6400
             kbCtrlF3    0x6000              kbCtrlF8    0x6500
             kbCtrlF4    0x6100              kbCtrlF9    0x6600
             kbCtrlF5    0x6200              kbCtrlF0    0x6700
           -----------------------------------------------------------

              Таблица 16.19 Коды Alt-функциональная клавиша.
           -----------------------------------------------------------
             Константа    Значение           Константа    Значение
           -----------------------------------------------------------
             kbAltF1     0x6800              kbAltF6     0x6D00
             kbAltF2     0x6900              kbAltF7     0x6E00
             kbAltF3     0x6A00              kbAltF8     0x6F00
             kbAltF4     0x6B00              kbAltF9     0x7000
             kbAltF5     0x6C00              kbAltF0     0x7100
           -----------------------------------------------------------

           См. также: evKeyDown, getKeyEvent.




       функция lowMemory                                          UTIL.H
      -----------------------------------------------------------------

           Описание: Boolean lowMemory();

           Функция: Вызывает  метод  TVMemMgr::safetyPoolExhausted  для
      проверки состояния резервного буфера.

           См. также: TVMemMgr::safetyPoolExhausted



       Переменная maxCollectionSize                             CONFIG.H
      -----------------------------------------------------------------

           Описание: const maxCollectionSize = (int)((65536uL -
                                                  16)/sizeof( void * );

           Функция: Определяет максимальное  число  элементов,  которые
      может содержать коллекция.  По существу это число указателей, ко-
      торое помещается в сегменте памяти размером 64К.




       константа maxFindStrLen                                  CONFIG.H
      -----------------------------------------------------------------

           Описание: const maxFindStrLen = 80;

           Функция: Содержит  максимальную  длину строки поиска в прог-
      раммах TEditor.



       константа maxReplaceStrLen                               CONFIG.H
      -----------------------------------------------------------------

           Описание: const maxReplaceStrLen = 80;

           Функция: Дает максимальную длину строки замены в  программах
      TEditor.



       константа maxViewWidth                                    VIEWS.H
      -----------------------------------------------------------------

           Описание: maxViewWidth = 132;

           Функция: Устанавливает  максимальную  ширину   отображаемого
      объекта.

           См. также: поле TView::size.




       константа mbXXXX                                         SYSTEM.H
      -----------------------------------------------------------------

           Функция: Эти константы могут использоваться при проверке по-
      ля TEvent::buttons события evMouse. Например:

                    if ( (event.what == evMouseDown) &&
                       (event.button == mbLeftButton) )
                       doLeftButtonDownAction();

           Значения: Определены следующие константы:



                      Таблица 16.20 Константы кнопок мыши

      -----------------------------------------------------------------
      Константа    Значение           Назначение
      -----------------------------------------------------------------

      mbLeftButton  0x01    Равно 1, если была нажата левая кнопка
      mbRightButton 0x02    Равно 1, если была нажата правая кнопка
      -----------------------------------------------------------------

           См. также: getMouseEvent.




        функция message                                            UTIL.H
      -----------------------------------------------------------------

          Описание:  void   *message(TView  *receiver,   ushort   what,
                                     ushort command, void *infoPtr);

          Функция: Устанавливает событие с аргументами  event,  command
      или    infoPtr,    затем,    если    возможно,   вызывает   метод
      receiver->handleEvent для обработки этого события.  message возв-
      ращает значение 0, если receiver имеет значение 0 или, если собы-
      тие  не  обработано  успешно.  Если  событие  успешно  обработано
      (handleEvent возвращает event.what = evNothing),  функция возвра-
      щает event.infoPtr.  Это можно использовать для определения того,
      каким  отображаемым  объектом обработано событие.  Аргумент event
      обычно устанавливается в значение evBroadcast. Например, по умол-
      чанию TscrollBar::scrollDraw посылает следующее сообщение в стро-
      ку прокрутки владельца:

             message( owner, evBroadcast, cmScrollBarChanged, this );

           Это сообщение гарантирует,  что соответствующие отображаемые
      объекты перерисуются,  как только значение строки прокрутки value
      изменится.

           См. также:  TView::handleEvent,   TEvent, константы  cmXXXX,
      константы evXXXX.



       функция messageBox                                       MSGBOX.H
      -----------------------------------------------------------------

           Описание:  ushort  messageBox(   const  char  *msg,   ushort
                                            aOptions );
                      ushort  messageBox(    ushort   aOptions,   const
                                            char *msg, ... );

           Функция: Первая  форма отображает  данное сообщение.  Вторая
      форма использует msg как строку формата, используя дополнительные
      параметры, которые  следуют  за  ней.  aOptions устанавливается в
      значение одной из констант оконного сообщения mfXXXX.

           См. также: mfXXXX



       функция messageBoxRect                                   MSGBOX.H
      -----------------------------------------------------------------

           Описание: ushort messageBoxRect( const TRect &r, const char
                                            *msg, ushort aOptions);
                     ushort messageBoxRect( const TRect &r, ushort
                                            aOptions, const char *msg,
                                            ...  );

           Функция: Первая  форма отображает данное сообщение в указан-
      ном окне.  Вторая форма использует msg как строку формата исполь-
      зуя  дополнительные параметры,  которые следуют за ней.  aOptions
      устанавливается в одну из констант оконного сообщения mfXXXX.

           См. также: mfXXXX



       константы mfXXXX                                         MSGBOX.H
      -----------------------------------------------------------------

           Значения: Следующие  константы оконных  сообщений определены
      для использования с messageBox:

                    Таблица 16.21 Константы messageBox.

      -----------------------------------------------------------------
      Константа    Значение           Назначение
      -----------------------------------------------------------------
      mfWarning      0x0000 Отображает окно предупреждения
      mfError        0x0001 Отображает окно ошибки
      mfInformation  0x0002 Отображает окно информации
      mfConfirmation 0x0003 Отображает окно подтверждения
      mfYesButton    0x0100 Помещает в диалог кнопку Yes
      mfNoButton     0x0200 Помещает в диалог кнопку No
      mfOKButton     0x0400 Помещает в диалог кнопку OK
      mfCanselButton 0x0800 Помещает в диалог кнопку Cancel
      -----------------------------------------------------------------

             Определяется стандартная панель диалога "Yes,No,Cancel":

             mfYesNoCansel = mfYesButton | mfNoButton | mfCanselButton;

             Определяется стандартная панель диалога "OK,Cancel":

             mfOKCansel    = mfOKButton | mfCanselButton;

           См. также: messageBox



       функция moveBuf                                            UTIL.H
      -----------------------------------------------------------------

           Описание:  void  moveBuf(  void  *dest,  const void *sourse,
                                      ushort attr, ushort count);

           Функция: Копирует  текст  в  буфер. dest указывает на  буфер
      созданный пользователем;  sourse должен  быть массивом  символов.
      Count байт перемещается из sourse в младшие байты соответствующих
      слов в dest. Старшие байты слов в dest устанавливаются в attr или
      остаются неизмененными, если параметр attr равен нолю.

           См. также:  TDrawBuffer, moveChar, moveCStr, moveStr.



       функция moveChar                                           UTIL.H
      -----------------------------------------------------------------

           Описание: void  moveChar( void  *dest, char  c, ushort attr,
                                     ushort count);

           Функция: Копирует символы в буфер.  dest указывает на буфер,
      созданный пользователем.  Младшие биты первых count слов  в  dest
      устанавливаются  в  c  или  остаются неизмененными,  если с равно
      '\0'. Старшие биты слов устанавливаются в attr или остаются неиз-
      мененными если параметр attr равен нолю.

           См. также: TDrawBuffer, moveBuf, moveCStr, moveStr



       функция moveCStr                                           UTIL.H
      -----------------------------------------------------------------

           Описание:  void  moveCStr(  void  *dest,  const  char  *str,
                                       ushort attrs);

           Функция:  Копирует   двухцветную  строку   в  буфер.    dest
      указывает  на  буфер  созданный  пользователем.  Символы  из  str
      копируются в младшие байты  соответствующих слов в dest.  Старшие
      байты  слов  устанавливаются  в  lo(attr)  или  hi(attr). Символы
      тильда(~)  в  строке  используются  для  переключения между двумя
      атрибутами байт, передаваемыми в слово attr.

           См. также: TDrawBuffer, moveChar, moveBuf, moveStr



       функция moveStr                                            UTIL.H
      -----------------------------------------------------------------

           Описание: void moveStr( void *dest, const char *str,  ushort
                                   attrs);

           Функция: Копирует строку в  буфер.  dest указывает  на буфер
      созданный пользователем.   Символы из  str копируются  в  младшие
      байты  соответствующих   слов  в   dest.    Старшие  байты   слов
      устанавливаются в attr или остаются неизмененными,  если параметр
      attr равен нулю.

           См. также: класс TDrawBuffer, moveChar, moveCStr, moveBuf



       функция newStr                                             UTIL.H
      -----------------------------------------------------------------

           Описание: char *newStr( const char *s);

           Функция:  Динамическое  создание  строки.  Если s пустая, то
      newStr  возвращает   нулевой  указатель.   В  противном    случае
      размещаются  strlen(s)+  1  байт,  в  которые  копируется  s  ( с
      разделителем '\0' ) и  возвращается указатель на первый  байт. Вы
      можете использовать  для удаления таких строк delete.



       константы ofXXXX                                          VIEWS.H
      -----------------------------------------------------------------

           Функция:  Эти  мнемонические  обозначения  используются  для
      ссылок на битовые позиции поля TView::options.  Установка позиции
      бита в 1 указывает, что отображаемый объект имеет отдельный атри-
      бут;  очистка битовой позиции означает,  что атрибут отключен или
      запрещен. Например:

             myWindow.options = ofTileable | ofSelectable;

           Значения: Определены следующие параметры флагов:

                      Таблица 16.22 Параметры флагов.
      -----------------------------------------------------------------
       Константа      Назначение
      -----------------------------------------------------------------

       ofSelectable   Установлен,  если отображаемый объект  выделяется
                      автоматически (см.  sfSelectable),  например, от-
                      меткой мышью в отображаемом объекте  или клавишей
                      Tab в панели диалога.

       ofTopSelect    Установлен,  если  отображаемый объект помещается
                      перед всеми другими равными отображаемыми  объек-
                      тами, когда он выделен. Когда бит ofTopSelect ус-
                      тановлен, вызов метода TView::select соответству-
                      ет вызову метода TView::makeFirst.  Окна (TWindow
                      и  его потомки) по умолчанию имеют этот бит уста-
                      новленным,  что заставляет их располагаться перед
                      всеми другими  окнами  в  рабочей области экрана,
                      когда они выбираются.  См.  также  TView::select,
                      TGroup::makeFirst.

       ofFirstClick   Если  бит  сброшен, то  отметка "мышью",  которая
                      выделяет отображаемый  объект,  не имеет эффекта.
                      Если установлен,  такая отметка "мышью" будет ра-
                      ботать как обычный отметка  "мышью  после  выбора
                      отображаемого  объекта.  Не  имеет эффекта,  если
                      флаг  ofSelectable  не  установлен.   См.   также
                      TView::handleEvent, sfSelect, ofSelectable.

       ofFramed       Установлен, если отображаемый объект имеет рамку.
                      TWindow и его потомки имеют TFrame, как свой пос-
                      ледний подобъект.   Когда   отображаемый   объект
                      рисуется,  TFrame рисует рамку вокруг любого дру-
                      гого подобъекта,   у   которого   установлен  бит
                      ofFrame. См. также TFrame, TWindow.

       ofPreProcess   Установлен, если отображаемый объект получает ак-
                      тивные события до того,  как они были посланы ак-
                      тивному объекту.  В противном случае сброшен. См.
                      также sfFocused, ofPostProcess, TGroup::phase.

       ofPostProcess  Установлен, если отображаемый объект получает ак-
                      тивное событие в случае, когда активный объект не
                      может их обработать. В противном случае сбрасыва-
                      ется. См. также sfFocused, ofPreProcess, TGroup::
                      phase.

       ofBuffered     Используется  только   для  объектов   TGroup   и
                      производных  классов. Установлен,  если кэш-буфер
                      распределяет  доступную  память.   Буфер   группы
                      содержит  образ  экрана  для  всей  группы, таким
                      образом  увеличивая  скорость  перерисовки.   При
                      отсутствии буфера,  метод  TGroup::draw  вызывает
                      методы  каждого подобъекта  drawView.  Если впос-
                      ледствии не выделяется достаточно  памяти, буфера
                      группы будут удалены из памяти.

       ofTileable     Установлен,  если   рабочая область  экрана может
                      расположить этот отображаемый объект с перекрыти-
                      ем (каскадное расположение).  Обычно используется
                      только с объектами TWindow.

       ofCenterX      Установлен, если отображаемый объект центрирует-
                      ся по оси x своего владельца при вставке в группу
                      с использованием TGroup::insert.

       ofCenterY      Установлен, если отображаемый объект центрирует-
                      ся по  оси  y  своего  владельца  при включении в
                      группу с использованием метода TGroup::insert.

       ofCentered     Установлен, если отображаемый объект центрируется
                      по обоим  осям  своего  владельца при включении в
                      группу с использованием метода TGroup::insert.
      -----------------------------------------------------------------


                Биты options определены следующим образом:

          ЪДДДДДДДДДД options ДДДДДДДДДДї
          і                             і
        старший бит                младший бит

                      ЪДВДДДДДДДДДДДДДДДДДДД> ofCentered    = 0x0300
         ЙНСНСНСНСНСНСПСПСНСНСНСНСНСНСНСН»
         ИСПНПНПНПНПСПСПСПСПСПСПСПСПСПСПСј
          АДДДДВДДДДЩ і і і і і і і і і АДДД> ofSelectable  = 0x0001
               і      і і і і і і і і АДДДДД> ofTopSelect   = 0x0002
            Резерв    і і і і і і і АДДДДДДД> ofFirstClick  = 0x0004
                      і і і і і і АДДДДДДДДД> ofFramed      = 0x0008
                      і і і і і АДДДДДДДДДДД> ofPreProcess  = 0x0010
                      і і і і АДДДДДДДДДДДДД> ofPostProcess = 0x0020
                      і і і АДДДДДДДДДДДДДДД> ofBuffered    = 0x0040
                      і і АДДДДДДДДДДДДДДДДД> ofTileable    = 0x0080
                      і АДДДДДДДДДДДДДДДДДДД> ofCenterX     = 0x0100
                      АДДДДДДДДДДДДДДДДДДДДД> ofCenterY     = 0x0200

                     Рис. 14.4 Битовые флаги options.

           См. также: TView::options




       операция +                                                MENUS.H
      -----------------------------------------------------------------

           Описание: TSubMenu& operator + ( TSubMenu& s,TMenuItem&  i);
                     TSubMenu& operator + ( TSubMenu& s1,TSubMenu& s2);

           Функция: Эти  переопределяемые  операции  +  используются  с
      конструкторами TSubMenu,  TMenuItem, TStatusDef и TStatusItem для
      создания строк состояния и вложенных меню.



       операция delete                                           NEW.CPP
      -----------------------------------------------------------------

           Описание: void *operator delete( void *blk );

           Функция: Освобождает место в динамически распределяемой  об-
      ласти оперативной памяти. Если резервный буфер исчерпан, то вызы-
      вается метод TVMemMgr::resizeSafetyPool.  Он  освобождает  старый
      резервный буфер и создает новый,  с размером по умолчанию (обычно
      4096 байт).

           См. также: TVMemMgr::resizeSafetyPool




       операция new                                              NEW.CPP
      -----------------------------------------------------------------

           Описание: void *operator new( size_t sz );

           Функция: Пытается выделить sz байт в динамически распределя-
      емой области оперативной памяти. Возвращается указатель на разме-
      щение, если оно успешно. Если выделение памяти не удалось, то кэш
      буферы (если имеются) освобождаются один за другим и попытка раз-
      мещения возобновляется. Если это не удается и резервный буфер ис-
      черпан, то new вызывает abort. В противном случае предпринимается
      попытка размещения в резервном буфере. Эта попытка, независимо от
      того   удачна    она    или    нет,    устанавливает    указатель
      TVMemMgr::safetyPool  в  0 (указывая,  что резервный буфер исчер-
      пан). Если операция new выполнила выделение  памяти  в  резервном
      буфере успешно,  то возвращается указатель на размещение;  в про-
      тивном случае вызывается abort. Операция new является дружествен-
      ной для TBufListEntry.

           См. также:                             TVMemMgr::safetyPool,
           TVMemMgr::safetyPoolExhausted, TVMemMgr::resizeSafetyPool



       константа positionalEvents                                VIEWS.H
      -----------------------------------------------------------------

           Описание: positionalEvents = evMouse;

           Функция:  Определяет  классы  событий  как positionalEvents.
      Переменные   focusedEvents   и   positionalEvents    используются
      методом TGroup::handleEvent,  чтобы установить соответствие собы-
      тия  подобъектам  группы.  Если   класс  события  не  принадлежит
      focusedEvents  или positionalEvents,  то оно интерпретируется как
      общее событие.

           См.    также:    TGroup::handleEvent,    TEvent,     evXXXX,
      focusedEvents



       константы sbXXXX                                          VIEWS.H
      -----------------------------------------------------------------

           Функция: Эти    константы   определяют   различные   области
      TScrollBar, в которых воспринимается отметка мышью.

           Функция  TScrollBar::scrollStep  осуществляет преобразование
      этих констант в действительные значения шага прокрутки.  Хотя она
      определена,  константа  sbIndicator  никогда  не   передается   в
      TScrollBar::scrollStep.

                 Таблица 16.23 Константы строки прокрутки.

           -----------------------------------------------------------
           Константа   Значение  Назначение
           -----------------------------------------------------------
           sbLeftArrow    0      Левая стрелка горизонтальной
                                 строки прокрутки.
           sbRightArrow   1      Правая стрелка горизонтальной
                                 строки прокрутки.
           sbPageLeft     2      Левая страничная область
                                 горизонтальной строки прокрутки.
           sbPageRight    3      Правая страничная область
                                 горизонтальной строки прокрутки.
           sbUpArrow      4      Стрелка вверх вертикальной строки
                                 прокрутки.
           sbDownArrow    5      Стрелка вниз вертикальной строки
                                 прокрутки.
           sbPageUp       6      Верхняя страничная область
                                 вертикальной строки прокрутки.
           sbPageDown     7      Нижняя страничная область
                                 вертикальной строки прокрутки.
           sbIndicator    8      Индикатор на строке прокрутки.
           -----------------------------------------------------------


                                                 ^ >ДД sbUpArrow
                                                 ±
                                                 ± >ДД sbPageUp
                                                 ±
                           sbIndicator ДДДДДДДД<
                           і                     ±
                           і                     ±
                           і                     ±
                           і                     ± >ДД sbPageDown
                           і                     ±
                           і                     ±
                           v                     v >ДД sbDownArrow
           <±±±±±±±±±±±±±±± ±±±±±±±±±±±±±±±±±±±>ДЩ
           ^          ^           ^            ^
           і          і           і            і
           і      sbPageLeft  sbPageRight      і
       sbLeftArrow                       sbRightArrow

                        Рис. 16.5 Строка прокрутки.

           В метод TWindow::standardScrollBar могут передаваться следу-
      ющие значения.


                Таблица 16.24 Константы standardScrollBar.

           -----------------------------------------------------------
           Константа        Значение        Назначение
           -----------------------------------------------------------
           sbHorizontal      0x0000   Строка прокрутки горизонтальна

           sbVertical        0x0001   Строка прокрутки вертикальна

           sbHandleKeyboard  0x0002   Строка прокрутки реагирует на
                                      команды клавиатуры
           -----------------------------------------------------------

           См. также:        TScrollBar,        TScrollBar::scrollStep,
      TWindow::standardScrollBar:




       selectMode enumeration                                    VIEWS.H
      -----------------------------------------------------------------

           Описание: selectMode     =    (normalSelect,    enterSelect,
                                          leaveSelect);

           Функция: Служит   для   внутреннего  использования  в  Turbo
      Vision.

           См. также: TGroup::execView, TGroup::setCurrent.



       константы sfXXXX                                          VIEWS.H
      -----------------------------------------------------------------

           Функция: Эти константы используются для доступа к  соответс-
      твующим битам  поля  TView::state.  Поля  TView::state никогда не
      должны изменяться непосредственно, вместо этого вы должны исполь-
      зовать метод TView::setState.

           Значения: Определены следующие флаги состояния:

                 Таблица 16.25 Константы флагов состояния.
      -----------------------------------------------------------------
       Константа                       Назначение
      -----------------------------------------------------------------
       sfVisible   Установлен,  если  отображаемый объект виден в своем
                   владельце; в противном случае 0. Отображаемые объек-
                   ты по умолчанию имеют флаг состояния sfVisible.  Ме-
                   тоды TView::show и TView::hide могут  использоваться
                   для  модификации флага sfVisible.  При sfVisible = 1
                   отображаемый объект не обязательно видим на  экране,
                   поскольку его владелец может быть невидим.  Для про-
                   верки видимости на экране,  проверьте бит  sfExposed
                   или вызовите функцию TView::exposed.

       sfCursorVis Установлен,  если  курсор отображаемого объекта  ви-
                   дим, в противном случае сброшен.  По умолчанию сбро-
                   шен.  Методы  TView::showCursor  и TView::hideCursor
                   могут использоваться для модификации sfCursorVis.

       sfCursorIns Установлен,  если   курсор   отображаемого   объекта
                   представляет  собой  сплошной  блок (прямоугольник),
                   очищен,  если курсор отображаемого объекта -  символ
                   подчеркивания.  По умолчанию сброшен. Методы TView::
                   blockCursor и  TView::normalCursor  могут  использо-
                   ваться для модификации sfCursorIns.

       sfShadow    Установлен, если  отображаемый объект  имеет тень, в
                   противном случае, сброшен.

       sfActive    Установлен,  если отображаемый объект - это активное
                   окно или подобъект активного окна.

       sfSelected  Установлен,  если  отображаемый объект - это текущий
                   выбранный подобъект внутри своего владельца.  Каждый
                   объект TGroup имеет поле current,  которое указывает
                   на текущий выбранный подобъект (или 0,  если никаких
                   подобъектов не выбрано). Может быть только один выб-
                   ранный подобъект в TGroup.

       sfFocused   Установлен,  если отображаемый объект является  те-
                   кущим. Отображаемый  объект  будет текущим,  если он
                   выделен и все владельцы  выше  его  также  выделены,
                   т.е.  если отображаемый объект находится в цепи, об-
                   разованной указателями current всех TGroup,  начиная
                   с  application  (самый верхний отображаемый объект в
                   иерархии отображаемых объектов). Последний отобража-
                   емый  объект  цепочки  - это конечное назначение для
                   всех focused events.

       sfDragging  Установлен,  если  отображаемый объект  можно переме-
                   щать; в противном случае, сброшен.

       sfDisabled  Установлен,  если отображаемый объект запрещен; очи-
                   щен, если разрешен. Запрещенные отображаемые объекты
                   будут игнорировать все передаваемые им события.

       sfModal     Установлен,  если отображаемый объект - модальный. В
                   выполняемой программе,  написанной с  помощью  Turbo
                   Vision,  всегда  существует  точно один отображаемый
                   объект (обычно,  объекты TAppplication или TDialog).
                   Когда  отображаемый объект начинает выполняться (че-
                   рез вызов execView), этот отображаемый объект стано-
                   вится   модальным.   Модальный  отображаемый  объект
                   представляет вершину (корень) активного дерева собы-
                   тий,  получая события и управляя ими до тех пор пока
                   не вызван его метод endModal.  Во время  этого  "ло-
                   кального"  цикла  событий  события передаются нижним
                   подобъектам в дереве отображаемых подобъектов. Собы-
                   тия  от этих нижних отображаемых объектов передаются
                   по дереву, но не далее модального отображаемого объ-
                   екта.   См.  также  sfSelected,  sfFocused,  TView::
                   setState, TView::handleEvent, TGroup::execView.

       sfDefault   Это   свободный  флаг,  доступный   для  определения
                   пользователем какого-либо состояния по умолчанию.

       sfExposed   Установлен,  если у отображаемого объекта прямой или
                   косвенный владелец - объект application  и  следова-
                   тельно   он   может  быть  виден  на  экране.  Метод
                   TView::exposed использует этот флаг  при  отсечении,
                   определяя,   какая   часть   отображаемого   объекта
                   действительно   видна   на   экране.    См.    также
                   TView::exposed.
      -----------------------------------------------------------------


           Значения: Биты флага state определены так:

             ЪДДДДДДДДДДДД state ДДДДДДДДДДї
             і                             і
        старший бит                   младший бит

            ЙНСНСНСНСНСНСНСНСНСНСНСНСНСНСНСН»
            ИНПНПНПНПСПНПСПСПСПСПСПСПСПСПСПСј
                     і   і і і і і і і і і АДДД sfVisible   = 0x0001
                     і   і і і і і і і і АДДДДД sfCursorVis = 0x0002
                     і   і і і і і і і АДДДДДДД sfCursorIns = 0x0004
                     і   і і і і і і АДДДДДДДДД sfShadow    = 0x0008
                     і   і і і і і АДДДДДДДДДДД sfActive    = 0x0010
                     і   і і і і АДДДДДДДДДДДДД sfSelected  = 0x0020
                     і   і і і АДДДДДДДДДДДДДДД sfFocused   = 0x0040
                     і   і і АДДДДДДДДДДДДДДДДД sfDragging  = 0x0080
                     і   і АДДДДДДДДДДДДДДДДДДД sfDisabled  = 0x0100
                     і   АДДДДДДДДДДДДДДДДДДДДД sfModal     = 0x0200
                     АДДДДДДДДДДДДДДДДДДДДДДДДД sfExposed   = 0x0800

                      Рис. 16.6 Биты флага состояния.

           См. также: TView::state




       переменная specialChars                                  TTYPES.H
      -----------------------------------------------------------------

           Описание: extern const uchar spesialChar[] =
                     {
                        175, 174, 26, 27, ' ',' '
                     };

           Функция: Определяет  символы  индикатора,  используемые  для
      подсветки  активного отображаемого объекта в монохромном видеоре-
      жиме. Эти символы отображаются, если переменная showMarkers имеет
      значение True.

           См. также: переменная showMarkers




       StreamableInit enumeration                               TTYPES.H
      -----------------------------------------------------------------

           Описание: enum StreamableInit { StreamableInit };

           Функция: Каждый потоковый класс имеет специального "построи-
      теля",  который  берет аргумент streamableinit.  Это определено в
      данном enumeration,  обеспечивая уникальный тип данных для  этого
      аргумента конструктора.

           См. также: TView::TView( StreamableInit );



       TScrollChars typedef                                      VIEWS.H
      -----------------------------------------------------------------

           Описание: typedef char TScrollChars[5];

           Функция: Массив,  представляющий символы,  используемые  для
      отображения TScrollBar.

           См. также: TScrollBar




       uchar typedef                                            TTYPES.H
      -----------------------------------------------------------------

           Описание: typedef unsigned char uchar;

           Функция: Синоним для unsigned char.




       ushort typedef                                           TTYPES.H
      -----------------------------------------------------------------

           Описание: typedef unsigned short ushort;

           Функция: Синоним для unsigned short.



       константы wfXXXX                                          VIEWS.H
      -----------------------------------------------------------------

           Функция: Эти мнемонические обозначения определяют биты в по-
      ле flags объектов TWindow.  Если  биты  установлены,  окно  будет
      иметь соответствующие атрибуты: окно может перемещаться, изменять
      размер, закрываться или распахиваться.


           Значения: Флаги окна определены следующим образом:

                           Рис. 16.7 Флаги окна

                         ЪДДД flags ДДДї
                         і             і
                    старший бит   младший бит
                        ЙНСНСНСНСНСНСНСН»
                        ИСПНПНПСПСПСПСПСј
                         АДДВДДЩ і і і АД wfMove  = 0x01
                            і    і і АДДД wfGrow  = 0x02
                     Неопределеныі АДДДДД wfClose = 0x04
                                 АДДДДДДД wfZoom  = 0x08

                  Таблица 16.26 Константы флагов окна.

           ------------------------------------------------------------
           Константа Значение   Смысл
           ------------------------------------------------------------
           wfMove    0x01   Окно можно перемещать
           wfGrow    0x02   Можно изменять размеры окна соответствующей
                            кнопкой в нижнем правом углу
           wfClose   0x04   Рамка окна имеет закрывающую кнопку
           wfZoom    0x08   Рамка окна имеет кнопку распахивания
           ------------------------------------------------------------

           Если отдельный бит установлен (=1),  то соответствующая воз-
      можность разрешена, в противном случае (=0), эта возможность зап-
      рещена.

           См. также: TWindows::flags



       константa wnNoNumber                                      VIEWS.H
      -----------------------------------------------------------------

           Описание: const ushort wnNoNumber = 0;

           Функция: Если  поле  TWindow::number содержит эту константу,
      то это указывает, что окно не может иметь номера и не может выби-
      раться через Alt+number.  Если поле number имеет значение от 1 до
      9, то номер окна отображается и выбор Alt+number доступен.

           См. также: TWindow::number



       структура write_args                                      VIEWS.H
      -----------------------------------------------------------------

           Описание: struct write_args
                     {
                        void far *self;
                        void far *target;
                        void far *buf;
                        ushort offset;
                     };

           Функция: Используется методом TView::writeView.



       константы wpXXXX                                          VIEWS.H
      -----------------------------------------------------------------

           Функция:  Эти  константы  определяют  три стандартных цвета,
      отражая  их  назначение.   По  умолчанию,  TWindow::palette имеет
      палитру  wpBlueWindow.   По  умолчанию,  объекты  TDialog   имеют
      палитру wpGrayWindow.


           Значения: Три стандартных палитры окна  определены следующим
      образом:

                  Таблица 16.27 Стандартные палитры окна.

           ------------------------------------------------------------
           Константа        Значение     Назначение
           ------------------------------------------------------------

           wpBlueWindow        0         Желтый текст на синем фоне
           wpCuanWindow        1         Синий текст на бирюзовом фоне
           wpGrayWindow        2         Черный текст на сером фоне
           ------------------------------------------------------------

           См. также: TWindow::palette, TWindow::getPalette


Яндекс цитирования