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

Friday, 14-Mar-2008 17:12:18 EET

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

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


TScrollBar Views


                   +---------+
                   | TObject |
                   +----+----+
                    +---+---+
                    | TView |
                    +---+---+
                 +======+=====+
                 | TScrollBar |
                 +============+



Поля

 Value   Value : Integer;                             Только чтение
         Поле Value  представляет текущую позицию индикатора полосы
         скроллинга. Этот маркер выделенный цветом, перемещается по
         полосе    скроллинга,   указывая   относительную   позицию
         (горизонтальную или вертикальную в зависимости  от  полосы
         скроллинга) в тексте относительно всего текста, доступного
         для скроллинга.  Многие события могут прямо  или  косвенно
         изменять    Value    такие,    как   отметки   мышкой   на
         элементах полосы скроллинга,  изменение размера  окна  или
         изменение текста в скроллере. Аналогично изменения в Value
         могут потребовать отображение в  события.  TScroolBar.Init
         устанавливает Value в 0.

         См. так   же:  TScrollBar.SetValue,  TScrollBar.SetParams,
         TScrollBar.ScrollDraw,              TScroller.HandleEvent,
         TScrollBar.Init

 Min     Min: Integer;                                Только чтение
         Min представляет  минимальное  значение  поля  Value.   По
         умолчанию TScrollBar устанавливает Min в 0.

         См. так же: TScrollBar.SetRange, TScrollBar.SetParams

 Max     Max: Integer;                                Только чтение
         Max представляет  максимальное  значение  поля  Value.  По
         умолчанию TScrollBar устанавливает Max в 0.

         См. так же: TScrollBar.SetRange, TScrollBar.SetParams

 PgStep  PgStep: Integer;                             Только чтение
         PgStep - это количество добавляемое или вычитаемое из поля
         Value полосы скроллинга,  когда событие от мышки возникает
         в любой части области страницы  (sbPageLeft,  sbPageRight,
         sbPageUp, sbPageDown)   или   обнаруженные   эквивалентные
         клавиши (Ctrl-ц,  Ctrl-ч,  PgUp,   PgDn).   По   умолчанию
         TScrollBar.Init устанавливает  PgStep  в  1.  PgStep может
         изменяться при      использовании      TScrollBar.SetStep,
         TScrollBar.SetParams и TScroller.SetLimit.

         См. так  же:   TScrollBar.SetStep,   TScrollBar.SetParams,
         TScroller.SetLimit, TScrollBar.ScrollStep

 ArStep  ArStep: Integer;                             Только чтение
         ArStep - это количество добавляемое или вычитаемое из поля
         Value полосы скроллинга  когда  отмечена  область  стрелок
         (sbLeftArrow, sbRightArrow,  sbUpArrow,  sbDownArrow)  или
         обнаружены эквивалентные  нажатия  клавиш.  По   умолчанию
         TScrollBar,Init устанавливает ArStep в 1.

         См. так   же:   TScrolBar.SetStep,    TScrollBar.SetParam,
         TScrollBarScrollStep



Методы

 Init    constructor Init(var Bounds: TRect);
         Создает и инициализирует  полосу  скроллинга  с  границами
         Bounds, вызывая    TView.Init.    Value,    Max    и   Min
         устанавливаются в 0.  PgStep и ArStep устанавливаются в 1.
         Формы элементов    полосы    скроллинга    по    умолчанию
         устанавливаются в TScrollChars.
         Если Bounds  задает  Size.X = 1,  Вы получите вертикальную
         полосу скроллинга,  иначе -  горизонтальную.  Вертикальные
         полосы скроллинга  имеют  поле  GrowMode,  установленное в
         gfGrowLoX + gfGrowHiX  +  gfGrowHiY;  вертикальные  полосы
         скроллинга имеют поле GrowMode,  установленное gfGrowLoY +
         gfGrouHiX + gfGrowHiY.

 Load    constructor Load(var S: TStream);
         Создает и загружает полосу скроллинга из потока S, вызывая
         TView.Load, затем  читая  5  целочисленных   полей   через
         S.Read.

         См. так же: TScrollBar.Store

 Draw    procedure Draw; virtual;            Перекрывается: Никогда
         Рисует полосу скроллинга в зависимости от  текущих Bounds,
         Value и палитры.

         См. так же: TScrollBar.ScrollDraw, TScrollBar.Value

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

 HandleEvent procedure HandleEvent(var Event: TEvent); virtual;
                                             Перекрывается: Никогда
         Обрабатывает события    полосы     скроллинга,     вызывая
         TView.HandleEvent, затем анализируя Event.What. События от
         мышки - это общие сообщения  владельцу  полосы  скроллинга
         (см. функцию   Message),   которые  должны  обрабатываться
         неявными изменениями полосы скроллинга, например скроллинг
         текста. TScrollBar.HandleEvent  так  же определяет,  какая
         часть полосы скроллинга получила  отметку  от  мышки  (или
         эквивалентную клавишу).   Поле   Value   настраивается   в
         соответствии с  текущими  значениями  ArStep  и  PgStep  и
         индикатор полосы скроллинга перерисовывается.

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

 ScrollDraw procedure ScrollDraw; virtual;     Перекрывается: Редко
         ScrollDraw вызывается  при  изменении  поля  Value.   Этот
         псевдоабстрактный метод   вызывается  передачей  сообщения
         cmScrollBarChanged владельцу полосы скроллинга:

         Message(Owner, evBoadcast, cmScrollBarChanged, @Self);

         См. так же: TScrollBar.Value, Message функция

 ScrollStep function ScrollStep(Part: Integer): Integer; virtual;
                                             Перекрывается: Никогда
         По умолчанию  ScrollStep  возвращает   положительное   или
         отрицательное значение  шага в зависимости от части полосы
         скроллинга,  заданной в Part и текущих значений  ArStep  и
         PgStep. Аргумент Part должен быть одной из констант sbXXXX
         описанных в главе 14.

         См. так же: TScrollBar.SetStep, TScrollBar.SetParams

 SetParams procedure SetParams(AValue,AMin, AMax, APgStep, AArStep:
                              Integer);
         SetParams устанавливает поля Value,  Min,  Max,  PgStep  и
         ArStep в  заданные  значения.  Если аргументы конфликтуют,
         выполняются согласования.  Например,  Min  не  может  быть
         больше Max,  поэтому если AMax < AMin, Max устанавливается
         в Min.  Value  должно  лежать  в  диапазоне  [Min,   Max],
         поэтому, если  Value < AMin,  Value устанавливается в Min;
         если AValue > AMax,  Value устанавливается в Max. DrawView
         перерисовывает полосу  скроллинга.  Если Value изменяется,
         будет вызвана ScroolDraw.

         См. так   же:    TView.DrawView,    TScrollBar.ScrollDraw,
         TScrollBar.SetRange, TScrollBar.SetValue

 SetRange procedure SetRange(AMin, AMax: Integer);
         SetRange задает  допустимый  диапазон  для   поля   Value,
         устанавливая Min  и  Max в AMin и AMax.  SetRange вызывает
         SetParams, поэтому DrawView и ScroolBar  будут вызываться,
         если изменения требуют перерисовки полосы скроллинга.

         См. так же: TScrollBar.SetParams

 SetStep procedure SetStep(APgStep, AArStep: Integer);
         SetStep устанавливает поля PgStep и ASrStep  в  APgStep  и
         AArStep. Этот   метод   вызывает  SetParams  с  остальными
         аргументами, равными их текущим значениям.

         См. так же: TScrollBar.SetParams, TScrollBar.ScrollStep

 SetValue procedure SetValue(AValue: Integer);
         SetValue устанавливает   поле   Value  в  AValue,  вызывая
         SetParams с остальными аргументами,  установленными  в  их
         текущие значения.  DrawView и ScrollDraw вызываются,  если
         этот вызов изменяет значение Value.

         См. так   же:   TScroll   Bar.SetParams,   TView.DrawView,
         TScrollBar.ScrollDraw, TScroller.ScrollTo

 Store   procedure Store(var S:TStream);
         Сохраняет объект   TScrollBar   в   потоке   S,    вызывая
         TView.Store, затем   записывая  5  целочисленных  полей  в
         поток, используя S.Write.

         См. так же: TScrollBar.Load


Палитра

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

                        1   2   3
                      +===+===+===+
         CScrollBar   | 4 | 5 | 5 |
                      +=+=+=+=+=+=+
         Страница ------+   |   +----- Индикатор
         Стрелки -----------+



TScroller Views


                     +---------+
                     | TObject |
                     +----+----+
                     +----+----+
                     |  TView  |
                     +----+----+
                    +=====+=====+
                    | TScroller |
                    +=====+=====+
                   +------+------+
                   | TTextDevice |
                   +------+------+
                    +-----+-----+
                    | TTerminal |
                    +-----------+



Поля

 HScrollBar  HScrollBar:PScrollBar;                  Только чтение
         Указывает на горизонтальную полосу скроллинга, связанную с
         этим скроллером.  Если  такой   полосы   скроллинга   нет,
         HScroolBar равен nil.

 VScrollBar  VScrollBar: PScrollBar;                 Только чтение
         Указывает на вертикальную полосу скроллинга,  связанную  с
         этим   скроллером.   Если  такой  полосы  скроллинга  нет,
         VScroolBar равен nil.

 Delta   Delta: TPoint;                              Только чтение
         Содержит Х  (горизонтальная) и Y (вертикальная) компоненты
         позиции скроллера   относительно   вирутального   видимого
         элемента. Автоматический  скроллинг достигается изменением
         одной или обоих компонент в ответ,  например,  на  события
         полосы скроллинга,  изменяющих значения поля Value. Ручной
         скроллинг изменяет  Delta,  отображает  изменения  в  поле
         Value полосы    скроллинга   и   приводит   к   обновлению
         индикаторов полосы скроллинга.

         См. так же: TScroller.ScrollDraw, TScroller.ScrollTo

 Limit   Limit: TPoint;                              Только чтение
         Limit.X Limit.Y  - это максимально допустимые значения для
         Delta.X и Delta.Y.

         См. так же: TScroller.Delta



Методы

 Init    constructor    Init(var   Bounds:   TRect;   AHScrollBar,
                            AVScrollBar: PScrollBar);
         Создает и   инициализирует  объект  TScroller  с  заданным
         размером и полосами скроллинга.  Вызывает  TView.Init  для
         установки размера      видимого      элемента.     Options
         устанавливается в     ofSelectabble,      а      EventMask
         устанавливается в  evBroadcast.  AHScrollBar  должен  быть
         nil, если Вы не хотите горизонтальную  полосу  скроллинга;
         аналогично AVScrollBar должен быть nil,  если Вы не хотите
         вертикальной полосы скроллинга.

         См. так же: TView.Init, TView.Options, TView.EventMask

 Load    constructor Load(var S: TStream);
         Загружает видимый  элемент скроллера из потока S,  вызывая
         TView.Load, затем  восстанавливает  указатели  на   полосы
         скроллинга, используя GetPeerViewPtr и читает поля Delta и
         Limit, используя S.Read.

         См. так же: TScroller.Store

 ChangeBounds procedure ChangeBounds(var Bounds: TRect); virtual;
                                             Перекрывается: Никогда
         Изменяет размер   скроллера,   вызывая   SetBounds.   Если
         необходимо, скроллер  и полосы скроллинга перерисовываются
         вызовом DrawView и SetLimit.

         См. так     же:      TView.SetBounds,      TView.DrawView,
         TScroller.SetLimit

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

 HandleEvent  procedure HandleEvent(var Event: TEvent); virtual;
                                               Перекрывается: Редко
         Обрабатывает большинство         событий,          вызывая
         TView.HandleEvent. Общие      события      с      командой
         cmScrollBarChanged, если  они  пришли  от  HScrollBar  или
         VScrollBar, приводят к вызову TScroller.ScrollDraw.

         См. так же: TView.HandleEvent, TScroller.ScrollDraw

 ScrollDraw  procedure ScrollDraw; virtual;  Перекрывается: Никогда
         Проверяет, соответствует ли Delta соответствующим позициям
         полос скроллинга.  Если  нет  -  Delta  устанавливается  в
         корректное значение и вызывается DrawView  для перерисовки
         скроллера.

         См. так      же:      TView.DrawView,     TScroller.Delta,
         TScroller.HscrollBar, TScroller.VScrollBar

 ScrollTo  procedure ScrollTo(X, Y: Integer);
         Устанавливает полосы   скроллинга   в   (X,   Y),  вызывая
         HScrollBar^.SetValue(X) и    VScrollBar^.SetValue(Y)     и
         перерисовывает видимый элемент, вызывая DrawView.

         См. так же: TView.DrawView, TScroller.SetValue

 SetLimit  procedure SetLimit(X, Y: Integer);
         Устанавливает Limit.X в X и Limit.Y в  Y,  затем  вызывает
         HScrollBar^.SetParams и  VScrollVar^.SetParams  (если  эти
         полосы скроллинга существуют),  чтобы  настроить  их  поля
         Max. Эти   вызовы  могут  привести  к  перерисовке  полосы
         скроллинга. Наконец вызывается  DrawView  для  перерисовки
         скроллера, если это необходимо.

         См. так    же:    TScroller.Limit,    TScroller.HScroller,
         TScroller.VScrollBar, TScrollBar.SetParams

 SetState  procedure   SetState(AState:  Word;   Enable:  Boolean);
         virtual;                              Перекрывается: Редко
         Этот метод вызывается при изменении  состояния  скроллера.
         Вызов TView.SetState   устанавливает   или  очищает  флаги
         состояния в State.  Если новое состояние  -  sfSelected  и
         sfActive, SetState отображает полосы скроллинга, иначе они
         скрываются.

 Store procedure Store(var S: TStream);
         Записывает скроллер в поток S,  вызывая TView.Store, затем
         сохраняет ссылки   на   полосы    скроллинга,    используя
         PutPeerViewPtr, наконец записывает значения Delta и Limit,
         используя S.Write.

         См. так же: TScroller.Load, TStream.Write


 Палитра

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

                       1   2
                     +===+===+
         CScroller   | 6 | 7 |
                     +=+=+=+=+
         Нормальный ---+   +---- Подсвеченный



TSortedCollection Objects


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

         TSortedCollection порожден  от  TCollection  и   реализует
         коллекцию, отсортированную   по  ключу  без  дублирования.
         Сортировка производится методом TStringCollection.Compare,
         который Вы  перекрываете,  чтобы  задать  свое определение
         упорядочивания элементов.     Когда     новые     элементы
         добавляются, они   автоматически   втавляются  в  порядке,
         заданном методом Compare.  Элементы  будут  располагаться,
         используя двоичный метод  поиска TStringCollection.Search.
         Виртуальный   метод   KeyOf,  возвращающий  указатель  для
         Compare,  так же может быть перекрыт, если Compare требует
         дополнительной информации.



Методы

 Compare  function Compare(Key1, Key2: Pointer): Integer; virtual;
                                             Перекрывается: Всегда
         Compare -  это  абстрактный  метод,  который  должен  быть
         перекрыт во   всех   порожденных   типах.  Compare  должен
         сравнивать 2 ключевых значения и возвращать результат:

     --------------------------------------------
          -1   if Key1 < Key2
           0   if Key1 = Key2
           1   if Key1 > Key2
     --------------------------------------------

         Key1 и  Key2  -  это  значения указателей,  извлеченных из
         соответствующей коллеции         элементов         методом
         TSortedCollection.KeyOf. Метод    TSortedCollection.Search
         реализует двоичный поиск  элементов  коллекции,  используя
         Compare для сравнения элементов.

         См. так же:    TSortedCollection.KeyOf,
                        TSortedCollection.Compare

 IndexOf  function IndexOf(Item: Pointer): Integer; virtual;
                                             Перекрывается: Никогда
         Использует TSortedCollection.Search для нахождения индекса
         элемента Item.   Если  элемент  не  в  коллекции,  IndexOf
         возвращает -1. Реализация TSortedCollection.IndexOf:

         if Search(KeyOf(Item), I) then IndexOf := I
         else IndexOf := -1;

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

 Insert  procedure Insert(Item: Pointer); virtual;
                                             Перекрывается: Никогда
         Если элемент  не  найден  в  коллекции,  он  вставляется в
         позицию, определенную          индексом,          вызывает
         TSortedCollection.Search для  определения,  существует  ли
         элемент. Если   нет,   куда   вставить   его.   Реализация
         TSortedCollection.Insert:

         if nоt Search(KeyOf(Item), I) then AtInsert(I, Item)

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

 KeyOf   function KeyOf(Item: Pointer): Pointer; virtual;
                                              Перекрывается: Иногда
         Для данного    элемента    коллекции    KeyOf   возвращает
         соответствующий ключ      элемента.      По      умолчанию
         TSortedCollection.KeyOf просто   возвращает   Item.  KeyOf
         перекрывается в случае, когда ключ элемента не совпадает с
         элементом.

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

 Search function Search(Key: Pointer; var Index: Integer): Boolean;
                       virtual;                Перекрывается: Редко
         Возвращает True,  если  элемент,  заданный ключем Key,  не
         найден в отсортированной коллекции.  Если элемент  найден,
         Index устанавливается  в  найденный  индекс;  иначе  Index
         устанавливается в индекс,  куда будет  помещаться  элемент
         при вставке.

         См. так           же:           TSortedCollection.Compare,
         TSortedCollection.Insert



TStaticText                                                 Dialogs

                  +---------+
                  | TObject |
                  +----+----+
                   +---+---+
                   | TView |
                   +---+---+
                +======+======+
                | TStaticText |
                +======+======+
                   +---+----+
                   | TLabel |
                   +--------+

         Объекты TStaticText   представляют   простейшие    видимые
         элементы: они  содержат  фиксированный  текст и игнорируют
         все события, переданные им. Они используются как сообщения
         или  пассивные  метки.  Наследники  TStaticText  выполняют
         более активную роль.


Поля

 Text    Text: PString;                              Только чтение
         Указатель на   строку   текста,   отображаемую  в  видимом
         элементе.



Методы

 Init    constructor Init(var Bounds: TRect; AText: String);
         Создает объект  StaticText  заданного   размера,   вызывая
         TView.Init, затем устанавливая текст в NewStr(AText).

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

 Load    constructor Load(varS: TStream);
         Создает и инициализирует  объект  TStaticText  из  данного
         потока. Вызывает   TView.Load   и  устанавливает  текст  с
         помощью S.ReadStr.      Используется      совместно      с
         TStaticText.Store для  сохранения  и  чтения  статического
         текстового видимого элемента из потока.

         См. так же: TViewLoad, TStaticText.Store, TStream.ReadStr

 Done    destructor Done; virtual;             Перекрывается: Редко
         Освобождает строку  Text,  затем  вызывает  TView.Done для
         разрушения объекта.

 Draw    procedure Draw; virtual;              Перекрывается: Редко
         Рисует строку  текста внутри видимого элемента,  слово при
         необходимости переносится.  Ctrl-M в тексте  указывает  на
         начало новой строки.  Если строка начинается с Ctrl-C, она
         центрируется в видимом элементе.

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

 GetText  procedure GetText(varS: String); virtual;
                                              Перекрывается: Иногда
         Возвращает в S строку, на которую указывает Text.

 Store   procedure TStaticText.Store(var S: TStream);
         Сохраняет объект TStaticText в потоке, вызывая TView.Store
         и S.WriteStr.  Используется совместно с  TStaticText.Store
         для сохранения  и  чтения статического текстового видимого
         элемента из потока.

         См. так же: TStaticText.Load, TView.Store, TStream.WriteStr



Палитра

         Статический текст    использует   палитру   по   умолчанию
         CStaticText для  отображения   в   6-й   элемент   палитры
         стандартного диалога.

                             1
                           +===+
              CStaticText  | 6 |
                           +=+=+
              Цвет текста ---+



TStatusLine Menus


                     +---------+
                     | TObject |
                     +----+----+
                     +----+----+
                     |  TView  |
                     +----+----+
                   +======+======+
                   | TStatusLine |
                   +=============+

         Объект TStatusLine   -   это   видимый   элемент,   обычно
         отображаемый внизу   экрана.   Типичная   строка   статуса
         отображает список   доступных  горячих  клавиш,  свободную
         память, время  дня,   текущий   режим   редактирования   и
         подсказки пользователя.        Отображаемые       элементы
         устанавливаются в     связанный     список,      используя
         InitStatusLine в   TApplication   и  отображаемый  элемент
         зависит от контекста подсказки текущего видимого элемента.
         Как и  полоса меню и панель экрана,  строка статуса обычно
         принадлежит группе TApplication.
         Элементы строки  статуса  -  это  записи типа TStatusItem,
         которые содержат поля для текстовой строки, отображаемой в
         строке статуса,   кода   ключа,   связываемого  с  горячей
         клавишей (обычно функциональная клавиша или комбинация Alt
         -клавиша) и команды, генерируемой, если отображаемый текст
         отмечен мышкой или нажата горячая клавиша.
         Строка статуса    отображает    контекстно-ориентированную
         подсказку. Каждый объект строки статуса содержит связанный
         список строк   статуса  Defs  (типа  TStatusDef),  которые
         определяют диапазон   контекстных   подсказок   и   список
         элементов статуса,  отображаемый,  когда  текущий контекст
         подсказки находится в этом диапазоне.  Кроме  того,  может
         отображаться предопределенная   строка  в  соответствии  с
         текущим контекстом подсказки.



Поля

 Items   Items: PStatusItem;                         Только чтение
         Указатель на  текущий  связанный   список   записей   типа
         TStatusItem.

         См. так же: TStatusItem

 Defs    Defs: PStatusDef;                           Только чтение
         Указатель на  текущий  связанный   список   записей   типа
         TStatusDef. Список  для использования определяется текущим
         контекстом подсказки.

         См. так      же:      TStatusDef,      TStatusLine.Update,
         TStatusLine.Hint



Методы

 Init    constructor Init(var Bounds: TRect; ADefs: PStatusDef);
         Создает объект  TStatusLine  с  размером  Bounds,  вызывая
         TView.Init. Бит ofPreProcess  в  Options  устанавливается,
         EventMask устанавливается,  включая evBroadcast и GrowMode
         устанавливается в gfGrowLoY + gfGrowHiX +  gfGrowHiY. Поле
         Defs устанавливается  в  ADefs.  Если  ADefs - nil,  Items
         устанавливается  в   nil,  иначе   Items устанавливается в
         ADefs^.Items.

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

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

         См. так же: TView.Load, TStatusLine.Store

 Done    destructor Done; virtual;           Перекрывается: Никогда
         Освобождает все Items и Defs в объекте  TStatusLine, затем
         вызывает TView.Done.

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

 Draw    procedure Draw; virtual;              Перекрывается: Редко
         Рисует строку статуса,  выводя  строку  Text  для  каждого
         элемента статуса,  затем  все подсказки,  определенные для
         данного текущего   контекста    подсказки    за    полосой
         разделителя.

         См. так же: TStatusLine.Hint

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

 HandleEvent  procedure HandleEvent(var Event: TEvent); virtual;
                                               Перекрывается: Редко
         Обрабатывает события, передаваемые строке статуса, вызывая
         TView.HandleEvent, затем проверяет на 3  вида  специальных
         событий. Отметки    мышкой,    которые   попадают   внутрь
         прямоугольника, занимаемого элементом  статуса, генерируют
         командное событие с Event.What,  установленного в Command,
         для этого  элемента   статуса.   События   от   клавиатуры
         сравниваются с    полем    KeyCode    каждого    элемента;
         соответствие вызывает командное событие  с  Command  этого
         элемента. Общие  события с командой cmCommand,  SetChanged
         заставляют строку  статуса  перерисовывать   себя,   чтобы
         отразить любые   горячие   клавиши,   которые  могут  быть
         разрешены или запрещены.

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

 Hint    function Hint(AHelpCtx: Word): String; virtual;
                                               Перекрывается: Часто
         Этот псевдоабстрактный метод возвращает пустую  строку. Он
         должен быть     перекрыт     для     обеспечения    строки
         контекстно-ориентированной подсказки     для     аргумента
         AHelpCtx. Непустая   строка   будет  рисоваться  в  строке
         статуса после полосы разделителя.

         См. так же: TStatusLine.Draw

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

         См. так же: TView.Store, TStatusLine.Load

 Update  procedure Update;
         Выбирает корректный Items из списка Defs. В зависимости от
         текущего контекста подсказки,  затем вызывает DrawView для
         перерисовки строки статуса, если элементы были изменены.

         См. так же: TStatusLine.Defs



Палитра

         Строки статуса используют палитру по умолчанию CStatusLine
         для отображения   в   элементы  со  2  по  7-й  в  палитре
         стандартной программы.


                  1    2    3    4    5    6
               +====+====+====+====+====+====+
CStatusLine    |  2 |  3 |  4 |  5 |  6 |  7 |
               +==+=+==+=+==+=+==+=+==+=+==+=+
Нормальный текст -+    |    |    |    |    +-- Выбранный короткий
Запрещенный текст -----+    |    |    +------ Выбранный запрещенный
Короткий текст -------------+    +------------ Выбранный нормальный



TStream Objects


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

         TStream -  это  общий  абстрактный  обект,  обеспечивающий
         полиморфический В/В  в  и/из устройства памяти.  Вы можете
         создать порожденный объект потока,  перекрывая виртуальные
         методы GetPos,  GetSize,  Read,  Seek,  Truncate  и Write.
         Turbo Vision делает это в порожденных потоках TDosStream и
         TEmsStream. Для  порожденного  буферизованного  потока  Вы
         должны так же перекрыть TStream.Flush.


Поля

 Status  Status: Integer;                             Чтение/Запись
         Указывает текущий статус потока:

             Таблица 13.1. Коды ошибок потока.

     -------------------------------------------------
     Коды ошибок TStream
     -------------------------------------------------
     stOk          Нет ошибок
     stError       Ошибка доступа
     stInitError   Нельзя инициализироввать поток
     stReadError   Чтение за концом файла
     stWriteError  Нельзя расширить поток
     stGetError    Get для незарегистрированного типа
     stPutError    Put для незарегистрированного типа
     -------------------------------------------------

         Если Status  <>  stOK,  все  операции  над  потоком  будут
         запрещены до тех пор, пока не будет вызван Reset.

 ErrorInfo  ErrorInfo: Integer;                       Чтение/Запись
         Содержит дополнительнительную информацию когда  Status  не
         stOK. Для    значений    Status:   stError,   stInitError,
         stReadError, stWriteError,  ErrorInfo содержит код  ошибки
         DOS или   EMS,   если   такой   существует.  Когда  Status
         stGetError, ErrorInfo  содержит  IDE  типа  объекта  (поле
         ObjType в TStreamRec) не зарегистрированного типа объекта.
         Когда Status - stPutError, ErrorInfo содержит смещение VMT
         в сегменте   данных   (поле   VmtLink   в  TStreamRec)  не
         зарегистрированного типа объекта.



Методы

 CopyFrom  procedure CopyFrom(var S: TStream; Count: Longint);
         Копирует Count  байт  из  потока  S  в  вызывающий  поток.
         Например:

         NewStream := New(TEmsStream, Init(OldStream^.GetSize));
         OldStream^.Seek(0);
         NewStream^.CopyFrom(OldStream, OldStream^.GetSize);

         См. так же: TStream.GetSize, TObject.Init

 Error   procedure Error(Code, Info: Integer); virtual;
                                              Перекрывается: Иногда
         Вызывается, если  возникла  ошибка  потока.  По  умолчанию
         TStream.Error сохраняет Code  и  Info  в  полях  Status  и
         ErrorInfo. Затем,  если  глобальная переменная StreamError
         не nil,  вызывает процедуру, заданную в StreamError. После
         возникновения ошибки,  все  операции над потоком запрещены
         до тех пор, пока не будет вызван Reset.

         См. так же: TStream.Reset, StreamError переменная

 Flush   procedure Flush; virtual;            Перекрывается: Иногда
         Абстрактный метод,  который должен быть перекрыт, если Ваш
         порожденный тип  реализует   буфер.   Этот   метод   может
         выталкивать любые буфера,  очищая буфер чтения и записывая
         буфер вывода. По умолчанию TStream.Flush ничего не делает.

         См. так же: TDosStream.Flush

 Get     function Get: PObject;
         Читает объект из потока. Объект должен быть предварительно
         записан в поток через TStream.Put.  Get вначале читает  ID
         типа объекта   (слово)   из   потока.   Затем  он  находит
         соответствующий тип объекта,  сравнивая ID с полем ObjType
         всех зарегистрированных    типов    объектов    (см.   тип
         TStreamRec). Наконец вызывает констрактор Load  этого типа
         объекта для  создания  и  загрузки  объекта.  Если ID типа
         объекта, считанного из потока,  равен  0,  Get  возвращает
         указатель nil;  если  ID  типа  объекта не зарегистрирован
         (используя RegisterType)  Get  вызывает  TStream.Error   и
         возвращает указатель  nil;  иначе Get возвращает указатель
         на вновь созданный объект.

         См. так же:  TStream.Put,  RegisterType,  TStreamRec, Load
         методы

 GetPos  function GetPos: Longint; virtual;   Перекрывается: Всегда
         Возвращает текущую  позицию  в  потоке.  Этот  абстрактный
         метод должен всегда перекрываться.

         См. так же: TStream.Seek

 GetSize  function GetSize: Longint; virtual; Перекрывается: Всегда
         Возвращает размер потока.  Это абстрактный метод и  должен
         перекрываться.

 Put     procedure Put(P: PObject);
         Записывает объект в поток.  Объект позже можно считать  из
         потока, используя   TStream.Get.   Put   вначале   находит
         регистрационную запись  типа  этого   объекта,   сравнивая
         смещение VMT     объекта     с    полем    VmtLink    всех
         зарегистрированных типов объектов  (см.  тип  TStreamRec).
         Затем записывает    ID    типа   объекта   (поле   ObjType
         регистрационной записи) в поток,  и наконец вызывает метод
         Store этого типа объекта для записи объекта. Если аргумент
         Р, переданный в Put - nil,  Put записывает в поток  слово,
         содержащее 0.  Если  тип  объекта  в  Р не зарегистрирован
         (испольуя RegisterType),  Put  вызывает  TStream.Error   и
         ничего не пишет в поток.

         См. так же:  TStream.Get,  RegisterType, TStreamRec, Store
         методы

 Read    procedure Read(var Buf; Count: Word); virtual;
                                              Перекрывается: Всегда
         Это абстрактный  метод  и  должен  перекрываться  во  всех
         порожденных типах. Read должен читать Count байт из потока
         в Buf и перемещать текущую позицию потока на  Count  байт.
         Если  произошла  ошибка,  Read  должен  вызывать  Error  и
         заполнять Buf Count байтами, равными 0.

         См. так же: TStream,Write, TStream.Error

 ReadStr  function ReadStr: PString;
         Читает строку   из   текущей   позиции  потока,  возвращая
         указатель PString.  TStream.ReadStr  вызывает  GetMem  для
         распределения (Length+1) байт для строки.

         См. так же: TStream.WriteStr

 Reset   procedure Reset;
         Сбрасывает ошибочное условие потока, устанавливая Status и
         ErrorInfo в   0.   Этот  метод  позволяет  Вам  продолжать
         обработку потока  после  ошибочной  ситуации,  которую  Вы
         скорректировали.

         См. так же: TStream.Status, TStream.ErrorInfo, sfXXXX коды
         ошибок

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

         См. так же: TStream.GetPos

 Truncate  procedure Truncate; virtual;       Перекрывается: Всегда
         Это абстрактный  метод  и  должен  перекрываться  во  всех
         потомках. TStream.Truncate  удаляет все данные в потоке от
         текущей позиции до конца.

         См. так же: TStream.GetPos, TStream.Seek

 Write   procedure Write(var Buf; Count: Word); virtual;
                                              Перекрывается: Всегда
         Это абстрактный  метод  и  должен  перекрываться  во  всех
         потомках. Write  записывает  Count  байт  из Buf в поток и
         перемещает текущую позицию  потока  на  Count  байт.  Если
         возникла ошибка, Write должен вызывать Error.

         См. так же: TStream.Read, TStream.Error

 WriteStr  procedure WriteStr(P: PString);
         Записывает строку P^ в поток, начиная с текущей позиции.

         См. так же: TStream.ReadStr



TStringCollection Objects


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

         TStringCollection порожден    от    TSortedCollection    и
         реализует сортированный    список   ASCII   строк.   Метод
         TStringCollection.Compare перекрывается    для     задания
         обычного лексикографического  упорядочения строк ASCII. Вы
         можете перекрыть Compare для задания другого упорядочения,
         такого как для неанглийских наборов символов.


Методы

 Compare  function Compare(Key1, Key2: Pointer): Integer; virtual;
                                              Перекрывается: Иногда
         Сравнивает строки Key1^ и Key2^ : возвращает -1, если Key1
         < Key2; 0, если Key1 = Key2 и +1, если Key1 > Key2.

         См. так же: nTStringCollection.Search

 FreeItem  procedure FreeItem(Item: Pointer); virtual;
                                               Перекрывается: Редко
         Удаляет строку  Item^  из  отсортированной   коллекции   и
         освобождает строку.

 GetItem  function GetItem(var S: TStream): Pointer; virtual;
                                               Перекрывается: Редко
         По умолчанию читает строку из TStream, вызывая SReadStr.

         См. так же: TStream.ReadStr

 PutItem  procedure PutItem(var S: TStream; Item: Pointer);
                           virtual;            Перекрывается: Редко
         По умолчанию записывает строку Item^ в TStream, вызывая S.
         WriteStr.

         См. так же: TStream.WriteStr



TStringList Objects


                   +-----------+
                   |  TObject  |
                   +---+---+---+
                +------+   +------+
         +======+======+   +------+--------+
         | TStringList |   | TStrListMaker |
         +=============+   +---------------+

         TStringList предоставляет механизм для доступа  к строкам,
         хранящимся в  потоке.  Каждая строка,  хранящаяся в списке
         строк идентифицируется уникальным номером (ключем) между 0
         и 65,535. Списки строк занимают меньше памяти, чем обычные
         строки, поскольку строки хранятся в потоке, а не в памяти.
         Кроме того,  списки  строк легко решают проблему настройки
         программ на  языки,  поскольку  строки  не  "встроены"   в
         программу.
         TStringList имеет методы только для доступа к строкам; для
         создания списка     строк     Вы    должны    использовать
         TStrListMaker.
         Заметим, что  TStringList  и  TStrListMaker  имеют один ID
         типа объекта (поле ObjType в TStreamRec)  и следовательно,
         не могут  регистрироваться и использоваться одновременно в
         одной программе.



Методы

 Load    constructor Load(var S:TStream);
         Загружает индекс списка строк из потока S и  хранит ссылку
         на S так, что TStringLis.Get может обращаться к потоку при
         чтении строк.
         Считая, что  TStringList  был  зарегистрирован,  используя
         RegisterType(RStringList),  здесь  показано,  как  считать
         список строк  (созданный  с использованием TStrListMaker и
         TResourseFile.Put) из файла ресурса:

         ResFile.Init(New(TBufStream, Init('MYAPP.RES', stOpenRead,
                  1024)));
         Strings := PStringList(ResFile.Get('Strings'));

         См. так же: TStrListMaker.Init, TStringList.Get

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

         См. так же: TStrListMaker.Init, TStringList.Done

 Get     function Get(Key: Word): String;
         Возвращает строку,  заданную через Key, или пустую строку,
         если нет строки с данным Key. Например:

         P := @FileName;
         FormatStr(S, Strings^.Get(sLoadingFile), P);

         См. так же: TStringListMaker.Put



TStrListMaker Objects


                   +-----------+
                   |  TObject  |
                   +---+---+---+
              +--------+   +------+
       +======+========+   +------+------+
       | TStrListMaker |   | TStringList |
       +===============+   +-------------+

         TStrListMaker - это простой тип объекта,  используемый для
         создания списка строк, который используют с TStringList.
         Следующий фрагмент  кода  показывает   как   создавать   и
         сохранять список строк в файле ресурса.

         const
           sInformation = 100;
           sWarning     = 101;
           sError       = 102;
           sLoadingFile = 200;
           sSavingFile  = 201;

         var
           ResFile: TResourceFile;
           S: TStrListMaker;

         begin
           RegisterType(RStrListMaker);
           ResFile.Init(New(TBufStream, Init('MYAPP.RES', stCreate,
                        1024)));
           S.Init(16384, 256);
           S.Put(sInformation, 'Information');
           S.Put(sWarning, 'Warning');
           S.Put(sError, 'Error');
           S.Put(sLoadingFile, 'Loading file #s.');
           S.Put(sSavingFile, 'Saving file #s.');
           ResFile.Put(@S,'Strings');
           S.Done;
           ResFile.Done;
         end;



Методы

 Init    constructor Init(AStrSize, AIndexSize: Word);
         Создает в  памяти список строк размера AStrSize с индексом
         из AIndexSize элементов.  Буфер  строк  и  буфер  индексов
         заданного размера распределяются в куче.
         AStrSize должен быть достаточно велик  для  хранения  всех
         строк, добавляемых в список строк - каждая строка занимает
         свою длину плюс 1 байт.
         При добавлении    строк    в   список   строк   (используя
         TStrListMaker.Put) строится   индекс   строк.   Строки   с
         последовательными ключами    (такими   как   sInformation,
         sWarning и sError в  предыдущем  примере)  записываются  в
         одну индексную   запись  до  16.  AIndexSize  должен  быть
         достаточно большим  для  добавления  всех  сгенерированных
         индексных записей. Каждый элемент индекса занимает 6 байт.

         См. так же: TStringList.Load, TStrListMaker.Done

 Done    destructor Done; virtual;
         Освобождает память, распределенную этим объектом.

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

 Put     procedure Put(Key: Word; S: String);
         Добавляет String к списку строк (с заданным числовым Key).

 Store   procedure Store(var S: TStream);
         Записывает список строк в поток.




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

 

 

\

Подписка на новости 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
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...