Logo    
Деловая газета CitCity.ru citforum.ck.ua - все об Open Source Форумы Все публикации Учебный центр Курилка
CitForum    CITForum на CD    Подписка на новости портала Море(!) аналитической информации! :: citforum.ck.ua
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Friday, 14-Mar-2008 17:11:59 EET

Google
WWW citforum.ck.ua
Техническая конференция «Корпоративные базы данных-2008»
Москва, 24-25 апреля

ГЛАВА 13.СПРАВОЧНИК ПО ОБЪЕКТАМ.

     Эта глава содержит алфавитный список всех стандартных объектов
Turbo Vision с объяснением их назначения и использования, с полями,
методами и палитрами цветов.
     Чтобы найти  информацию по определенному объекту помните,  что
многие свойства объектов в иерархии наследуются от  предков. Вместо
бесконечного дублирования   всей  информации  эта  глава  описывает
только поля и методы,  которые добавляются или  изменяются  в  этом
объекте.
     Например, если Вы хотите найти поле Owner объекта  TLabel,  Вы
можете посмотреть  поля TLabel,  среди которых Вы не найдете Owner.
Затем посмотрите  непосредственного  предка  TLabel  в  иерархии  -
TStaticText. Поля    Owner   нет   опять.   Посмотрите   следующего
непосредственного предка TView.  Здесь Вы найдете полную информацию
об Owner, которое наследуется неизменным в TLabel.
     Каждый объект в этой  главе  имеет  графическое  представление
предков и  непосредственных  наследников так,  что Вы сможете легко
найти объекты, от которых наследуются поля и методы.
     Каждый объект представлен в следующем формате:


Объект TSample Модуль объекта


                  +---------+
                  | TObject |
                  +----+----+
                  +====+====+
                  | TSample |
                  +====+====+
                +------+------+
                | TDescendant |
                +-------------+


                                 Поля

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

 AField  AField: SomeType;                            Только чтение
         AField - это поле,  которое содержит некоторую  информацию
         об этом    объекте.   Этот   текст   объясняет   как   оно
         функционирует, что   это   означает   и   как   Вам    его
         использовать.
         См. так же:  Связанные поля,  методы,  объекты, глобальные
         функции и т.д.

 AnotherField  AnotherField: Word;                    Чтение/Запись
         Это поле содержит информацию подобную информации  для поля
         AField.



                              Методы

         Этот раздел приводит все методы, которые либо определены в
         этом объекте,  либо перекрывают унаследованные методы. Для
         виртуальных методов   указывается,   как  часто  требуется
         перекрывать метод:  никогда,  редко,  иногда,  часто   или
         всегда.

 Init    constructor Init(AParameter: SomeType);
         Init создает новый экземпляр  объекта,  устанавливая  поле
         AField в АParameter.

 Zilch   procedure Zilch; virtual;            Перекрывается: Иногда
         Процедура Zilch выполняет некоторые действия.
         См. так же TSomethingElse.Zilch



TApplication App



                  +----------+
                  | TObject  |
                  +----+-----+
                  +----+-----+
                  |  TView   |
                  +----+-----+
                  +----+-----+
                  | TGroup   |
                  +-+--+---+-+
          +---------+  |   +---------+
     +----+----+  +----+-----+  +----+-----+
     | TWindow |  | TDeskTop |  | TProgram |
     +----+----+  +----------+  +----+-----+
     +----+----+               +=====+========+
     | TDialog |               | TApplication |
     +---------+               +==============+

         TApplication просто наследуется от TProgram  и  отличается
         от TProgram    только    констрактором   и   дестрактором.
         TApplication.Init инициализирует  все   подсистемы   Turbo
         Vision (управление памятью,  видео,  событиями, системными
         ошибками и   списками   историй)    и    затем    вызывает
         TProgram.Init. Аналогично     TApplication.Done    вначале
         вызывает TProgram.Done,  а затем уничтожает все подсистемы
         Turbo Vision.
         Обычно Вы   будете   наследовать   свои    программы    от
         TApplication. Если       Вам       потребуется      другая
         последовательность инициализации подсистем и  их закрытия,
         Вы можете наследовать Вашу программу от TProgram и вручную
         инициализировать и закрывать подсистемы Turbo Vision.


                               Методы

 Init   constructor Init;
         Фактическая реализация TApplication.Init показана ниже:

     constructor TApplication.Init;
     begin
       InitMemory;
       InitVideo;
       InitEvents;
       InitSysError;
       InitHistory;
       TProgram.Init;
     end;

         См. так же: TProgram.Init

 Done    destructor Done; virtual;
         Реализация TApplication.Done показана ниже:

     destructor TApplication.Done;
     begin
       TProgram.Done;
       DoneHistory;
       DoneSysError;
       DoneEvents;
       DoneVideo;
       DoneMemory;
     end;



TBackground App



                  +-------------+
                  |   TObject   |
                  +------+------+
                  +------+------+
                  |    TView    |
                  +------+------+
                  +======+======+
                  | TBackGround |
                  +=============+

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


                                   Поля

 Pattern   Pattern: Char;                             Только чтение
         Это битовый шаблон для фона видимого элемента.


                            Методы

 Init   constructor Init(var Bounds: TRect; APattern: Char);
         Создает объект  TBackground  с  границами  Bounds  вызывая
         TView.Init.   GrowMode   устанавливается   в  gfGrowHiX  +
         gfGrowHiY,  а поле Pattern устанавливается в APattern. См.
         так же: TView.Init, TBackground.Pattern

 Load   constructor Load(var S: TStream);
         Создает объект TBackground и загружает его  из  потока  S,
         вызывая TView.Load, а затем читая поле Pattern.
         См. так же: TView.Load

 Draw   procedure Draw; virtual;               Перекрывается: Редко
         Заполняет прямоугольник видимого элемента текущим шаблоном
         с цветом по умолчанию.

 GetPalette   function GetPalette: PPalette; virtual;
                                               Перекрывается: Редко
         Возвращает указатель на палитру по умолчанию CBackground.

 Store  procedure Store(var S: TStream);
         Сохраняет видимый  элемент  TBackground в потоке,  вызывая
         TView.Store, а затем записывая поле Pattern.
         См. так же: TView.Store, TBackground.Load


                                 Палитра

         Объекты фона  используют  по умолчанию палитру CBackground
         для отображения в первый элемент палитры программы.

                              1
                            +===+
              CBackground   | 1 |
                            +=+=+
                   Color  ----+



TBufStream Objects


                  +------------+
                  |   TObject  |
                  +------+-----+
                  +------+-----+
                  |   TStream  |
                  +------+-----+
                  +------+-----+
                  | TDosStream |
                  +------+-----+
                  +======+=====+
                  | TBufStream |
                  +============+

         TBufStream реализует  буферизованную  версию   TDosStream.
         Дополнительные поля указывают размер и положение буфера, а
         так же  текущую  и  последнюю  позицию  в  буфере.   Кроме
         перекрытия восьми     методов    TDosStream,    TBufStream
         определяет абстрактный  метод  TStream.Flush.  Констрактор
         TBufStream создает     и     открывает    файл,    вызывая
         TDosStream.Init, затем создает буфер с помощью GetMem.
         TBufStream значительно  эффективнее  TDosStream при работе
         большого числа небольших данных в  поток,  а  так  же  при
         сохранении и    загрузке    объектов    с   использованием
         TStream.Get и TStream.Put.


                                 Поля

 Buffer  Buffer: Pointer;                             Только чтение
         Указатель на начало буфера потока.

 BufSize BufSize: Word;                               Только чтение
         Размер буфера в байтах.

 BufPtr  BufPtr: Word;                                Только чтение
         Смещение от   указателя  Buffer,  указывающее  на  текущую
         позицию внутри буфера.

 BufEnd  BufEnd: Word;                                Только чтение
         Если буфер не заполнен,  BufEnd дает смещение от указателя
         Buffer на последний используемый байт в буфере.



                                    Методы

 Init    constructor Init(FileName: FNameStr; Mode, Size: Word);
         Создает и открывает файл с режимом доступа  Mode,  вызывая
         TDosStream.Init. Так  же создает буфер размером в SizeBuf,
         вызывая GetMem.  Handle, Buffer и BufSize инициализируются
         соответственно. Типичный  размер  буфера  от  512  до 2048
         байт.
         См. так же: TDosStream.Init

 Done    destructor Done; virtual;           Перекрывается: Никогда
         Закрывает и  освобождает  файловый  поток;  выталкивает  и
         освобождает его буфер.
         См. так же: TBufStream.Flush

 Flush   procedure Flush; virtual;           Перекрывается: Никогда
         Выталкивает буфер потока,  обеспечивая,  что поток будет в
         состоянии stOK.
         См. так же: TBufStream.Done

 GetPos  function GetPos: LongInt; virtual;  Перекрывается: Никогда
         Возвращает значение текущей позиции потока (не перепутайте
         с BufPtr - текущей позицией в буфере).
         См. так же: TBufStream.Seek

 GetSize function GetSize: LongInt; virtual; Перекрывается: Никогда
         Выталкивает буфер,  а  затем возвращает общее число байт в
         потоке.

 Read    procedure Read(var Buf; Count: Word); virtual;
                                             Перекрывается: Никогда
         Если stOK,  читает Count  байт  в  буфер  Buf,  начиная  с
         текущей позиции потока.
         Заметим, что Buf - это не буфер потока,  а внешний  буфер,
         содержащий данные читаемые из потока.
         См. так же: TBufStream.Write, stReadError

 Seek    procedure Seek(Pos: LongInt); virtual;
                                             Перекрывается: Никогда
         Выталкивает буфер, а затем устанавливает текущую позицию в
         Pos байт от начала потока. Начальная позиция потока - 0.
         См. так же: TBufStream.GetPos, TBufStream.GetSize

 Truncate procedure Truncate; virtual;       Перекрывается: Никогда
         Выталкивает буфер,  затем  удаляет  все  данные  потока от
         текущей позиции   до   конца   потока.   Текущая   позиция
         устанавливается в новый конец потока.
         См. так же: TbufStream.GetPos, TBufStream.Seek

 Write   procedure Write(var Buf; Count: Word); virtual;
                                             Перекрывается: Никогда
         Если stOK,  записывает Count байт из буфера Buf  в  поток,
         начиная с текущей позиции.
         Заметим, что Buf - это не буфер потока,  а внешний  буфер,
         содержащий данные,   записываемые  в  поток.  Когда  Write
         вызывается, Buf указывает  на  переменную,  чье  значяение
         записывается.
         См. так же: TBudStream.Read, stWriteError



TButton Dialogs


                  +-----------+
                  |  TObject  |
                  +-----+-----+
                  +-----+-----+
                  |   TView   |
                  +-----+-----+
                  +=====+=====+
                  |  TButton  |
                  +===========+

         Объект TBuuton  -  это прямоугольник с заголовком и тенью,
         генерирующий команду при нажатии.  Эти  кнопки  интенсивно
         используются в  IDE.  Кнопка  может  быть выбрана нажатием
         подсвеченной буквы,  переходом на кнопку с помощью  Tab  и
         нажатием пробела,   нажатием   Enter,   когда   кнопка  по
         умолчанию (указывается  подсветкой)  или  отметкой  кнопки
         мышкой.
         При цветной и черно-белой палитрах кнопка имеет трехмерный
         вид, который   изменяется   при  нажатии.  На  монохромных
         системах кнопка выделена стрелками и другие  ASCII символы
         используются для указания, является ли кнопка по умолчанию
         выбранной и т.д.
         Как и  другие  элементы управления,  определенные в модуле
         Dialogs, TButton - это терминальный объект.  Он может быть
         вставлен в  любую  группу и использован без перекрытия его
         методов.
         Кнопка инициализируется    передачей   ей   TRect   строки
         заголовка, команды,  генерируемой  при  нажатии  кнопки  и
         байта флагов.   Чтобы   определить   для   кнопки  клавишу
         короткого набора,  строка заголовка  может  содержать  "~"
         вокруг одного  из  символов,  который  становится символом
         короткого набора.   Параметр   AFlag   указывает,    будет
         заголовок центрироваться   или   выравниваться   по  левой
         границе и  должна   ли   кнопка   быть   умалчиваемой   (и
         следовательно выбираться через Enter).
         Вы можете установить в окне  или  диалоговом  окне  только
         одну кнопку  по умолчанию в любой момент времени.  Кнопки,
         которые равны в группе,  получают  и  отдают  умалчиваемое
         состояние через  сообщения evBroadcast.  Кнопки могут быть
         разрешены или запрещены с использованием  методов SetState
         и CommandEnabled.


                                Поля

 Title  Title: PString;                               Только чтение
         Указатель на текст кнопки.

 Command Commаnd: Word;                               Только чтение
         Слово команды в событии, генерируемом при нажатии кнопки.
         См. так же: TButton.Init, TButton.Load

 Flags   Flags: Byte;                                 Чтение/Запись
         Flags -  это  поле,  используемое  для указания,  будет ли
         текст кнопки  центрироваться  или   выравниваться   влево.
         Отдельные флаги  описаны в разделе "Константы флага кнопки
         bfXXXX" главы 14.
         См. так же: TButton.Draw, константы bfXXXX

 AmDefault  AmDefault: Boolean;                       Только чтение
         Если True,  кнопка  -  по   умолчанию   (и   следовательно
         выбирается при  нажатии  Enter).  Иначе - это "нормальная"
         кнопка.
         См. так же: Константы флага кнопки bfXXXX


                              Методы

 Init    constructor Init(var Bounds: TRect; ATitle: TTitleStr;
                          ACommand: Word; AFlags: Byte);
         Создает объект TButton с заданным размером, вызывая TView.
         Init. Вызывается NewStr(ATitle)  и  назначается  в  Title.
         AFlags используется   в   двух   целях:  если  AFlags  and
         bfDefault - не 0,  то AmDefault  устанавливается  в  True;
         кроме того,     AFlags    указывает,    будет    заголовок
         центрироваться или  выравниваться  влево  проверкой   если
         AFlags and bfLeftJust не 0.
         Options устанавливается в (ofSelectable +  ofFirstClick  +
         ofPreProcess + ofPostProcess). EventMask устанавливается в
         evBroadсast. Если данная ACommand  не  разрешена,  в  поле
         State устанавливается sfDisabled.
         См. так же: TView.Init, константы флага кнопки bfXXXX

 Load    constructor Load(var S: TStream);
         Создает объект  TButton  и инициализирует его из заданного
         потока, вызывая TView.Load(S). Другие поля устанавливаются
         через вызовы    S.Read,    а   State   устанавливается   в
         соответствии с тем,  разрешена ли команда в поле  Command.
         Используется совместно  с  TButton.Store  для сохранения и
         получения объекта в TButton из TStream.
         См. так же: TView.Load, TButton.Store

 Done    destructor Done; virtual;           Перекрывается: Никогда
         Освобождает память,  распределенную   под   Title,   затем
         вызывает TView.Done для разрушения видимого элемента.
         См. так же: TView.Done

 Draw    procedure Draw; virtual;              Перекрывается: Редко
         Рисует кнопку  соответствующей  палитрой  для  ее текущего
         состояния (нормальная   по    умолчанию    запрещена)    и
         позиционирует метку в соответствии с битом bfLeftJust поля
         Flags.

 GetPalette function GetPalette: PPalette; virtual;
                                              Перекрывается: Иногда
         Возвращает указатель на палитру по умолчанию CButton.

 HandleEvent procedure HandleEvent(var Event: TEvent); virtual;
                                              Перекрывается: Иногда
         Отвечает на  нажатие  одним  из  трех  способов:  отметкой
         кнопки мышкой,  нажатием  короткой  клавиши или становится
         кнопкой по  умолчанию,  когда  получено  общее   сообщение
         cmDefault. Когда  кнопка  нажата,  генерируется  командное
         событие с   TView.PutEvent,   с   полем   TButton.Command:
         установленным в     Event.Command,     а     Event.InfoPtr
         установленным в @Self.
         Кнопки так  же  распознают  общие  команды cmGrabDefault и
         cmReleaseDefault, чтобы стать или "не  стать"  кнопкой  по
         умолчанию и  cmCommandSetChanged,  которая  заставляет  их
         проверять, разрешены команды или запрещены.
         См. так же: TView.HandleEvent

 MakeDefault  procedure MakeDefault(Evable: Boolean);
         Этот метод ничего не делает, если кнопка уже умалчиваемая.
         Иначе говорит  Owner  в  кнопке  измениться в состояние по
         умолчанию. Если  Enable  True,  выдается   общая   команда
         cmGrebDefault, иначе        cmReleaseDefault.       Кнопка
         перерисовывается, чтобы показать новый статус.
         См. так же: TButton.AmDefault, bfDefault

 SetState procedure   SetState(AState:   Word;   Enable:  Boolean);
         virtual;                              Перекрывается: Редко
         Вызывает TView.SetState,  затем рисует кнопку, если кнопка
         стала sfSelected или sfActive. Если она стала активной (т.
         е. если  AState  -  sfFocused)  кнопка забирает или отдает
         состояние по  умолчанию  кнопке  по   умолчанию,   вызывая
         MakeDefault.
         См. так же: TCView.SetState, TButton.MakeDefault

 Store  procedure Store(var S: TStream);
         Сохраняет объект TButton в потоке, вызывая TView.Store(S),
         а затем S.Write для сохранения значений Title  и  Command.
         Используется совместно  с  TButton.Load  для  сохранения и
         получения  объектов  TButton  из  потока.  См.   так   же:
         TView.Store, TButton.Load, TStream.Write


                                  Палитра

         Объект кнопка  использует палитру по умолчанию CButton для
         отображения элементов от 10 до 15 в палитру CDialog.


              1    2    3    4    5    6    7    8
           +====+====+====+====+====+====+====+====+
CButton    | 10 | 11 | 12 | 13 | 14 | 14 | 14 | 15 |
           +==+=+==+=+==+=+==+=+==+=+==+=+==+=+=+==+
Нормальный  --+    |    |    |    |    |    |   + Тень
текст              |    |    |    |    |    |
Текст по     ------+    |    |    |    |    +---- Выбранная
умолчанию               |    |    |    |          короткая клавиша
Выбранный     ----------+    |    |    +--------- Короткая клавиша
текст                        |    |               по умолчанию
Запрещенный   ---------------+    +-------------- Выбранная
текст                                             нормальная
                                                  клавиша



TCheckBoxes Dialogs


                  +------------+
                  |   TObject  |
                  +------+-----+
                  +------+-----+
                  |    TView   |
                  +------+-----+
                  +------+-----+
                  |  TCluster  |
                  +----+---+---+
              +--------+   +-------+
      +-------+-------+     +======+======+
      | TRadioButtons |     | TCheckBoxes |
      +---------------+     +=============+

         TCheckBoxes - это кластер,  содержащий от 1 до 16 элементв
         управления. В  отличие  от  зависимых кнопок,  любое число
         независимых кнопок  может  быть  установлено   независимо.
         Поэтому в  этой  группе  нет  кнопки по умолчанию.  Кнопки
         можно отмечать  мышкой,  движением  курсора   и   коротким
         нажатием Alt-буква.  Каждая кнопка может быть подсвечена и
         включена/выключена (пробелом).   Если   кнопка    выбрана,
         появляется Х.   Другие   части   Вашей   программы  обычно
         проверяют состояние независимых  кнопок  для  определения,
         какая опция  выбрана  пользователем  (например в IDE опции
         компилятора и  редактора   выбираются   таким   способом).
         Кластеры независимых  кнопок  часто  связаны  с  объектами
         TLabel.


                                 Поля

         Наследуют поля ValueSl от TCluster. Value интерпретируется
         как набор  из  16  бит (от 0 до 15),  где 1 в бите позиции
         означает, что соответствующий элемент отмечен.


                                   Методы

         Заметим, что  TCheckBoxes  не  перекрывает  констракторов,
         дестрактора и  обработчика  событий TCluster.  Порожденные
         типы объектов могут однако перекрыть их.

 Draw    procedure Draw; virtual;              Перекрывается: Редко
         Рисует объект   TCheckBoxes   вызывая   наследуемый  метод
         TCluster.DrawBox. По умолчанию  независимая  кнопка  имеет
         вид: " [ ] " когда не выбрана и " [X] " когда выбрана.
         Заметим, что если  границы  видимого  элемента  достаточно
         велики, независимые  кнопки могут отображаться в несколько
         колонок.
         См. так же: TCluster.DrawBox

 Mark    function Mark(Item: Integer) : Boolean; virtual;
                                               Перекрывается: Редко
         Возвращает True,  если  бит  элемента  в Value установлен,
         т.е. если данная кнопка отмечена. Вы можете перекрыть это,
         установив другую  интерпретацию  поля Value.  По умолчанию
         элементы нумеруются от 0 до 15.
         См. так же: TCheckBoxes.Press

 Press   procedure Press(Item: Integer); virtual;
                                               Перекрывается: Редко
         Устанавливает бит элемента в Value.  Вы  можете  перекрыть
         его для  другой  интерпретации  поля  Value.  По умолчанию
         элементы нумеруются от 0 до 15.
         См. так же: TCheckBoxes.Mark



 Палитра

         По умолчанию   объекты   независимых   кнопок   используют
         CCluster -    палитру    по     умолчанию     для     всех
         объектов-кластеров.


                      1    2    3    4
                   +====+====+====+====+
      CCluster     | 16 | 17 | 18 | 18 |
                   +==+=+==+=+==+=+==+=+
      Нормальный  ----+    |    |    +--- Выбранная короткая
      текст                |    |         клавиша
      Выбранный     -------+    +-------- Нормальная короткая
      текст                               клавиша



TCluster Dialogs


                  +------------+
                  |   TObject  |
                  +------+-----+
                  +------+-----+
                  |    TView   |
                  +------+-----+
                  +======+=====+
                  |  TCluster  |
                  +====+===+===+
              +--------+   +-------+
      +-------+-------+     +------+------+
      | TRadioButtons |     | TCheckBoxes |
      +---------------+     +-------------+

         Кластер -   это   группа   элементов  управления,  которые
         откликаются одинаково.  TCluster  -  это  абстрактный  тип
         объекта, из    которого   порождаются   группы   элементов
         управления TRadioButtons    и    TCheckBoxes.     Элементы
         управления кластера   часто   ассоциируются   с  объектами
         TLabel, позволяя Вам выбирать элемент  управления, выбирая
         дополнительную метку с объяснением.
         В то время,  как кнопки используются для генерации команд,
         а строки   ввода  -  для  редактирования  строк,  кластеры
         используются для переключения битовых значений  поля Value
         (типа Word).  Стандартные  наследники  TCluster используют
         различные алгоритмы изменения  Value:  TCheckBoxes  просто
         переключает бит,  а  TRadioButtons  включает  один  бит  и
         очищает предварительно   выбранный   бит.   Оба    объекта
         наследуют почти все свое поведение от TCluster.



                                     Поля

 Value  Value: Word;                                  Только чтение
         Текущие значения   элемента   управления.  Действительнвый
         смысл этого поля определяется методами,  разработанными  в
         типах объектов, порожденных от TCluster.

 Sel     Sel: Integer;                                Только чтение
         Текущий выбранный элемент кластера.

 Strings Strings: TStringCollection;                  Только чтение
         Список элементов кластера.



                                        Методы

 Init    constructor Init(var Bounds: TRect; AStrings: PSItem);
         Очищает поля   Value   и  Sel.  Параметр  AStrings  обычно
         выполняет серию  вложенных  вызовов   глобальной   функции
         NewSItem. Таким   образом   весь   кластер  зависимых  или
         независимых кнопок  может  быть   создан   одним   вызовом
         констрактора:

      var
        Control: PView;
      .
      R.Assign(30, 5, 52, 7);
      Control := New(PRadioButtons, Init(R,
        NewSItem('~F~orward',
        NewSItem('~B~ackward', nil))));
      .

         Когда в кластер добавляются дополнительные  зависимые  или
         независимые кнопки,   просто   копируется   первый   вызов
         NewSItem и заголовок заменяется требуемым  текстом.  Затем
         добавляется дополнительная  закрывающая  скобка для каждой
         новой добавленной строки и оператор  будет компилироваться
         без синтаксических ошибок.
         См. так же: тип TSItem

 Load    constructor Load(var S: TStream);
         Создает объект   TCluster,  вызывая  TView.Load(S),  затем
         устанавливает поля Value и  Set  вызовом  S.Read.  Наконец
         поле String   кластера   загружается   из   S   с  помощью
         Strings.Load(S). Используется совместно  с  TCluster.Store
         для сохранения и получения объектов TCluster из потока.
         См. так же: TCluster.Store, TView.Load

 Done    destructor Done; virtual;            Перекрывается: Иногда
         Освобождает память,  распределенную  под  строку кластера,
         затем разрушает видимый элемент, вызывая TView.Done.
         См. так же: TView.Done

 DataSize function DataSize: Word; virtual;    Перекрывается: Редко
         Возвращает размер   Value.    Должен    перекрываться    в
         порожденных типах  объектов,  которые  изменяют  Value или
         добавляют другие поля данных для того,  чтобы  работать  с
         GetData и SetData.
         См. так же: TCluster.GetData, TCluster.SetData

 DrawBox procedure DrawBox(Icon: String; Maker: Char);
         Вызывается методом Draw порожденного типа,  чтобы рисовать
         прямоугольник перед строкой для каждого элемента кластера.
         Icon - это строка из 5 символов (' [ ] ' для независимых и
         ' ( )  '  для  зависимых  кнопок).  Maker  -  это  символ,
         используемый для  указания,  что  кнопка отмечена ('X' для
         зависимых и '.' для независимых кнопок).
         См. так же: TCheckBoxes.Draw, TRadioButtons.Draw

 GetData procedure GetData(var Rec); virtual;  Перекрывается: Редко
         Записывает поле Value в данную запись  и  рисует  кластер.
         Должен перекрываться в порожденных типах объектов, которые
         изменяют поле Value для того,  чтобы работать с DataSize и
         SetData.
         См. так    же:    TCluster.DataSize,     TCluster.SetData,
                           TView.DrawView

 GetHelpCtx function GetHelpCtx: Word; virtual; Перекрывается:Редко
         Возвращает значение  Sel  добавленное   к   HelpCtx.   Это
         позволяет Вам  задать  отдельную  констекстную справку для
         каждого элемента кластера.  Допустимый диапазон контекстов
         равен HelpCtx плюс число элементов кластера минус 1.

 GetPalette function GetPalette: PPalette; virtual;
                                              Перекрывается: Иногда
         Возвращает указатель на палитру по умолчанию CCLuster.

 HandleEvent procedure HandleEvent(var Event: TEvent); virtual;
                                               Перекрывается: Редко
         Вызывает TView.HandleEvent,   который   обрабатывает   все
         события от  мышки  и  клавиатуры,  относящиеся   к   этому
         кластеру. Элементы  управления  выбираются  отметкой мышки
         или клавишами движения курсора (включая  Пробел).  Кластер
         перерисовывается, чтобы показать выбранные элементы.
         См. так же: TView.HandleEvent

 Mark   function Mark(Item: Integer): Boolean; virtual;
                                              Перекрывается: Всегда
         Вызывается из  Draw  для   определения,   какие   элементы
         отмечены. По  умолчанию  TCluster.Mark  возвращает  False.
         Mark должен перекрываться,  возвращая True,  если  элемент
         управления в кластере отмечен, иначе False.

 MovedTo procedure MovedTo(Item: Integer); virtual;
                                               Перекрывается: Редко
         Вызывается из HandleEvent для перемещения полосы выбора на
         заданный элемент управления в кластере.

 Press   procedure Press(Item: Integer); virtual;
                                              Перекрывается: Всегда
         Вызывается из  HandleEvent  когда  элемент  управления   в
         кластере нажат  либо  отметкой  мышки,  либо  событием  от
         клавиатуры. Этот абстрактный метод должен быть перекрыт.

 SetData procedure SetData(var Rec); virtual;  Перекрывается: Редко
         Читает поле   Value  из  данной  записи  и  перерисовывает
         кластер. Должен   перекрываться   в   порожденных    типах
         кластеров, которые   требуют  другие  поля  для  работы  с
         DataSize и GetData.
         См. так     же:    TCluster.DataSize,    YCluster.GetData,
                            TView.DrawView

 SetState procedure SetState(AState: Word; Enable: Boolean);
          virtual;                             Перекрывается: Редко
         Вызывает TView.SetState, затем рисует кластер, если AState
         - sfSelected.
         См. так же: TView.SetState, TView.DrawView

 Store  procedure Store(var S: TStream);
         Сохраняет объект     TCluster     в     потоке,    вызывая
         TView.Store(S), записывает Value и  Sel,  затем  сохраняет
         поле Strings   кластера,   используя   его   метод  Store.
         Используется совместно с TCluster.Load  для  сохранения  и
         получения объектов TCluster из потока.
         См. так же: TCluster.Load, TStream.Write


                                    Палитра

         Объекты TCluster  используют   CCluster   -   палитру   по
         умолчанию  для  всех  объектов кластера,  чтобы отобразить
         элементы с 16 по 18  в  палитру  стандартного  диалогового
         окна:

                      1    2    3    4
                   +====+====+====+====+
      CCluster     | 16 | 17 | 18 | 18 |
                   +==+=+==+=+==+=+==+=+
      Нормальный  ----+    |    |    +--- Выбранная короткая
      текст                |    |         клавиша
      Выбранный     -------+    +-------- Нормальная короткая
      текст                               клавиша



TCollection Objects


                        +---------+
                        | TObject |
                        +----+----+
                      +======+======+
                      | TCollection |
                      +======+======+
                   +---------+---------+
                   | TSortedCollection |
                   +---------+---------+
                   +---------+---------+
                   | TStringCollection |
                   +---------+---------+
                  +----------+----------+
                  | TResourceCollection |
                  +---------------------+

         TCollection -  это  абстрактный  тип  для реализации любой
         коллекции элементов,  включая другие объекты.  TCollection
         это намного  более  общая  концепция,  чем обычные массив,
         множество или   список.   Размер   объектов    TCollection
         динамически устанавливается    во   время   выполнения   и
         TCollection - базовый тип  для  многих  специализированных
         типов,  таких  как TSortedCollection,  TStringCollection и
         TResourceCollection. В дополнение к методам  добавления  и
         удаления элементов   TCollection   представляет  несколько
         итераторных программ,  которые  вызывают   процедуру   или
         функцию для каждого элемента коллекции.


                                   Поля

 Items  Items: PItemList;                             Только чтение
         Указатель на массив указателей элементов.
         См. так же: тип TItemList

 Count   Count: Integer;                              Только чтение
         Текущее число   элементов   в    коллекции,    максимально
         MaxCollectionSize.
         См. так же: переменная MaxCollectionSize

 Limit   Limit: Integer;                              Только чтение
         Текущий распределенный размер (в элементах) списка Items.
         См. так же: Delta, TCollection.Init

 Delta   Delta: Integer;                              Только чтение
         Число элементов, на которое увеличивается список Items при
         заполнении. Если Delta - 0,  коллекция не может расти выше
         размера, установленного в Limit.

         Примечание: Увеличение размера коллекции достаточно дорого
         в смысле производительности.  Чтобы  минимизировать  число
         раз когда это происходит, попытайтесь установить начальное
         Limit в такое количество,  которое  будет  достаточно  для
         всех элементов,  которые Вы собираетесь коллекционировать,
         и установите Delta так,  чтобы она позволяла расширение на
         приемлемое количество.
         См. так же: Limit, TCollection.Init


                                 Методы

 Init    constructor Init(ALimit, ADelta: Integer);
         Создает коллекцию с Limit, установленным в ALimit и Delta,
         установленным в  ADelta.  Первоначальное  число  элементов
         будет ограничено  ALimit,  но коллекция может расширяться,
         увеличиваясь по ADelta до тех пор,  пока будет  достаточно
         памяти или    пока    число    элементов    не   достигнет
         MaxCollectionSize.
         См. так же: TCollection.Limit, TCollection.Delta.

 Load    constructor Load(var S: TStream);
         Создает и загружает коллекцию из  потока. TCollection.Load
         вызывает GetItem для каждого элемента коллекции.
         См. так же: TCollection.GetItem

 Done   destructor Done; virtual;              Перекрывается: Часто
         Удаляет и  освобождает  все  элементы  коллекции,  вызывая
         TCollection.FreeAll и устанавливая Limit в 0.
         См. так же: TCollection.FreeAll, TCollection.Init

 At      function At(Index: Integer) : Pointer;
         Возвращает указатель  на  элемент  с  индексом   Index   в
         коллекции. Этот   метод   позволяет  Вам  интерпретировать
         коллекцию как индексированный массив. Если индекс меньше 0
         или больше  или  равно  Count,  вызывается  метод  Error с
         аргументом coIndexError и возвращается значение nil.
         См. так же: TCollection.IndexOf

 AtDelete procedure AtDelete(Index: Integer);
         Удаляет элемент в позиции  Index  и  перемещает  следующие
         элементы на одну позицию вверх. Count уменьшается на 1, но
         память,  распределенная под коллекцию (как задано в Limit)
         не  сокращается.  Если Index меньше 0 или больше или равно
         Count,  вызывается  метод Error с аргументом coIndexError.
         См.   так   же:   TCollection.FreeItem,  TCollection.Free,
         TCollection.Delete

 AtInsert procedure AtInsert(Index: Integer; Item: Pointer);
         Вставляет Item  в  позицию  Index  и передвигает следующие
         элементы на одну позицию вниз.  Если Index  меньше  0  или
         больше Count,   вызывается   метод   Error   с  аргументом
         coIndexError и новый Item не вставляется. Если Count равен
         Limit до вызова AtInsert,  распределенный размер коллекции
         расширяется на Delta  элементов,  вызывая  SetLimit.  Если
         вызов SetLimit  не  может расширить коллекцию,  вызывается
         метод Error  с  аргументом  coOverflow  и  новый  Item  не
         вставляется.
         См. так же: TCollection.At, TCollection.AtPut

 AtPut   procedure AtPut(Index: Integer; Item: Pointer);
         Заменяет элемент  в  позиции  Index элементом,  заданным в
         Item. Если Index меньше 0  или  больше  или  равно  Count,
         вызывается метод Error с аргументом coIndexError.
         См. так же: TCollection.At, TCollection.AtInsert

 Delete  procedure Delete(Item: Pointer);
         Удаляет элемент    Item    из    коллекции.   Эквивалентно
         AtDelete(IndexOf(Item)).
         См. так же: TCollection.AtDelete, TCollection.DeleteAll

 DeleteAll procedure DeleteAll;
         Удаляет все элементы из коллекции, устанавливая Count в 0.
         См. так же: TCollection.Delete, TCollection.AtDelete

 Error   procedure Error(Code, Info: Integer); virtual;
                                              Перекрывается: Иногда
         Вызывается, когда   встречается   ошибка   коллекции.   По
         умолчанию этот метод генерирует ошибку  времени выполнения
         212.
         См. так же: константы коллекции coXXXX

 FirstThat function FirstThat(Test: Pointer) : Pointer;
         FirstThat применяет булевскую функцию, заданную указателем
         на функцию Test к каждому элементу коллекции до  тех  пор,
         пока  test  возвращает  True.  Результат  -  указатель  на
         элемент, для которого Test возвращает True,  или nil, если
         функция Test  возвращает  False  для всех элементов.  Test
         должна указывать    на    дальнюю    локальную    функцию,
         использующую только   один   параметр   типа   Pointer   и
         возвращающую значение типа Boolean. Например

         function Matches(Item: Pointer) : Boolean; far;

         Функция Test не может быть глобальной функцией.
         Предполагая, что List типа TCollection, оператор

         P := List.FirstThat(@Matches);

         соответствует

     I := 0;
     while (I < List.Count) and not Matches(List.At(I)) do Inc(I);
     if I < List.Count then P := List.At(I) else P := nil;

         См. так же: TCollection.LastThat, TCollection.ForEach

 ForEarch procedure ForEarch(Action: Pointer);
         ForEach применяет действие,  определенное  процедурой,  на
         которую указывает Action,  для каждого элемента коллекции.
         Action должен указывать на  локальную  дальнюю  процедуру,
         использующую один параметр типа Pointer. Например

         function PrintItem(Item: Pointer);

         Процедура Action не может быть глобальной процедурой.
         Если List типа TCollection, оператор

         List.ForEach(@PrintItem);

         соответствует

         for I := 0 to List.Count - 1 do PrintItem(List.At(I));

         См. так же: TCollection.FirstThat, TCollection.LastThat

 Free    procedure Free(Item: Pointer);
         Удаляет и освобождает Item. Эквивалентно

         FreeItem(Item);
         Delete(Item);

         См. так же: TCollection.FreeItem, TCollection.Delete

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

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

 FreeItem procedure FreeItem(Item: Pointer); virtual;
                                              Перекрывается: Иногда
         Метод FreeItem   должен  освобождать  Item.  По  умолчанию
         TCollection.FreeItem предполагает,   что   Item   -    это
         указатель на  объект,  порожденный  от  TObject  и поэтому
         вызывает дестрактор Done:

         if Item <> nil then dispopse(PObject(Item), Done);

         FreeItem вызывается из  Free  и  FreeAll,  но  никогда  не
         должен вызываться прямо.

         См. так же: TCollection.Free, TCollection.FreeAll

 GetItem function   TCollection.GetItem(var  S:  TStream): Pointer;
                    virtual;                  Перекрывается: Иногда
         Вызывается из   TCollection.Load   для   каждого  элемента
         коллекции. Этот метод может быть перекрыт,  но  не  должен
         вызываться напрямую.   По   умолчанию  TCollection.GetItem
         предполагает, что элементы коллекции порождены  от TObject
         и вызывает TString.Get для загрузки элемента:

         GetItem := S.Get;

         См. так       же:      TStream.Get,      TCollection.Load,
         TCollection.Store

 IndexOf functionIndexOf(Item: Pointer): Integer; virtual;
                                             Перекрывается: Никогда
         Возвращает индекс  для  Item.   Преобразует   операцию   в
         TCollection.At. Если   Item  -  не  в  коллекции,  IndexOf
         возвращает -1.

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

 Insert  procedure Insert(Item: Pointer); virtual;
                                             Перекрывается: Никогда
         Вставляет Item в коллекцию,  перестраивая другие  индексы,
         если необходимо. По умолчанию вставка производится в конец
         коллекции вызовом AtInsert(Count, Item);

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

 LastThat function LastThat(Test: Pointer): Pointer;
         LastThat применяет булевскую функцию,  заданную указателем
         на функцию Test,  к каждому элементу коллекции в  обратном
         порядке до тех пор,  пока Test не вернет True. Результат -
         указатель на элемент,  для которого Test возвращает  True,
         или nil,  если  функция  Test  возвращает  False  для всех
         элементов. Test  должен  указывать  на  дальнюю  локальную
         функцию, использующую   один   параметр   типа  Pointer  и
         возвращающую типа Boolean, например

         function Patches(Item: Pointer): Boolean; far;

         Функция Test не может быть глобальной функцией.
         Если List типа TCollection, оператор

         P := List.LastThat(@Matches);

         соответствует

         I := List.Count - 1;
         while (I >= 0) and Matches(List.At(I)) do Dec(I);
         if I >= 0 then P := List.At(I) else P := nil;

         См. так же: TCollection.FirstThat, TCollection.ForEach;

 Pack    Procedure Pack;
         Удаляет все nil указатели в коллекции.

         См. так же: TCollection.Delete, TCollection.DeleteAll

 PutItem procedure PutItem(var S: TStream; Item: Pointer); virtual;
                                              Перекрывается: Иногда
         Вызывается из  TCollection.Store  для   каждого   элемента
         коллекции.  Этот  метод может быть перекрыт,  но не должен
         вызываться прямо.   По    умолчанию    TCollection.PutItem
         предполагает, что   элементы   коллекций   порождаются  от
         TObject и вызов TString.Put сохраняет элемент:

         S.Put(Item);

         См. так   же:   TCollection.GetItem,    TCollection.Store,
         TCollection.Load

 SetLimit procedure SetLimit(ALimit: Integer); virtual;
                                               Перекрывается: Редко
         Расширяет или сокращает коллекцию,  изменяя распределенный
         размер в   ALimit.   Если   ALimit   меньше   Count,    он
         устанавливается в    Count,    и    если   ALimit   больше
         MaxCollectionSize, он устанавливается в MaxCollectionSize.
         Кроме того,  если  ALimit   отличается  от текущего Limit,
         распределяется новый массив  Items  из  Alimit  элементов,
         старый  массив  Items  копируется  в новый массив и старый
         массив освобождается.

         См.так же:    TCollection.Limit,    TCollection.Count,
                       переменная MaxCollectionSize

 Store   procedure Store(var S: TStream);
         Сохраняет коллекцию  и  все  ее  элементы  в   потоке   S.
         TCollection.Store вызывает TCollection.PutItem для каждого
         элемента коллекции.

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


 
                              Назад | Содержание | Вперед

 

 

\

Подписка на новости IT-портала citforum.ck.ua
(библиотека, citforum.ck.ua, CitCity)

Новые публикации:

12 марта

  • Восход и закат High Performance Fortran: наглядный урок истории (пересказ: С.Кузнецов)
  • citforum.ck.ua:

    Новые Блогометки:

  • Ccze: хорошее модульное средство подсветки логов
  • PWSafe - кроссплатформенное средство для работы с паролями
  • colordiff - подсветка для diff
  • psmisc: рассмотрим ближе стандартный пакет
  • Работа с сетью
  • xkb, узелок на память
  • ffmpeg-php
  • debiannotes:desktop:prettyfonts
  • 5 марта

    citforum.ck.ua:

  • Ричард Столлман в Москве
  • О мудром доценте замолвите слово... (Интенсификация Малаховна)
  • Новые Блогометки:

  • "Десктопизация" OpenBSD
  • weather: проверяйте сводку и прогноз погоды из командной строки
  • hpodder: клиент подкастов, который просто работает
  • bc: язык численных расчетов с произвольной точностью
  • Decibel: аудиоплеер для людей
  • GNU Wget: загрузите весь понравившийся сетевой контент на локальный компьютер
  • Deborphan: найдите ненужные пакеты
  • Kivio: мощный и простой в использовании редактор блок-схем
  • Cowsay: настраиваемая говорящая и думающая корова
  • Thoggen: основанная на GTK+ программа для извлечения видео с DVD
  • 28 февраля

  • Подбор и развитие команд
    Глава из книги «Руководство командой разработчиков программного обеспечения. Прикладные мысли» (С.Архипенков)
  • citforum.ck.ua:

    Дискуссия об анонимусах:

  • К комментаторам
  • Windows против Linux - психологический портрет участников форумов
  • Новые Блогометки:

  • Nokia N810 - Linux Inside
  • LiMo - стандарты Linux для сотовых телефонов
  • timer-applet: таймер для панели GNOME
  • Debfoster: удалите пакет и все его зависимости
  • GPW: генератор произносимых паролей
  • AMOR: общество для рабочего стола
  • 20 февраля

    citforum.ck.ua:

    Новые Блогометки:

  • Кое-что о приложениях KDE 4
  • Инструкция по установке KDE 4 в Ubuntu
  • Настоящие мужчины ставят KDE из SVN!
  • Начат переход Amarok на Qt 4.4
  • Marble
  • Dillo - сверхбыстрый браузер
  • Создаем резервные копии настроек программ и важных файлов в Ubuntu LInux
  • NTP: всегда вовремя
  • VYM - простое средство зарисовки мыслей и планирования
  • KBibTeX: простой и гибкий редактор библиографий для KDE
  • Дискуссия Windows vs Linux:

  • Жил-был Мальчик, или Сказочка о Том, Откуда Берутся "КУЛХАЦКЕРЫ", ненавидящие Линукс и Юникс
  • 13 февраля

  • Терминологический словарь Wi-Fi
  • Задача проектирования базы данных методом нормализации
  • CitCity:

  • Лучшие смартфоны начала 2008 года
  • citforum.ck.ua:

  • Первый взгляд на Firefox 3.0
  • Open Source на Белгородщине: семинар в Старом Осколе
  • Что такое KDE?
  • Цикл о Slackware:

  • Русский в консоли
  • Быстрая настройка Иксов
  • xorgconfig - консольный подход
  • 6 февраля

    citforum.ck.ua:

  • Мобильный Linux – вчера, сегодня, завтра
  • Чем записать диски в Linux? Попробуй Brasero!
  • Консольные команды
  • Рецепты. Кое-что о программе mplayer
  • Slackware:
    • Что такое Slackware?
    • Установка Slackware - Загрузка
    • Категории программного обеспечения
    • Структура файловой системы
    • Система инициализации Slackware Linux
    • Скрипты инициализации уровня запуска

    30 января

  • Обзор алгоритмов MOLAP
  • CitCity:

  • BI-технологии 2007. Итоги года
  • Рынок СУБД для Хранилищ данных 2007. Итоги года, тенденции
  • Обзор рынка BI (по результатам исследований IDC, OLAP Report, Gartner)
  • Модель зрелости BI
  • citforum.ck.ua:

  • Владимир Попов: За что я люблю Linux
  • Священные войны
  • 23 января

  • Data Mining от Oracle: настоящее и будущее
  • Комментарии к статье Ч.Бергера «Data Mining от Oracle: настоящее и будущее»
  • Байесовский классификатор и регрессионная модель в ORTD: практический пример
  • citforum.ck.ua:

    Дискуссия Windows vs Linux:

  • Программисты и фирмы: кто кого
  • О "чистых пользователях"
  • Новые Блогометки:

    • Почему Jabber, а не ICQ?
    • Archlinux install quick
    • Arch на IBM Z60m
    • Arch + IBM R50e
    • OpenBSD - сборка E17-cvs (или ещe одна маленькая победа разума)
    • OpenBSD - всe для Человека и ради Человека...
    • PekWM
    • E17 и "прозрачность"
    • E17 - приятные мелочи (multimedia)
    • SuSE + Enlightenment = угробил целый день

    16 января

  • Вьетнам компьютерной науки (пересказ - С.Кузнецов)
  • Пример построения автоматизированного управления дисками (ASM) (В. Пржиялковский)
  • CitCity:

  • 2008 год: антипрогноз
  • citforum.ck.ua:

    Новые Блогометки:

    Сети и Интернет:

    • Mozilla firefox. Шрифты в меню
    • Screen tips
    • Liferea: программа чтения RSS для GNOME
    • HTTrack: скачивание и зеркалирование сайтов
    • Clusterssh: работа с несколькими сеансами SSH через общий интерфейс

    Десктопы:

    • Fluxbox & xinitrc. Some new tips
    • Как я конфигурировал xdm

    Системы:

    • SuSE 10.2: zypper - еще один способ установки пакетов
    • cpipe: определите пропускную способность конвейера команд
    • gddrescue: средство восстановления данных с поврежденных носителей
    • VirtualBox: ваш виртуальный ПК

    Приложения:

    • MyTop: top для MySQL

    10 января

    citforum.ck.ua:

    Дискуссионный клуб:

  • Краткое руководство по общению с никсофилами (Интенсификация Малаховна Сергина-Гейтс)
  • О троллях
  • Пещера горного короля: заметки о троллинге
  • Новые Блогометки:

    Сети и Интернет:

    • Делаем блог на Drupal
    • Использование lftp
    • Устанавливаем FTP сервер ProFTPd с TLS шифрованием
    • Управляем файлами на FTP сервере с помощью FileZilla

    Десктопы:

    • fluxbox.autorun
    • 15 человек на сундук мертвеца! (или песнь о зарытых сокровищах)

    Системы:

    • Живой Debian или рабочее место в кармане
    • Разбивка hdd

    Приложения:

    • Cat Excel files
    • Vim: меню выбора кодировок

    26 декабря

    citforum.ck.ua:

  • В Блогометках открыты разделы:
    • Софт для Windows
    • Сети и Интернет
  • dwm. От статики к динамике
  • Установил Solaris
  • Новая Дискуссия:
    • Нужен ли русский Linux?

    19 декабря

  • SQL Anywhere: встраиваемая СУБД
  • citforum.ck.ua:

  • В разделе Блогометки появились рубрики:
    • Десктопы
    • Приложения
    • Системы
  • Подробно о разделе: Блоги и блогометки: открываем сезон промывки
  • 13 декабря

    CitCity:

  • Microsoft и Барселона: сюрреализм?
  • citforum.ck.ua:

  • Открыт новый раздел Блогометки
  • ZFS в подробностях. 1. Былое и ныне
  • 5 декабря

  • Архитектура предприятия: основные определения
  • Архитектуры для государственных ведомств. Примеры
  • Обзор журнала Computer:

  • Высокопроизводительные встроенные системы
  • citforum.ck.ua:

  • Продолжение цикла Linux для начинающих:
    • Пользовательские интерфейсы
    • Файлы
    • Системы настройки

    Все публикации >>>




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

Информация для рекламодателей Пресс-релизы -
Послать комментарий
Информация для авторов
Rambler's Top100 хостинг от .masterhost This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2007 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...