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

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

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

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

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

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

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

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

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

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


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); Записывает список строк в поток.
                              Назад | Содержание | Вперед

 

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

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

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

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

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

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

VPS/VDS серверы. 30 локаций на выбор

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

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

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

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

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

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

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

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

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