Некоторые базовые классы, типы, переменные, константы

В этой главе представлены сведения о некоторых базовых классах и типах C++Builder 6. В библиотеках C++Builder объявлены тысячи классов и типов, так что рассмотреть все их в рамках данной книги невозможно. Поэтому был проведен достаточно жесткий отбор тех классов, которые используются чаще всего. В каж­дом классе даны в виде таблиц краткие описания и синтаксис свыше 1100 основ­ных свойств, методов и событий (полные списки вы найдете в [3]). Основными счи­тались те, которые можно использовать при работе с данными классами из прило­жения. Методы, предназначенные в основном для внутреннего применения в клас­се и, следовательно, требуемые только при создании новых классов-наследников, в приведенных таблицах, как правило, отсутствуют.

Объявления методов и свойств даны для экономии места в упрощенном виде. Например, пропущены спецификаторы, fasteaɪɪ, присущие всем методам, специ­фикаторы Virtual И др. В свойствах пропущено ключевое слово Property и не

Указываются функции чтения и записи. Есть и другие упрощения.

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

Более полную информацию о всех свойствах, методах, событиях классов и ти­Пов, описанных в данной главе, и ряда других вы можете найти в источнике [3].

AnsiString — тип строк___________________________________________

В C++Builder Тип строк AnsiString Реализован как класс, объявленный в фай­ле vd∕dstring. h и аналогичный типу длинных строк в Delphi. Это строки с нуле­вым символом в конце. При объявлении переменные типа AnsiString Инициализи­руются пустыми строками.

Для AnsiString Определены операции отношения ==, !=, >, <, >=, <=. Сравне­ние производится с учетом регистра. Сравниваются коды символов, начиная с пер­вого, и если очередные символы не одинаковы, строка, содержащая символ с мень­шим кодом считается меньше. Если все символы совпали, но одна строка длиннее и в ней имеются еще символы, то она считается больше, чем более короткая.

Для AnsiString Определены операции присваивания =, += и операция склеи­вания строк (конкатенации) Определена также операция индексации [ ]. Индек­сы начинаются с 1. Например, если S1 == "Привет", то Sl[L] Вернет ‘П’, Sl[2] Вер­нет ‘р’ и т. д.

Тип AnsiString Используется для ряда свойств компонентов C++Builder. На­пример, для таких, как свойства Text Окон редактирования, свойства Caption Ме­ток и разделов меню и т. д. Этот же тип используется для отображения отдельных строк в списках строк типа TStrings. Таким образом, постоянно имея дело с этими свойствами, вы постоянно работаете с AnsiString.

Рассмотрим некоторые примеры работы с AnsiString. Следующий оператор демонстрирует конкатенацию (склеивание) двух строк:

Labell->Caption = Editl->Text + ‘ ‘ + Edit2->Text;

В данном случае в свойстве Labell->Caption Отображается текст, введенный пользо­вателем в окне редактирования Editl, Затем записывается символ пробела, а затем —

Текст, введенный в окне редактирования Edit2. Как видите, склеивание строк типа AnsiString Легко осуществляется перегруженной операцией сложения "+".

Рассмотрим теперь поиск в строке S1 Фрагмента, заданного строкой S2, и заме­ну его текстом строки S3. Код, осуществляющий эти операции, может иметь вид:

AnsiString SI, S2, S3;

// Операторы занесения текста в SI, S2, S3

Int i = Sl. Pos(S2) ;

If (i)

Labell->Caption = Sl. Substring (1, i-l) + S3 +

Sl. Substring(i+S2.Length(),255);

Else Labell->Caption = "Текст не найден";

В этом коде использован ряд функций-элементов класса AnsiString: Pos, Substring, Length. Обратите внимание на то, что доступ к ним осуществляется операцией точка (.), вместо более привычной в C++Builder операции доступа к ме­тодам компонентов стрелка (->). Дело в том, что к методам компонентов доступ осуществляется через указатель на объект, а в данном случае к методам Ansi­String доступ осуществляется через сами объекты-строки.

Первый выполняемый оператор приведенного кода использует функцию Pos. Эта функция ищет в строке, к которой она применена (в нашем случае в S1), первое вхождение подстроки, заданной ее параметром (в нашем случае S2). Если поиск ус­пешный, функция возвращает индекс первого символа найденного вхождения под­строки. Индексы начинаются с 1. Если подстрока не найдена, возвращается 0.

Следующий оператор с помощью структуры if…else проверяет, не равно ли нулю L Возвращенное функцией Pos Значение. Если не равно, то производится формирование строки с заменой найденной подстроки. Строка формируется склеи­ванием трех строк: начальной части строки S1, расположенной до найденного вхож­дения подстроки, строки S3, заменяющей найденное вхождение, и заключительной части строки S1, расположенной после найденного вхождения. Для получения фрагментов строки Sl использована функция Substring. Эта функция возвращает подстроку, начинающуюся с символа в позиции, заданной первым параметром функции, и содержащую число символов, не превышающее значение, заданное вто­рым параметром функции. Таким образом, выражение Sl.SubString(L, I1) Воз­вращает подстроку строки Sl, начинающуюся с первого символа и содержащую i — 1 символов, т. е. часть строки Sl, расположенную до найденного вхождения под­строки S2. Аналогично, выражение Sl.SubString(I + S2.Length(), 255) Возвращает подстроку строки Sl, расположенную после найденного вхождения подстроки S2. При этом для определения начала этой подстроки использована функция Length, Возвращающая число символов в строке (в нашем случае — в строке S 2, Содержа­щей заменяемый фрагмент). В приведенном выражении в качестве второго парамет­ра функции Substring Задано число 255, которое, как ожидается, превышает длину подстроки. В действительности будет возвращено менее 255 символов, столько, сколько имеется до завершающего Sl нулевого символа.

Если нам надо не отображать измененную строку в виде сообщения, а просто произвести замену фрагмента в исходной строке Sl, это еще более упрощает код, который в этом случае сводится всего к двум операторам:

Int i = Sl. Pos(S2) ;

Sl = SI. SubStringfl, i-l) + S3 + Sl. Substring (i+S2 . Length (), 255) ;

Давайте еще более усложним задачу: пусть в строке Sl надо заменить все вхо­ждения S2 на строку S3. Эту задачу можно было бы решить следующим кодом:

Int iO = 0, i = Sl, Pos(S2);

While (i)

{

Sl = Sl. substring d, i + iO — l) + S3 +

+ iθ + S2.Length(),255) iθ += i — 1 + S3.Length(); i = Sl, Substring(iθ + 1,

} ∙

Приведенный код мало отличается от рассмотренного ранее и не содержит ка­ких-то новых функций. Основные отличия заключаются в следующем. Во-первых, вводится переменная iO — индекс, предшествующий первому символу еще не обра­ботанной части строки S1. Значение iθ изменяется после обработки очередной части строки. Во-вторых, очередное вхождение строки S2 в S1 определяется не по всей строке S1, а только по ее еще не обработанной части: Sl-SubString(iθ + 1, 255).

Рассмотренную задачу контекстного поиска и замены в строке можно было бы решить иначе, воспользовавшись функциями Delete И Insert Класса AnsiString. Функция Delete Удаляет из строки, начиная с позиции, заданной первым парамет­ром функции, число символов, заданное вторым параметром функции. Функция Insert Вставляет в строку подстроку, заданную первым параметром функции, в по­зицию, заданную вторым параметром функции.

Применение этих функций позволяет выполнить контекстную замену с помо­щью, например, следующего кода:

Int iO = 1, i = Sl. Pos (S2) ; while (i > iO)

F

Sl. Delete(i, S2.Length()); удаление Вхождения S2 Sl. Insert (S3,i); // Вставка S3

IO = i + S3. LengthO;

I = iO — 1 + Sl. Substring(iO, 255).Pos(S2);

}

В заключение отметим метод, позволяющий переходить от типа AnsiString к типу (Char *). Несмотря на то, что применение AnsiString Практически Всегда Удобнее (Char *), такие переходы приходится делать при передаче параметров в не­которые функции, требующие тип параметра (Char *). Чаще всего это связано с вы­зовом функций API Windows или функций C++Builder, инкапсулирующих такие функции. Преобразование строки AnsiString В строку (Char *) осуществляется функцией C_Str() Без параметров, возвращающей строку с нулевым символом в конце, содержащую текст той строки AnsiString, К которой она применена. На­пример, если вы имеете строки S1 и S2 типа AnsiString, Которые хотите передать в функцию в качестве сообщения и заголовка окна, то

Вызов Application->MessageBox Может иметь вид:

Application->MessageBox(SI. c_strО, S2.c_str(), МВ_ОК);

Возможно и обратное преобразование строки (Char *) в Строку AnsiString. Для этого используется функция

AnsiString(char *S)

Которая возвращает строку типа AnsiString, Содержащую текст, записанной в строке S, являющейся аргументом функции.

Основные методы класса AnsiString (в описаниях методов через S1 обозначе­на строка, метод которой используется):

I—————————

Метод

Синтаксис / Описание

AnsiCompare

_______________

Int AnsiCompare(const AnsiString& rhs) const

Сравнивает данную строку Sl С rhs с учетом регистра. Срав­нение зависит от текущих установок Windows и может отли­чаться от сравнения, осуществляемого операциями сравне­ния. Возвращает значение > 0 при Sl > rhs, значение < 0 при Sl < Rhs И значение 0 при Sl = rhs

Метод

Синтаксис / Описание’

AnsiCompareIC

Int AnsiCompareIC(const AnsiString& Rhs) const

Осуществляет сравнение, аналогичное AnsiCompare, Но без учета регистра

AnsiLastChar

Char* AnsiLastCharO Const

Возвращает указатель на последний значащий символ. Под­держивает многобайтные символы

AnsiPos

Int AnsiPos(const AnsiString& subStr) const

Возвращает индекс первого символа первого вхождения subStr в S1. Индексы начинаются с 1. Если subStr не содер­жится в S1, возвращается 0. В отличие от Pos поддерживает многобайтные символы

AnsiString

Ansi S Tring(ApryMβHτ)

Конструктор класса. В зависимости от типа аргумента создает:

Аргумент

Отсутствует

Создает

Пустую строку

Const char* Src

Строку с нулевым символом в конце из массива символов

Const AnsiString& src

Копию AnsiString src

Const char* src, unsigned char

Ien

Строку с нулевым символом в конце, являющуюся копией первых len символов из src

Const Wchar_t* Src

Строку с нулевым символом в конце из массива src сим­волов типа Wchar T ,

Int src

Строку с нулевым символом в конце из массива src це­лых значений символов

Double Src

Строку с нулевым символом в конце из массива src значе­ний символов с плавающей запятой; преобразуются пер­вые 15 значащих разрядов

C_str

Char* c_str()const

Возвращает указатель на строку с нулевым символом в кон­це, содержащую те же символы, что в AnsiString

CurrToStr

Static AnsiString CurrToStr(Currency value)

Преобразует значение value типа Currency в строку

FcurrToStrF

Static AnsiString CurrToS trF(Currency Value,

TStringFloatFormat format, int di­

Gits)

Преобразует значение value типа Currency в строку, исполь­зуя указанный формат преобразования чисел с плавающей за­пятой (см. разд. «TStringFloatFormat — тип»). Параметр определяет задаваемое число разрядов. Функция соответству­ет функции CurrToStrF с заданной точностью 19 разрядов

I Метод

Синтаксис / Описание

, Delete

_______________

Void Delete(int index, int count)

Удаляет из строки, начиная с позиции index число символов,

Равное count

FloatToStrF

Static AnsiString FloatToStrF(long double value,

TStringFloatFormat format, int precision, int digits) ∣

Преобразует значение value с плавающей запятой в строку, ис­пользуя указанный формат (см. разд. «TStringFloatFormat — тип»). Параметры precision и digits задают точность и число разрядов. Точность должна задаваться не более 7 для типа flo­at, не более 15 для double и не более 18 для Extended. Число разрядов зависит от выбранного формата

, Format

Static AnsiString Format(const AnsiString& format,

Const TVarRec *args, int size)

Формирует строку, используя строку формата format и мас­сив аргументов args

I FormatFloat

Static AnsiString FormatFloatfconst AnsiStringA Format, const long Double& Value)

Преобразует значение value с плавающей запятой в строку, используя указанный формат format i

Insert

Void Insertfconst AnsiString& str, int index)

Вставляет в строку подстроку Str, Начиная с индекса index

IntToHex

Static AnsiString IntToHexfint Value, int digits)

Преобразует значение value в строку, содержащую минимум digits шестнадцатеричных цифр

IsDelimiter

Bool IsDelimiterfconst AnsiStringA Delimiters, int index) const 1

Возвращает true, если символ с индексом index является од­ним из разделителей, указанных в строке delimiters. Работа­ет и для многобайтных символов

: IsEmpty

Bool IsEmptyf) Const

Возвращает true, если строка пустая

LastDelimiter

Int LastDelimiterfconst AnsiString& delimiters) const

Возвращает последний из символов строки, входящих в стро­ку разделителей delimiters. Например, если

AnsiString s = "с: Wfilename .ext" ;

То

S. LastDelimiter("∖∖.:;

Вернет 12 (индекс символа точки) I

J Length

Int Lengthf) const

Возвращает число символов в строке i

LowerCase

AnsiString LowerCasef) Const

Возвращает строку, в которой все символы приведены к ниж­нему регистру. Не влияет на исходную строку _

I Метод

Синтаксис / Описание

F

Int Pos(const AnsiString& subStr) const

Возвращает индекс первого символа первого вхождения subStr в S1. Индексы начинаются с 1. Если subStr не содер­жится в S1, возвращается 0. В отличие от AnsiPos не поддер­живает многобайтные символы

SetLength

Void SetLength(int newLength)

Усекает строку до newLength символов. Если исходная стро­ка короче, то она не увеличивается

StringOfChar

Static AnsiString StringOfChar(char Ch, int count)

Возвращает строку, в которой символ ch повторен count раз. Например,

AnsiString s = AnsiString ::StringOfChar<‘А’ , 10);

Задаст строке s значение "АААААААААА"||

Substring

AnsiString SubStrinefint Index, int count) const

Возвращает подстроку, начинающуюся с символа в позиции index и содержащую count символов

‘ ToDouble

Double ToDoubleO Const

Преобразует строку в число с плавающей запятой. Если стро­ка не соответствует формату числа с плавающей запятой, ге­нерируется исключение EConvertError

Γτolnt

Int Tolnt() Const

Преобразует строку в целое число. Если строка не соответст­вует формату целого числа, генерируется исключение ECon-

VertError

ToIntDef

Int ToIntDehintdefaultVaIue) const

Преобразует строку в целое число. Если строка не соответст­вует формату целого числа, возвращается значение по умол­чанию defaultValue

Trim

AnsiString Trim() Const

Возвращает строку, соответствующую исходной, но без пробе­льных символов до и после значащих символов

TrimLeft

AnsiString TrimLeft() const

Возвращает строку, соответствующую исходной, но без нача­льных пробельных символов

TrimRight

AnsiString TrimRight() const

Возвращает строку, соответствующую исходной, но без за­ключительных пробельных символов

_______________

Γ7

Void Unique()

Делает строку уникальной, т. е. устанавливает число ссылок на нее (refcnt) в 1. Таким образом, на нее ссылается только один объект

Uppercase

— _ —————————————————————— — — —,,

AnsiString UpperCase() const

Возвращает строку, в которой все символы приведены к верх­нему регистру. Не влияет на исходную строку

Метод

Синтаксис / Описание

WideChar

Wchar_t* WideChar(wchar_t* dest, int destSize) const

Преобразует строку в массив символов Dest типа Wchar_T и возвращает указатель на этот массив

WideCharBuf-

Size

Int WideCharBufSizeO Const

Возвращает размер буфера, требуемого для функции WideChar

Application — переменная

Глобальная переменная типа TApplication.

Описание

В каждом приложении автоматически создается объект Application Типа TApplication — приложение. Этот компонент отсутствует в палитре библиотеки, вероятно, только потому, что он всегда один в приложении. Application Имеет ряд свойств, методов, событий, характеризующих приложение в целом.

Булево свойство Active (только для чтения) характеризует активность прило­жения. Оно равно True, Если форма приложения находится в фокусе. Если же пользователь переключился на работу с другим приложением, свойство Active Равно False.

Свойство ExeName Является строкой, содержащей имя выполняемого файла с полным путем к нему. Это свойство удобно использовать, чтобы определить ката­лог, из которого запущено приложение и который может содержать другие файлы (настройки, документы, базы данных и т. п.), связанные с приложением. Выраже­ние ExtraetFilePath(Application->ExeName) дает этот каталог. Обычно свойство ExeName Тождественно функции возвращающей нулевой параметр

Командной строки — имя файла с путем.

Свойство Title Определяет строку, которая появляется около пиктограммы свер­нутого приложения. Если это свойство не изменяется во время выполнения, то оно равно опции Title, задаваемой во время проектирования на странице Application окна опций проекта (команда Project | Options). Свойство может изменяться программно, на­пример, изменяя надпись в зависимости от режима работы приложения.

Свойство MainForm Типа TForm Определяет главную форму приложения. Буле­во свойство ShowMainEorni определяет, должна ли главная форма быть видимой в момент запуска приложения на выполнение. По умолчанию оно равно true, что обеспечивает видимость главной формы в момент начала работы приложения. Если же установить в головном файле проекта Applicatioπ~>ShowMainForm равным False До вызова метода Λpplication->Run() и если при этом свойство Visible Главной формы тоже равно False, То главная форма в первый момент будет невидимой.

Свойство HelpFile Указывает файл справки, который используется в приложе­нии в данный момент как файл по умолчанию. Если это свойство не изменяется во время выполнения, то оно равно опции Help File, задаваемой во время проектирова­ния на странице Application окна опций проекта (команда Project | Options). Свойство можно изменять программно, назначая в зависимости от режима работы приложе­ния тот или иной файл справки.

Ряд свойств объекта Application Определяет ярлычки подсказок компонентов приложения. Свойство Hint Содержит текст подсказки Hint Того визуального ком­понента или раздела меню, над которым в данный момент перемещается курсор мыши. Смена этого свойства происходит в момент события OnHint, которое будет рассмотрено позднее. Во время этого события текст подсказки переносится из свойства Hint Компонента, на который переместился курсор мыши, в свойство Hint Объекта Application. Свойство Application- Hint можно использовать для отображения этой подсказки или для установки и отображения в полосе состояния текста, характеризующего текущий режим приложения.

Свойство HintColor Типа TColor Определяет цвет фона окна ярлычка. По умол­чанию это цвет ClInfoBk, Но его значение можно изменять программно. Свойство HintPause Определяет задержку появления ярлычка в миллисекундах после пере­носа курсора мыши на очередной компонент (по умолчанию 500 миллисекунд или половина секунды). Свойство HintItidePause аналогичным образом определяет ин­тервал времени, после которого ярлычок становится невидимым (по умолчанию 2500 миллисекунд или две с половиной секунды). Свойство HintShortPause Опре­деляет аналогичным образом задержку перед появлением нового ярлычка, если в данный момент отображается другой ярлычок (по умолчанию 50 миллисекунд). Это свойство позволяет предотвратить неприятное мерцание, если пользователь быстро перемещает курсор мыши над разными компонентами.

Теперь рассмотрим некоторые методы объекта Application. Методы Initi­Alize — инициализация проекта, и Run — запуск выполнения приложения, вклю­чаются в каждый проект автоматически — вы можете это увидеть в головном фай­ле проекта, если выполните команду Project | View Source. Там же вы можете увидеть применение метода создания форм для всех автоматически создавае­

Мых форм проекта. Если же В вашем проекте есть форма, которая исключена из списка автоматически создаваемых (команда Project | Options и соответствующая ус­тановка на странице Forms), то когда эта форма вам потребуется, вы должны будете вызвать этот метод:

Void CreateForm(System::TMetaClass* InstanceClass, void *Reference) ;

Где InstanceClass — класс создаваемой формы, который указывается операцией Classid, A Reference — ссылка на создаваемый объект (его имя). Например:

Application-XreateForin(_______________ classid(TForm2) , SForm2) ;

Метод Terminate Завершает выполнение приложения. Если вам надо завер­шить приложение из главной формы, то вместо метода Application—>Terminate() Вы можете использовать метод Close Главной формы. Но если вам надо закрыть приложение из какой-то вторичной формы, например, из диалога, то надо приме­нять метод Application—>Terminate().

Метод Minimize Сворачивает приложение, помещая его пиктограмму в полосу задач Windows.

Ряд методов связан с работой со справочными файлами. Выше уже говорилось о свойстве HelpFile, Указывающем текущий файл справки. Метод HelpContext:

Bool HelpContext(Classes::THelpContext Context);

Вызывает переход в файл справки на тему с идентификатором Context. Это иденти­фикатор, который при проектировании справки поставлен в соответствие некото­рой теме. Метод HelpJump:

Bool HelpJump(const SystemrrAnsiString JumpID);

Выполняет аналогичные действия, но его параметр JumpID — не идентификатор темы, а имя соответствующей темы в файле справки, задаваемое в нем сноской *.

Метод HelpCommand:

Bool HelpConunanddnt Command, int Data);

Позволяет выполнить указанную параметром Command Команду API WinHelp с па­раметром Data. Метод генерирует событие OnHelp активной формы или приложе­ния, а затем выполняет указанную команду WinHelp. Полный список команд Win- Help вы можете найти в теме WinHelp справочного файла Win32.Hip, Расположенного в каталоге…\Program Files∖Common FilesxBorland Shared\MSHelp. Приведем толь­ко некоторые из них. Команда HELP_CONTENTS с Параметром 0 отображает окно Содержание справки. Команда HELP_INDEX С параметром 0 отображает окно Указа­тель справки. Команда HELP_CONTEXT С параметром, равным идентификатору темы, отображает тему с заданным идентификатором (это тождественно рассмотрен­ному ранее методу HelpContext). Команда HELP_CONTEXTPOPUP с параметром, равным идентификатору темы, делает то же самое, но отображает тему во всплыва­ющем окне.

Хотелось бы еще обратить внимание читателя на очень полезный метод MessageBox (см. в гл. 5), позволяющий вызывать диалоговое окно с указанным текстом, указанным заголовком и русскими надписями на кнопках (в русифици­рованных версиях Windows). Это наиболее удачный полностью русифицируемый

Стандартный диалог.

В классе TApplication определено множество Событий, Которые очень полезны для организации приложения. Ранее для использования этих событий было необ­ходимо вводить соответствующие обработчики и указывать на них объекту Appli­cation специальными операторами. Начиная с C++Builder 5 в библиотеке имеется компонент ApplicationEvents, существенно облегчивший эту задачу. Этот компо­нент перехватывает события объекта Application и, следовательно, обработчики этих событий теперь можно писать как обработчики событий невизуального ком­Понента ApplicationEvents.

DateSeparator — переменная______________________________________

Определяет символ разделителя, используемого в формате отображения дат.

Модуль SysUti. ls. hpp.

Определение

Extern PACKAGE char DateSeparator;

Описание

Глобальная переменная DateSeparator Определяет символ разделителя, ис­пользуемого в формате отображения дат ShortDateFormat И в ряде других форма­тов. По умолчанию в русифицированных версиях Windows это символ точки. Но вы можете программно задать другой символ разделителя. Правда, если вы не за­даете явным образом формат отображения, то само по себе изменение DateSeparaTor, Ни к чему не приведет. Но если вы, кроме того, измените значение переменной ShortDateFormat, Используя в ее описании спецификатор или если примени­

Те для отображения даты функции FormatDateTime, DateTimeToStrint; И иные, описывающие формат, то в отображении будет использоваться новое значение DateSeparator.

Примеры

Оператор

Editl->Text = Date О;

Отобразит в окне Mitl Текущую дату в виде: "27.06.2002". Если вы предваритель­но выполните оператор

DateSeparator =

Изменяющий значение DateSeparator, То приведенный выше оператор вывода в окно Editl Отобразит дату в прежнем формате. Но если вы будете отображать

Дату оператором

Editl->Text = FormatDateTime ("dd∕mm∕yyyy", Date ());

Или операторами

ShortDateFormat = "dd∕mm∕yyyy";

Editl->Text

То отображение примет вид: "27-06-2002", т. е. сработает заданный вами раздели­тель

Default8087CWПеременная_____________________________________

Содержит значение по умолчанию управляющего слова FPU.

Заголовочный файл SystemJipp.

Определение

Extern PACKAGE Word Defauit8087cw?

Описание

Переменная Default8087CW Содержит значение по умолчанию управляющего слова FPU. Это слово управляет точностью, округлением и генерацией исключе­ний при выполнении операций с плавающей запятой.

Слово может устанавливаться функцией Set8087CW. Например:

Set8087CW(Default8087CW);

Infinity, NegInfinity, NaN Константы______________________________

При выполнении арифметических операций и математических функций мо­гут возникать ошибки, связанные с переполнением или с принципиальной невоз­можностью вычислить результат. Для идентификации подобных ошибок введены три константы: Infinity (положительная бесконечность), Neglnfinity (отрицатель­ная бесконечность), NaN (нецифровое значение).

Они определены в модуле Math.HppСледующим образом:

Static const Extended NaN 0.0 / 0.0; static const Extended Infinity = 1.0 / 0.0; static const Extended Neglnfinity = -1.0 / 0.0;

Если преобразовывать эти значения в строку обычной функцией FloatToStr. То будут выданы соответственно тексты "INF", "-INF", "NAN". Последующее ис­пользование полученных значений в арифметических операциях приведет к выда­че в качестве результата аналогичных значений.

Но все это будет так, если функцией Set8087CW Или другими аналогичными функциями устранена генерация исключений при арифметических ошибках.

Константы Infinity, Neglnfinity И NaN не могут использоваться в операциях сравнения. Для проверки результата в том же модуле Math.Hpp введены функции IsInfinite и IsNan. Первая из них возвращает True, Если значение аргумента равно Infinity Или Neglnfinity, А вторая — если значение аргумента равно NaN. Если функцией Islnfinite Обнаружено, что значение бесконечное, то знак бесконечности Можно определить функцией Sign.

LongDateForMat переменнАя________________________

Определяет длинный формат отображения дат.

См. разд. «ShortDateFormat, LongDateFormat — переменные».

LongTimeFormat, ShortTimeFormat — переменные___________________

Определяют формат отображения времени.

Модуль SysUtils. hpp.

Определение

Extern PACKAGE AnsiString LongTimeFormat; extern PACKAGE AnSiString ShortTimeFormat;

Описание

Глобальная переменная LongTimeFormat Определяет формат отображения времени в виде строки такими функциями, как DateTimeToString, TimeToStr И многими другими. По умолчанию в русифицированных версиях Windows она
обеспечивает отображение времени в формате час (две цифры), минуты (две циф­ры), секунды (две цифры). В качестве разделителей используется символ, опреде­ленный в глобальной переменной TimeScparator (обычно двоеточие). Один из при­веденных ниже спецификаторов обеспечивает отображение времени в кратком формате, определенном глобальной переменной ShortTimeFormat. По умолчанию это час и минуты (по два символа), разделенные символом TimeSeparator.

Задавая значения LongTimeFormat И ShortTimeFormat Можно изменить ото­бражение времени по умолчанию. В текстах строк могут использоваться следую­щие спецификаторы:

Спецификатор

Действие спецификатора

Lh

Отображает час числом без предшествующего нуля: 0-23

Hh

Отображает час всегда двузначным числом: 00-23

! m или n

Отображает минуты числом без предшествующего нуля: 0-59

■ mm или nn

Отображает минуты всегда двузначным: 00-59 !

Is____________

Отображает секунды числом без предшествующего нуля: 0-59

Iss

Отображает секунды всегда двузначным числом: 00-59

Z

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

0-999

ZZZ

Отображает миллисекунды всегда трехзначным числом:

000-999

T

Отображает время в формате, соответствующем глобальной пе­ременной ShortTimeFormat ("час:минута")

■| am∕pm

Используется при 12-часовом отображении времени для записи символов "am" или "pm”. Регистр символов соответствует ре­гистру, использованному в записи спецификатора

A/p

Используется при 12-часовом отображении времени для записи символов "а" или "р". Регистр символов соответствует регист­ру, использованному в записи спецификатора

Ampπι

Используется при 12-часовом отображении времени для записи символов, задаваемых глобальными переменными TimeAM- String и TimePMString (в русифицированных Windows обычно пустые)

••

Отображает разделитель времени, заданный глобальной пере­менной TimeSeparator (обычно":")

‘xx’∕"xx"

Символы, заключенные в одинарные или двойные кавычки, как и символы, отличные от других спецификаторов, перено­сятся в результирующую строку без форматирования

Все спецификаторы могут записываться в любом регистре.

Примеры

Оператор

Editl->Text = TimeO;

Отобразит в окне ISditl Время в формате по умолчанию, например: "16:05:02". Если же перед этим оператором вставить изменение переменной LongTimeFormat:

LongTimeFormat = "время: h:m:s";

То то же время отобразится в виде: "время: 16:5:2". А в случае оператора

LongTimeForinat = "время: t";

Отображение будет иметь вид: "время: 16:05"., Т. е. будет использована переменная ShortTimeFormat. Ее тоже можно изменить. Например, если перед отображением даты вы выполните оператор

ShortTimeFormat "ħ часов m минут";

То приведенный выше оператор, задающий значение LongTimeFormat, Приведет к отображению текста: "время: 16 часов 5 минут".

Можете записать операторы

LongTimeFormat = Edit2->Text;

Editl->Text = Time();

Тогда, вводя в окно Edit2 различные тексты, передаваемые в LongTimeFormat, Вы сможете наблюдать в окне Kditl Их влияние на отображение времени и подобрать Форму, устраивающую вас.

NoErrMsg — переменная_________________________________________

Управляет сообщениями об ошибках.

Модуль System.

Определение

Extern PACKAGE bool NoErrMsg = O;

Описание

Переменная NoErrMsg Управляет появлением системных сообщений об ошиб­ках времени выполнения. При значении False, Принятом по умолчанию, в случае ошибки пользователю предъявляется диалоговое окно с соответствующим сообще­нием. Если установить NoErrMsg в True, Эти окна появляться не будут.

Модуль SysUtils трансформирует большинство ошибок времени выполнения в исключения. Поэтому, если в приложении подключен модуль SysUtils, систем­ные сообщения об ошибках времени выполнения могут не появляться, даже если NoErrMsg = False (точнее, эти сообщения заменяются стандартной обработкой ис­Ключений).

Screen — переменная________________________

Глобальная переменная типа TScreen.

Описание

В приложении C++Builder автоматически создается глобальный объект Scre­En (экран) типа TScreen, Свойства которого определяются из информации Win­dows о мониторе, на котором запускается приложение. Вы можете в любом прило­жении использовать, например, такие свойства объекта Screen, Как Height Вы­сота экрана и Width Его ширина. Это, в частности, может потребоваться, если вы задаете значение свойства своих форм Position Таким, что размеры форм оста­ются постоянными. Так как вы используете в процессе проектирования один тип монитора, а приложение в дальнейшем может работать на мониторе другого типа, то не исключено, например, что ваша форма не поместится на экране или наобо­рот — будет слишком маленького размера для данного монитора. Чтобы избежать этих неприятностей, можно автоматически масштабировать свою форму, вводя, например, в обработчик ее события OnCreate Код:

Width = Screen->Width / 2;

Height = Screen->Height / 2;

Этот код задает размеры формы равными половине соответствующих размеров эк­рана.

Разрешающую способность экрана можно определить, воспользовавшись свой­ством PixelsPerIncli, Указывающим количество пикселов экрана на дюйм в верти­кальном направлении, Это справедливо именно для вертикального направления, по­скольку во многих мониторах коэффициенты масштабирования по горизонтали и вертикали различаются.

Screen Имеет свойство Forms[Int Index], Содержащее список форм вашего при­ложения, отображаемых в данный момент на экране, и свойство FormCount, Отра­жающее количество таких форм. Вы можете использовать это свойство, например, для того, чтобы гарантировать, что на данном типе монитора размеры ни одной фор­мы не превысят размеров экрана. Соответствующий код может выглядеть так:

For (int i = 0; i < Screen-SFormCount; i++)

(

If (Screen-SForms [i] ->Height > Screen->Height)

Screen-SForms[i]-SHeight Screen-SHeight — 100;

If (Screen-SForms[i]-SWidth > Screen-SWidth)

Screen-SForms[i]-SWidth = Screen-SWidth — 100;

}

Размеры форм, превышающие размер экрана, урезаются этим кодом с запасом

В 100 пикселов.

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

Еще одно полезное свойство объекта ScreenFonts (шрифты). Это свойство типа TStrings Содержит список шрифтов, доступных на данном компьютере (свой­ство только для чтения). Его можно использовать в приложении, чтобы проверять, имеется ли на компьютере тот или иной шрифт, используемый в приложении. Если нет — то можно или дать пользователю соответствующее предупреждение, или сменить шрифт в приложении на один из доступных, или дать пользователю возможность самому выбрать соответствующий шрифт. Например, вы можете по­местить в вашем приложении компонент списка TComboBox И при событии формы OnCreate Загрузить его доступными шрифтами с помощью операторов:

ComboBoxl-SItems = Screen->Fonts;

ComboBoxl-S-ItemIndex = 0;

Тогда в нужный момент пользователь может выбрать подходящий шрифт из списка, а для того, чтобы этот шрифт использовался, например, для текста в ком­поненте RichEditl, В обработчик события OnClick Или OnChange Списка вставьте

Операторы:

RichEditl-S-SelAttributes-J-Name =

ComboBoxl-SItems-SStrings[ComboBoxl-SItemIndex];

RichEditl->SetFocus () ;

Если хотите использовать выбранный шрифт для всех компонентов формы, в которых свойство ParentFont Установлено в True, То приведенный выше опера­тор должен иметь вид:

Font-SName = ComboBoxl-SItems-SStrings[ComboBoxl-SItemIndex];

Свойство Cursor Объекта Screen Определяет вид курсора. Если это свойство равно CrDefault, То вид курсора при перемещении над компонентами определяется установленными в них свойствами Cursor. Но если свойство Cursor Объекта Screen Отлично от CrDefault, То соответствующие свойства компонентов отменяются и курсор имеет глобальный вид, заданный в Screen. Этим можно воспользоваться для такой частой задачи, как изменение курсора на форму «песочные часы» во время выполнения каких-то длинных операций. Подобное изменение формы кур­сора можно оформить следующим образом:

Screen->Cursor = CrHourGlass;

// Выполнение Требуемых длинных операций

}

Catch (…)

{

Screen->Cursor = crDefault; // Восстановление курсора

Throw;

}

Screen->Cursor = crDefault;

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

Если в приложении в какие-то отрезки времени используется отличный от CrDefault Глобальный вид курсора, то приведенный код можно изменить, чтобы по окончании длинных операций восстановить прежнее глобальное значение:

TCursor Save_Cursor = Screen->Cursor;

Ξcreen->Cursor = crHourGlass;

Try

// Выполнение требуемых Длинных операций I

Catch (…)

{

Screen->Cursor = Save_Cursor

Throw;

}

Screen->Cursor = Save_Cursor;

Имеется также свойство Cursors[ I ], Которое представляет собой список дос­тупных приложению курсоров. Вы можете создать и использовать также свой соб­ственный курсор. Создается он и включается в ресурс приложения встроенным в C++Builder Редактором Изображений (Image Editor). А регистрируется создан­ный вами курсор с помощью функции LoadCursor. Сделать это можно следующим образом.

Пусть, например, вы создали свой курсор и включили его в ресурс приложе­ния под именем NEWCURSOR. Тогда в своем приложении вы можете ввести гло­бальную константу, обозначающую ваш курсор. Например:

Const CrMyCursor = 1

Значение этой константы может лежать в пределах от -32768 до 32767. Но важно, чтобы она не совпадала с предопределенными значениями стандартных курсоров, лежащими в диапазоне от 0 до -21.

В обработчике события OnCrcate формы вы можете ввести оператор, регистри­рующий ваш курсор в свойстве Cursors:

Screen->Cursors[CrMyCursor]=LoadCursor(HInstance,"NEWCURSOR");

Обратите внимание на то, что имя курсора пишется обязательно заглавными буквами, так как именно так хранятся имена курсоров в ресурсах приложения.

В нужный момент вы можете установить этот курсор в качестве глобального оператором

Screen->cursor = crMyCursor;

А затем восстановить значение глобального курсора оператором Screen->Cursor = crDefault;

Вы можете использовать ваш зарегистрированный курсор и как локальный, например, для панели Panel 1 Оператором

Panell->Cursor = (TCursor) CrMyCursor;

Подробнее методика создания и использования собственных курсоров изложе­на в [1].

С помощью Screen Можно получить доступ к активной в текущий момент фор­ме вашего приложения через свойство ActiveForm. Если в данный момент пользо­ватель переключился с вашего приложения на какое-то другое и, следовательно, ни одна форма вашего приложения не активна, то ActiveForm Указывает на фор­му, которая станет активной, когда пользователь вернется к вашему приложению. В момент переключения фокуса с одной вашей формы на другую, генерируется со­бытие OnActiveFormChange.

Аналогично с помощью свойства ActiveControl Можно получить доступ к ак­тивному в данный момент оконному компоненту на активной форме. При смене фокуса генерируется событие OnActiveControlChange.

В C++Builder предусмотрена возможность разработки мультиэкранных при­ложений, работающих одновременно с множеством мониторов. При этом приложе­ние может решать, какие формы и диалоги надо отображать на том или ином мо­ниторе. Свойства различных мониторов, используемых в таком приложении, мож­но найти с помощью свойства Screeπ->Monitors[ I ], Где I — индекс монитора. Ин­декс 0 относится к первичному монитору. Свойство Screcn->Morιitorsf I ] Являет­ся списком объектов типа TMonitor, содержащих информацию о конкретных мо­ниторах.

Среди свойств объектов типа TMonitor Имеются Height — высота и Width — ширина экрана монитора. Кроме того, имеются свойства Left И Тор. Эти свойства означают следующее. Все доступное экранное пространство можно представить себе разбитым на экраны отдельных мониторов, размещающихся слева направо и сверху вниз. Соответственно свойства Left И Тор Определяют координаты левого верхнего угла экрана монитора в этом логическом экранном пространстве. Объек­ты типа TMonitor Имеют также свойство MonitorNnni — номер монитора, пред­ставляющий собой его индекс в свойстве Screen—>Monitors[ I ].

Для управления тем, на каком мониторе должна появляться та или иная форма, служит свойство формы DefaultMonitor. Это свойство может принимать значения:

1 dmDesktop

Не предпринимается попыток разместить форму на конкрет­ном мониторе

DmPrimary

Форма размещается на первом мониторе в списке Screen—> Monitors

I dmMainForm

Форма появляется на том мониторе, на котором размещена главная форма

DmActiveForm

Форма появляется на том мониторе, на котором размещена те­кущая активная форма

SEt шаблон класса

Является шаблоном, реализующим встроенный класс Delphi, используемый в библиотеке компонентов VCL.

Модуль υcl∕sysset. h.

Определение

Template<class Т, unsigned char minEl, unsigned char maxEl>

Class_______ declspec (delphireturn) Set;

Описание

В шаблоне должно быть задано три параметра:

Lι type

Тип элементов множества (обычно Mt, Char или Enum)

, minval

Минимальное значение элемента множества (не менее 0)

ι∣ maxval

Максимальное значение элемента множества (не более 255)

Тип каждого объекта класса Set определяется всеми тремя параметрами. Если какие-то из этих параметров различаются, считается, что это объекты разных ти­пов и их нельзя, например, сравнивать друг с другом. Например, если объявлены объекты

Set <char, ‘A’, ‘C’> si;

Set <char, ‘×,, ‘Z’> S2;

То оператор

If(si =S S2)

Будет воспринят как ошибка, поскольку типы Si И s2 различны.

Для множества определены следующие операции (в описании операций слова­ми «данное множество» обозначается левый операнд):

Операция

Определение

Описание

Set__ fastcall operator

—(const Set& Rhs) Const;

Данное множество равно разности двух множеств: данного и Rhs (операция хог с их элементами)

Set&__ fastcall operator

-=(const Set& rhs);

Создание нового множества, опре­деленного разностью двух мно­жеств: данного и rhs (операция Хог С их элементами)

*

Set& fastcall operator

*=(const Set& Rhs);

Создание нового множества, опре­деленного пересечением двух мно­жеств: данного и Rhs (операция and с их элементами)

, *=

Set__ fastcall operator

*(const Set& rhs) const;

Данное множество равно пересече­нию двух множеств: данного и Rhs (операция and с их элементами)

Г

Set__ fastcall operator

+(const Set& Rhs) Const;

Создание нового множества, опре­деленного объединением двух мно­жеств: данного и Rhs (операция or с их элементами)

+=

Set&__ fastcall operator

+=(const Set& Rhs);

Данное множество равно объедине­нию двух множеств: данного и rhs (операция or с их элементами)

«

Set& Fastcall Operator

«(const Т El);

Добавление элемента El В данное множество

«

Friend ostream& Operator<<( ostream& Os, const Set& arg);

Поместить множество arg в поток ostream (выводится 0 или 1 для каждого элемента в зависимости от его наличия в множестве)

ZZZ

Set&__ fastcall operator

>>(const Т El);

Удаление элемента el из данного множества

Операция

Определение

Описание

>>

Friend istream& operator

>>(istream& is, Set& arg);

Извлечь множество Arg Из потока istream (вводится 0 или 1 для каждого элемента в зависимости от его наличия в множестве)

Set&__ fastcall operator

=(const Set& rhs);

Присваивание данному множеству содержимого множества Rhs

Bool__ Fastcall operator

==(const Set& rhs) const;

Эквивалентность двух множеств: данного и Rhs (совпадение всех

Элементов)

J=

Bool__ fastcall operator

!=(const Set& rhs) const ;

Неэквивалентность двух множеств: данного и rhs

Все операции можно применять только к множествам одного типа, то есть к таким, при объявлении которых все аргументы объявления (type, minval И Maxva 1) совпадают. В операциях, создающих новое множество (операции +, — и *), переменная, в которую заносится результат, также должна быть того же типа, что и операнды. Операция эквивалентности возвращает True В случае, когда оба операнда содержат только совпадающие элементы. Соответственно только в этом случае операция неэквивалентности возвращает False.

Для множеств Set определены также два метода:

Метод

Определение

Описание

Clear

Set&fastcall Clear();

Очистка множества

Contains

Bool___ fastcall

Contains(const Т El) const;

Проверка наличия в множестве элемента El

Рассмотрим примеры работы с множествами. Пусть вы задаете пользователю в программе некоторый вопрос, подразумевающий ответ типа "Yes/No". Тогда воз­можные символы, вводимые пользователем в качестве ответа, являются множест­вом, содержащим символы "у", "Y", "п” и »N". Сформировать такое множество можно операторами:

Set <char, 0, 255> TrueKey;

TrueKey « ‘y, « ,Y’ « ,n’ << ’N

Тогда проверить, принадлежит ли введенный пользователем символ Key мно­жеству допустимых ответов, можно с помощью метода Contains:

If (!TrueKey-Contains(Key))

ShowMessage ("Вы ввели ошибочный ответ");

Else. . .

Рассмотрим еще один пример. Пусть вы хотите, чтобы в окне редактирования Editl Пользователь мог вводить только число, т. е. только цифры от 0 до 9. Это можно сделать, включив в обработчик события OnKeyPress этого окна операторы:

Set <char, ‘0’, ‘9’> Dig;

Dig

« ‘6’ « ‘7, « ‘ 8, « , 9 ‘ ; if (!Dig-Contains(Key))

(Key = 0; Beep (); )

При попытке пользователя ввести символ, отличный от цифры, раздастся звук (его обеспечит функция Веер) И символ не появится в окне.

ShortDateFormat, LongDateFormat — переменные____________________

Определяют формат отображения дат.

Модуль SysUtils. hpp.

Определения

Extern PACKAGE AnsiStrinG ShortDateFormat; extern PACKAGE AnsiString LongDateFormat;

Описание

Глобальная переменная ShortDateFormat Определяет формат отображения дат В виде строки такими функциями, как DateTimeToString, FormatDateTinie, Date — ToStr, DateTimeToStr И многими другими. По умолчанию в русифицированных версиях Windows она обеспечивает отображение даты в формате день (две цифры), месяц (две цифры), год (четыре цифры). В качестве разделителей используется сим­вол, определенный в глобальной переменной DateSeparator (обычно точка). Один из приведенных ниже спецификаторов обеспечивает отображение даты в длинном фор­мате, определенном глобальной переменной LongDateFormat. По умолчанию в ру­сифицированных версиях Windows это день, название месяца, год (четырехзначное число с последующими символами "г."), разделенные пробелами.

Задавая значения ShortDateFormat И LongDateFormat Можно изменить ото­бражение дат по умолчанию. В текстах строк могут использоваться следующие спецификаторы:

Спецификатор

Действие спецификатора

D

Отображает день числом без предшествующего нуля: 1-31.

Dd

Отображает день, причем всегда двузначным числом: 01-31.

Ddd

Отображает день недели аббревиатурой, задаваемой глобаль­ной переменной ShortDayNames. Для русифицированных Windows это обычно аббревиатуры: "Пн”, "Вт", "Ср", "Чт", "Пт", " Сб", "Вс".

Dddd

Отображает день недели полными наименованиями, задавае­мыми глобальной переменной LongDayNames: "понедель­ник" "воскресенье". J

Idddddd

Отображает дату в формате, соответствующем глобальной пе­ременной LoneDateFormat: день, название месяца, год (четы­рехзначное число с последующими символами "г.")

I M

Отображает месяц числом без предшествующего нуля: 1-12

I Mm

Отображает месяц двузначным числом: 01-12

Mmm

Отображает месяц его аббревиатурой, задаваемой глобальной

Переменной ShortMonthNames: "янв" "дек"

Mmmm

Отображает месяц его полным именем, задаваемым глобаль­ной переменной LongMonthNames: "Январь" "Декабрь"

УУ

Отображает год двузначным числом: 00-99

УУУУ

Отображает год четырехзначным числом: 0000-9999

T

Отображает разделитель дат, заданный глобальной переменной DateSeparator (обычно "/") !

‘xx’∕"xx"

I

Символы, заключенные в одинарные или двойные кавычки, как и символы, отличные от других спецификаторов, перено­сятся в результирующую строку без форматирования

Все спецификаторы могут записываться в любом регистре.

Примеры

Оператор

Editl->Text = Date О;

Отобразит в окне Mitl Дату в формате по умолчанию, например: "27.06.2002". Если же перед этим оператором вставить изменение переменной ShortDateFormat:

ShortDateFormat = "дата: dddd d∕m∕yy"; то та же дата отобразится в виде: "дата: четверг 27.6.02". А в случае оператора

ShortDateFormat = "дата: dddddd";

Отображение будет иметь вид: "дата: 27 Июнь 2002 г.", т. е. будет использована пе­ременная LongDateFormat. Ее тоже можно изменить. Например, если перед ото­бражением даты вы выполните оператор

LongDateFormat = "dd rammm yyyy год";

То приведенный выше оператор, задающий значение ShortDateFormat, Приведет к отображению текста: "дата: 27 Июнь 2002 год".

Можете записать операторы

ShortDateFormat = Edit2->Text,- Editl->Text = Date();

Тогда, вводя в окно Edit2 Различные тексты, передаваемые в ShortDateFormat, Вы сможете наблюдать в окне Editl Их влияние на отображение даты и подобрать Форму, устраивающую вас.

ShortTimeFormat — переменная___________________________________

Определяет краткий формат отображения времени.

См. разд. «LongTimeFormat, ShortTimeFormat — переменные».

TAlign, TAlignSet — типы_________________________________________

Определяют выравнивание компонента в контейнере.

Определения

Enum TAlign {alNone, alTop, alBottom, alLeft, alRight, alClient, alCustom) ;

Typedef Set<TAlign, alNone, alclient> TAlignSet;

Описание

Типы TAlignSet И TAlign Используются в ряде свойств и методов для опреде­ления способа выравнивания компонента при изменении размеров контейнера или при встраивании в новый контейнер. Возможные значения:

Значение

Описание

^

AlNone

Компонент не выравнивается или остается там, где он размещен во время проектирования. Размеры его не изменяются. Это значение Align по умолчанию.

AlTop

Компонент занимает всю верхнюю часть контейнера и во время вы­полнения приложения его ширина изменяется при изменении ши­рины контейнера. Высота компонента остается неизменной.

AlBottom

I

Компонент занимает всю нижнюю часть контейнера и во время вы­полнения приложения его ширина изменяется при изменении ши­рины контейнера. Высота компонента остается неизменной.

Значение

Описание

AlLeft

Компонент занимает всю левую часть контейнера и во время вы­полнения приложения его высота изменяется при изменении высо­ты контейнера. Ширина компонента остается неизменной. 1

AlRight

Компонент занимает всю правую часть контейнера и во время вы­полнения приложения его высота изменяется при изменении высо­ты контейнера. Ширина компонента остается неизменной.

AlClient

Компонент занимает всю клиентскую область контейнера, и во вре­мя выполнения приложения его размеры изменяются при измене­нии размеров контейнера. Если в контейнере часть клиентской об­ласти уже занята, компонент занимает всю ее оставшуюся часть.

AlCustom

Введено в C++Builder 6. Позиция компонента определяется вызова­ми функций CustomAlignPosition И CustoniAlignInsertBefore.

TBDEDataSet — базовый класс наборов данных BDE _

Базовый класс компонентов наборов данных, использующих Borland Database Engine (BDE).

Иерархия TObie С, — TPersistent , — ^ComponentTDataSet

Модуль Dbtables.

Описание

Класс TBDEDataSet Инкапсулирует основные свойства, методы и события компонентов наборов данных, использующих Borland Database Engine (BDE). Ос­новные дополнения в TBDEDataSet По сравнению с родительским классом TData — Set связаны с организацией кэширования данных.

В приложениях объекты TBDEDataSet Непосредственно не используются. Ис­пользуются только потомки этого класса и производного от него класса TDBData — Set: TTable, TQuery, TStoredProc. При создании новых классов наборов данных удобнее, обычно, в качестве базового использовать не TBDEDataSet, А его дочер­ний класс TDBDataSet.

Свойства

Свойство

Объявление / Описание

CacheBlobs

Bool CacheBlobs

Определяет, кэшируются ли поля BLOB в памяти

! CachedUpdates

Bool CachedUpdates

Определяет, кэшируются ли изменения набора данных

‘ExpIndex

Bool Explndex

Указывает, использует ли набор данных индекс выражений dBASE

RecNo

Int RecNo

Номер записи

RecordSize

Word RecordSize

Размер записи в наборе данных. Только для чтения

UpdateObject

TDataSetUpdateObject* UpdateObject

Определяет объект, используемый для обновления кэшируе­мых результатов «только для чтения»

Свойство

Объявление / Описание

I UpdateRecord

Types

TU pdateRecordTypes U pda teRecor dTypes

Определяет, какие записи должны быть видимы в наборе данных при кэшировании

UpdatesPending

Bool UpdatesPending

Определяет, имеются ли в кэше обновленные записи, не от­правленные в базу данных

Кроме того, класс TBDEDataSet Наследует или переопределяет такие насле­дуемые от TDataSet Свойства, как Active, AggFields, AutoCakFielcis, BlockRead — Size, Bof, Bookmark, CanModify, DataSource, Eof, FieldCount, Fields,

FieldValues, Filter, Filtered, FilterOptions, Found, Modified, Name, RecordCount, SparseArrays, State.

Методы!

Метод

Объявление / Описание

ApplvUpdates

Void ApplyUpdates(Void)

Записывает кэшированные изменения в базу данных

CancelUpdates

Void CancelUpdates(void)

Отменяет все кэшированные изменения и восстанавливает ис­ходное состояние набора данных

CommitUpdat Es

Void CommitUpdates(void)

Очищает буфер кэшированных изменений

Constraints

Bool ConstraintsDisablecKvoid)

Disabled

Показывает, блокированы, или нет ограничения сервера

Disable

Void DisableConstraints(void)

Constraints

Блокирует ограничения сервера

Enable

Void EnableConstraints(void)

Constraints

Снимает блокировку ограничений сервера, введенную ранее методом DisableConstraints I

FetchAll

Void FetchAll(void)

Считывает с сервера и сохраняет локально все записи, начи­ная с текущей

FlushBuffers

Void FlushBuffers(void)

Пересылает в базу данных все изменения, сохраненные в Бу­Фере

RevertRecord

Void RevertRecord(Void)

Отменяет исправления текущей записи

Кроме того, наследуются и переопределяются такие методы TDataSet. Как Append, AppendRecord, BookmarkValid, Cancel, Close, Compare-

Bookmarks, Delete, DisableControls, Edit, EnableControls, FieldByName, Find — Field, FindFirst, FindLast, FindNext, FindPrior, First, GetBook-

Mark, GetDetailDataSets, GetDetailLinkFields, GetFieldNames, GotoBookmark, Insert, InsertRecord, IsEmpty, Last, Locate, Lookup, MoveBy, Next, Open, Post, Prior, Refresh, SetFields, Translate, UpdateStatus И некоторые другие.

События

В классе наследуются все события TDataSet И вводится два новых

Событие

Описание

OnUpdateError

Наступает при генерации исключения в процессе пересылки в базу данных измененной записи

OnUpdateRecord

Наступает при пересылке кэшированной записи в базу данных

TBitmap — класс

Инкапсулирует битовую матрицу Windows (HBITMAP), включая палитру

(HPALETTE).

Иерархия TObiect — TPersistent — TGraphic

Модуль Graphics.

Описание

Класс TBitmap Инкапсулирует битовую матрицу Windows, включая палитру. Обеспечивает быстрое и простое для пользователя выполнение операций создания, копирования, преобразования и сохранения битовой матрицы.

Свойства

Ниже приведен список основных свойств, определенных или переопределен­ных в TBitmap.

Свойство

Объявление / Описание

Canvas

TCanvas* Canvas

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

Empty

Bool Empty

Указывает, содержит ли объект битовую матрицу. Свойство толь­ко для чтения

Handle

HBITMAP Handle

Обеспечивает доступ к обработке битовых матриц в GDI Win­dows. Используется при вызовах функций API Windows

HandleType

Eniɪɪɪɪ TBitmapHandleType {bmDIB, BmDDB};

TBitmapHandleType HandleType

Указывает, является ли битовая матрица DDB (Device Dependent Bitmap — аппаратно зависимой), или DIB (Device Independent Bit­map — аппаратно независимой). Может изменяться пользователем

Height

Int Height

Указывает высоту изображения в пикселах. Может изменяться пользователем, что вызывает создание копии матрицы с ука­занным размером

[ IgnorePalette

Bool IgnorePalette

Определяет, использует ли матрица палитру. При установке в True Ухудшается качество, но ускоряется рисование

Modified

,

Bool Modified

Определяет, было ли модифицировано изображение после его

Загрузки

Свойство

Объявление / Описание

MaskHandle

HBITMAP MaskHandle

Обеспечивает доступ к обработке битовых матриц в GDI Win­dows. Используется при вызовах функций API Windows. Свой­ство только для чтения ‘

Monochrome

Bool Monochrome

Определяет, является ли битовая матрица монохромной (значе­ние true)

Palette

Hpalette Palette

Управляет цветами битовой матрицы. Если изображение не нуждается в палитре или не имеет палитры, то Palette = 0

PixelFormat

Enum TPixelFormat {pfDeviee, Pflbit, pf4bit, Pf8bit, pfl5bit, pfl6bit, pf24bit, Pf32bit, PfCustom};

TPixelFormat PixelFormat

Определяет битовый формат отображения изображения. Исполь­зуется для задания формата видеодрайверам, не способным про­читать собственный формат битовой матрицы

ScanLine

Void * ScanLine[int Row]

Обеспечивает доступ к отдельным строкам пикселов для их низ­коуровневой обработки для матриц DIBs (Device Independent Bit­map — аппаратно независимых). Свойство только для чтения

Transparent

Bool Transparent

Определяет, должно ли изображение быть «прозрачным»

_____________

Transparent-

Color

TColor TransparentColor

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

TransparentMode

Transparent­

Mode

Enum TTransparentMode {tmAuto, tmFixed};

TTransparentMode TransparentMode

Указывает, определяется цвет прозрачности левым нижним пикселом (tmAuto — по умолчанию), или свойством Transpa- rentColor, сохраненным вместе с битовой матрицей

Width

Int Width

Указывает ширину изображения в пикселах. Может изменять­ся пользователем, что вызывает создание копии матрицы с указанным размером

Методы

Ниже приведены основные методы, объявленные или переопределенные в клас­се TBitmap.

J Метод

Объявление / Описание

Assign

Void Assign(Classes::TPersistent* Source)

Копирует изображение из другого графического объекта, в частности, из буфера обмена Clipboard

Метод

Объявление / Описание

Dormant

Void Dormant(void)

Создает изображение битовой матрицы в памяти, чтобы освободить дескриптор матрицы и сэкономить ресурсы

FreeImage

Void FreeImage(Void)

Освобождает память, занятую кэшированием изображения, экономит ресурсы, но может вести к потере глубины цвета

LoadFromClipboard

Format

Void LoadFromClipboardFormat(Word AFormat,

Int AData, HPALETTE APalette)

Читает изображение из буфера обмена Clipboard В задан­ном формате

LoadFromFile

Void LoadFromFile(const AnsiString FileName)

Читает изображение из файла FileName

LoadFromResource

Ш

Void LoadFromResourceID(unsigned Instance, int ResID) Загружает битовую карту из ресурса по указанному иден­тификатору ResID

LoadFromResource

Name

Void LoadFromResourceName(unsigned Instance,

Const AnsiString ResName)

Загружает битовую карту из ресурса по указанному име­ни ResName

LoadFromStream

Void LoadFromStream(CIasses::TStream* Stream)

Читает графическое изображение из указанного потока Stream

Mask

Void Mask(TColor TransparentColor)

Преобразует изображение в монохромную маску, преобразуя цвет TransparentColor В белый, а остальные — в черный

ReleaseHandle

HBITMAP ReleaseHandle(void)

Возвращает дескриптор типа HBitmap И очищает объект TBitmap От этого дескриптора

ReleaseMaskHandle

HBITMAP ReleaseMaskHandle(Void)

Возвращает дескриптор маски типа HBitmap И очищает объект TBitmap От этого дескриптора

‘ ReleasePalette

HBITMAP ReleaseMaskHandle(void)

Возвращает дескриптор палитры типа HPalette И разры­вает связь палитры с объектом TBitmap

SaveToClipboard

Format

Void SaveToClipboardFormat(Word &AFormat,

Int &AData, HPALETTE &APalette)

Сохраняет изображение в буфере обмена Clipboard В за­данном формате

SaveToFile

Void SaveToFile(const AnsiString Filename)

Сохраняет изображение В файле

SaveToStream

Void SaveToStream(Classes"TStream* Stream)

Записывает изображение в поток

События

Событие

Описание

1 OnChange

Событие при изменении графического объекта

OnProgress

События происходят при медленных процессах измене­ния графического изображения и позволяют построить индикатор хода процесса

TBrush — класс

Определяет свойства кисти: цвет и стиль заполнения фона окна.

Иерархия TObiectTPersistentTGraphicsObject

Модуль Graphics.

Описание

Тип TBrush Инкапсулирует структуру HBRUSH Windows и используется для заполнения форм заданным цветом и стилем. TBrush Используется во многих объ­ектах, в частности, в свойстве кисть — Brush.

Свойства

Свойство

Объявление / Описание

Bitmap

TBitmap* Bitmap

Указатель на внешнюю матрицу побитового отображения, исполь­зуемую как шаблон заполнения

‘ Color

TColor Color

Цвет кисти. Если Style = bsClear, значение Color Игнорируется

Handle

HBRUSH Handle

Дескриптор кисти окна, определяющий доступ к дескриптору объ­екта GDI Windows

Style

Enum TBrushStyle {bsSolid, bsClear, bsHorizontal, bsVertical,

BsFDiagonal, BsBDiagonal, bsCross, bsDiagCross}

TBrushStyle Style

Определяет стиль заполнения окна

Методы

В классе TBrush Не введено каких-то принципиально новых методов. Переоп­ределены такие общие методы, как Assign, конструктор и деструктор. Остальные методы наследуются от классов-предков.

События

Класс TBrush Наследует от класса TGraphicsObject Событие OnChange, Насту­пающее после изменения графического объекта. Обрабатывая его графический объект должен учесть новые установки TBrush.

Пример

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

Gel. Canvas — Канвы компонента Imagel:

Imagel->Canvas->Brush->Style = bsCross;

Imagel->Canvas->Brush->Color = clRed;

Imagel->Canvas->FillRect(Rect(О, О,Imagel->Width, Imagel->Height));

Последний из приведенных операторов заполняет методом FillRect Всю по­Верхность канвы.

TCanvas — класс__________________________________________________________

Обеспечивает пространство (холст, канву) для создания, хранения и модифи­кации графических объектов.

Иерархия TObiect TPersistent

Модуль Graphics.

Описание

Класс TCanvas Является основой графической подсистемы C++Builder. Канва обеспечивает:

• Загрузку и хранение графических изображений

• Создание новых и изменение хранимых изображений с помощью пера, кисти,

Шрифта

• Рисование и закраску различных фигур, линий, текстов

• Комбинирование различных изображений

Класс TCanvas Имеет два дочерних класса — TControlCanvas И TMetafile — Canvas, Которые помогают в прорисовке управляющих элементов и в создании для объекта метафайла.

Свойства

Ниже приведен список основных свойств, определенных или переопределен­ных в TCanvas.

Свойство

Объявление / Описание

Brush

TBrush* Brush

Определяет цвет и стиль заполнения замкнутых фигур и фона

_______________

Canvas

Orientation

Enum TCanvasOrientation { CoLeftToRight, CoRightToLeft } ; TCanvasOrientation CanvasOrientation

Определяет обычную (слева направо) или восточную (справа налево) ориентацию канвы и ее координат. Свойство только

Для чтения

ClipRect

TRect ClipRect

Определяет доступную область рисования на канве и область, подлежащую перерисовке при событии OnPaint. Свойство то­лько для чтения

CopvMode

Int CopyMode

Определяет режим копирования графического изображения

На канву

Font

TFont* Font

Определяет атрибуты шрифта, которым выводится текст

_

LockCount

Int LockCount

Определяет, сколько раз блокирована канва в многопоточных приложениях. Свойство только для чтения

Pen

I______________

ТРеп* Реп

Определяет свойства пера, рисующего линии и фигуры

I———

Свойство

Объявление / Описание

PenPos

TPoint PenPos

Определяет текущую позицию пера

Pixels

TColor Pixels[int X][int Y]

Определяет цвета пикселов

TextFlags

Int TextFlags

Определяет способ вывода текста на канву

Методы

Ниже приведены основные методы, объявленные в классе TCanvas.

Метод

Объявление / Описание

Arc

Void Arc (int XI, Int Yl, Int X2, int Y2, int X3, int Y3, int X4, int Y4)

Рисует дугу окружности или эллипса. (XI,Yl) И (X2,Y2) опреде­ляют описанный прямоугольник. (X3,Y3) И (X4,Y4) — точки, че­рез которые проходят радиусы, отмечающие начало и конец дуги

BrushCopv

Void BrushCopy(const TypeszTRect &Dest, TBitmap* Bitmap, const TypeszTRect &Source, TColor Color)

Копирует часть Source изображения битовой матрицы Bitmap на данную канву в область Dest, заменяя указанный цвет Color в изображении на значение, установленное для кисти канвы

Γchord

Void Chord(int XI, Int Yl, int X2, int Y2, int X3, int Y3, int X4, int Y4)

Рисует замкнутую фигуру, ограниченную дугой окружности или эллипса и хордой. (XI,Yi) И (X2,Y2) определяют описанный пря­моугольник. (X3,Y3) И (X4,Y4) — точки, через которые проходит хорда

CopvRect

Void CopyRect(const TRect &Dest, TCanvas* Canvas, const TRect &Source)

Копирует часть Source изображения с другой канвы Canvas на данную в область Dest

Draw

Void Draw(int X, int Y, TGraphic* Graphic)

Рисует графическое изображение Graphic в указанную позицию канвы (X, Y — левый верхний угол)

DrawFocus

Void DrawFocusRect(const TRect &Rect)

Rect

Рисует изображение прямоугольника в виде, используемом для отображения рамки фокуса, операцией Хог

Ellipse

Void Ellipse(int XI, Int Yl, int X2, int Y2); Void EllipsefTRect Rect);

Рисует окружность или эллипс. (XI, Yl) и (Х2, Y2) или Rect определяют описанный прямоугольник

FillRect

L

Void FillRect(const TRect &Rect)

Заполняет указанный прямоугольник канвы, используя текущее

Значение кисти Brush

Метод

FloodFill

Объявление / Описание ∣

Enum TFillStyle {fsSurface, fsBorder};

Void FloodFill(int X, int Y, TColor Color, TFillStyle FillStyle) Закрашивает текущей кистью замкнутую область канвы, опреде­ленную цветом Color и начальной точкой закрашивания (X, Y). При FillStyle = fsSurface заполняется область, окрашенная цве­том Color, а при FillStyle = fsBorder, заполняется область, окра­шенная любыми цветами, не равными Color

FrameRect

Void FrameRecticonst Tvpesr-TRect &Rect)

Рисует на канве текущей кистью прямоугольную рамку

LineTo

Void LineTo(int X, int Y) .

Рисует на канве прямую линию, начинающуюся с текущей пози­ции пера и кончающуюся указанной точкой (исключая ее)

Lock

Void Lock(void)

Блокирует канву, увеличивая LockCount на 1 и не разрешая дру­гим нитям многопоточного приложения рисовать на ней

MoveTo

Void MoveTo(int X, int Y)

Изменяет текущую позицию пера на заданную, ничего не рисуя

Pie

Void Pie(int XI, int Yl, int X2, int Y2, int X3, int Y3, int X4, int Y4)

Рисует сектор окружности или эллипса. (XI, Yl) и (X2,Y2) опре­деляют описанный прямоугольник. (X3,Y3) и (X4,Y4) — точки, через которые проходят радиусы, ограничивающие сектор

PolvBezier

Void PolyBezier(cons(. TPoint* Points, const int Points Size)

Рисует на канве текущим пером кусочную кривую третьего поряд­ка, сглаживающую заданное множество точек Points. Число точек должно быть на единицу больше числа, кратного 3 (т. е. i*3+l)

PolvBezier

To

Void PolyBezierTo(const TPoint * Points, const int Points Size)

Рисует на канве текущим пером кусочную кривую третьего по­рядка, сглаживающую заданное множество точек Points. Число точек должно быть кратно 3 (т. е. i*3)

Polygon

Void Polygonfconst TPoint * Points, const int Points Size)

Рисует замкнутую фигуру с кусочно-линейной границей

Polyline

Void Polvlinefconst TvpescTPoint* Points, const int Points Size) Рисует кусочно-линейную кривую

Rectangle

Void Rectangle(int XI, int Yl, int X2, int Y2); void RectanglefTRect Rect) d;

Рисует прямоугольник, заданный углами (XI, Yl) и (Х2, Y2) или Rect

___________

RoundRect

Void RoundRect(int XI, int Yl, int X2, int Y2, int X3, int Y3)

Рисует прямоугольник со скругленными углами: (XI, Yl) и (Х2, Y2) — прямоугольник, ХЗ и Y3 — ширина и высота эллипса

Скругления____________________________

Метод

Объявление / Описание

StreJch

Draw

Void StretchDraw(const TRect &Rect, TGraphic* Graphic)

Рисует графическое изображение Graphic в указанную прямоуголь,- ную область канвы Rect, подгоняя размер изображения под задан­ную область

TextExtent

Typedef struct TSize

{l

Long Ex; Long cy;

Tsize TextExtent(const AnsiString Text)

Возвращает длину и высоту в пикселах текста, который предпола­гается написать на канве текущим шрифтом

TextHeight

Int TextHeight(const AnsiString Text)

Возвращает высоту в пикселах текста, который предполагается написать на канве текущим шрифтом

TextOut

Void TextOut(int X, int Y, const AnsiString Text)

Пишет указанную строку текста Text на канве, начиная с указан­ной позиции

TextRect

Void TextRect(const Types::TRect &Rect, int X, int Y, const AnsiString Text)

Пишет указанную строку текста Text на канве, начиная с указан­ной позиции и усекая текст, выходящий за пределы указанной прямоугольной области Rect

TextWidth

Int TextWidth(const AnsiString Text)

Возвращает длину в пикселах текста Text, который предполагает­ся написать на канве текущим шрифтом

TrvLock

Bool TryLock(void)

Блокирует канву, если она не была блокирована, не разрешая другим нитям многопоточного приложения рисовать на ней

Unlock

Void Unlock(void)

Уменьшает на единицу значение свойства LockCount, способствуя тем самым разблокированию канвы, когда LockCount станет рав­ным 0 j

Кроме того, поддерживается множество методов, определенных в классах- предшественниках, в частности, Assign, ClassName, CIassNameIs, Free И многие другие.

События

Событие

Описание

————— 1

OnChange

Событие после изменения изображения

OnChanging

Событие перед изменением изображения

TCollection — базовый класс собраний (коллекций) объектов

Контейнер собраний объектов TCollectionltem

Иерархия TOb iect

Модуль Classes.

Описание

Класс TCollection Является контейнером для группы (собрания, коллекции) объектов класса TCollection ItEm. Его основное свойство Items — массив объектов. Свойство Count Определяет число объектов в контейнере. Методы Add, Delete, Insert И Clear Позволяют добавлять и удалять объекты, содержащиеся в контейнере.

Классы-наследники TCollection, Содержащие объекты классов-наследников TCollectionltem, Используются во многих классах и компонентах C++Builder:

Наследник TCollection

Наследник TCollectionltem

Класс, компонент

TAggregates

TAggregate

TClientDataSet

TCheckConstraints

TCheckConstraint

Компоненты, использующие TField

TCookieCollection

TCookie

Объекты HTTP

TCoolBands

TCoolBand

TCoolBar

TDataBindings

TDataBindItem

Связанные с данными

ActiveX

TDBGridColumns

TColumn

TDBGrid

TDependencies

TDependency

Т Service

TDisplayDims

TDisplayDim

TDecisionGrid

TFieldDefs

TFieldDef

TDataSet

THeaderSections

THeaderSection

THeaderControl

TIndexDefs

TIndexDef

TTable

THTMLTableColumns

THTMLTahleColumn

TQueryTableProducer

TListColumns

TListColumn

TListView

TParams

TParam

TQuery, TStoredProc, TClientDataSet

TParameters

TParameter

Компоненты ADO

TServerCollection

TServerItem

TSimpleObjectBroker

TStatusPanels

TStatusPanel

TStatusBar

TWorkAreas

TWorkArea

TListView

J TWebActionItems

TW eb ActionItem

TW ebDispatcher

Свойства

Свойство

Объявление / Описание

Count

Int Count

Число объектов в Items. Только для чтения

ItemClass

Class PACKAGE TMetaClass;

Typedef TMetaClass* TClass;

SystemnTMetaCiass* ItemClass

Класс содержащихся в Items Объектов. Только для чтения

Свойство

Объявление / Описание

Items

TcollectionItem* Items[int Index]

Индексированный массив объектов, хранящихся в TCollection

Основные методы

Метод

Объявление / Описание

Add

TCollectionltem* Add(void)

Создает новый объект TCollectionltem и добавляет его в массив Items

Assign

Void Fastcall AssigntTPersistent* Source)

Копирует содержимое собрания объектов в другой контейнер ∣

Begin

Update

Void BeginUpdate(Void)

Предотвращает перерисовку до выполнения метода EndUpdate

Clear

Void Clear(void);

Очищает массив Items, уничтожая все содержавшиеся в нем объ­екты типа JTCollectionltem

Delete

Void Delete(int Index)

Удаляет объект с индексом Index (отсчитываются от 0) из Items

EndUpdate

Void EndUpdate(void)

Снимает запрет перерисовки, введенный методом BeginUpdate

FindItem

ID

TCollectionltem* FindItemIDtint ID)

Возвращает элемент с заданным свойством ID, или NULL, если

Элемент не находится

Insert

TCollectionltem* Insertfint Index)

Создает новый объект TCollectionltem и вставляет его в массив

Items

TCoHectionltem — класс объектов в собраниях TCoHection____________

Класс объектов, содержащихся в собраниях TCollection.

Иерархия TObiectTPersistent

Модуль Classes.

Описание

Класс TCollectionltem Описывает объекты, которые могут содержаться в собра­ниях объектов TCollection. Каждый объект TCollectionltem Имеет свойство Collec­tion, указывающее на содержащий его контейнер. Объекты TCollectionltem Создают­ся и уничтожаются методами своего контейнера TCollection: Add. Clear. Delete.

Класс TCollectionltem Имеет множество классов-наследников (см. подробнее в разделе «TCollection»).

Свойства

Свойство

Объявление / Описание

Collection

TCollection* Collection

Указывает собрание TCollection, к которому относится данный объект

‘ Свойство

Объявление / Описание

Display

Name

AnsiString DispIayName

Строка, появляющаяся в Редакторе Собраний (наборов) во время проектирования

_________

ID

Int ID

Идентификатор объекта. Только для чтения

Index

Int Index

Определяет позицию объекта в свойстве Items его контейнера TCol- ■■ lection

Методы

Никаких новых методов в классе TCollectionltem не объявлено. Переопреде­Лены некоторые методы классов-предшественников.

TCoIor — тип____________________________________________________________

Определяет цвет объекта.

Модуль Graphics

Определение

Type TColor = -(COLOR_ENDCOLORS + 1) . . $02FFFFFF;

Описание

Тип TColor Используется для описания цвета объекта. Применяется в свойст­вах Color Многих компонентов, в подсвойствах объекта типа TFont, При прорисов­ке изображений, в таблицах и т. д.

В модуле Graphics определено множество констант типа TColor. Одни из них непосредственно определяют цвета (например clBlue — синий), другие определяют цвета элементов окон, которые могут меняться в зависимости от выбранной поль­зователем палитры цветов Windows (например, ClBtnFace — цвет поверхности кнопок). Значение цвета может задаваться равным одной из перечисленных ниже предопределенных в C++Builder констант.

Константа

Значение цвета

ClBlack

Черный

ClMaroon

Темно-бордовый

" clGreen

Зеленый

I clθlive

Оливково-зеленый

ClNavy

Темно-синий

∣ clPurple

Пурпурный

I ClTeal

Морской воды i

IclGray

Серый i

ClSilver

Серебряный

CIRed

Красный

ClLime

Лимонно-зеленый

[clBlue

Синий

Константа

Значение цвета

ClYellow

Желтый

ClFuchsia

I

Сиреневый

ClAqua

Голубой ||

ClWhite

Белый

ClBackground

Текущий цвет фона стола Windows

ClScrollBar

Текущий цвет полос прокрутки

ClActiveCaption

Текущий цвет фона полосы заголовка в активном окне

ClInactiveCaption

Текущий цвет фона полосы заголовка в неактивном окне

ClMenu

Текущий цвет фона меню

ClWindow

Текущий цвет фона окон

ClW indowFrame

Текущий цвет рамок окон

ClMenuText

Текущий цвет текста меню

ClWindowText

Текущий цвет текста окон

ClCaptionText

Текущий цвет текста заголовка в активном окне

ClActiveBorder

Текущий цвет бордюра активного окна

ClInactiveBorder

Текущий цвет бордюра неактивного окна

IclApp WorkS расе

Текущий цвет рабочей области приложений

IclHighlight

Текущий цвет фона выделенного текста

ClHightlightT ext

Текущий цвет выделенного текста

ClBtnFace

Текущий цвет поверхности кнопок

ClBtnShadow

Текущий цвет теней, отбрасываемых кнопками

ClGrayText

Текущий цвет текста недоступных элементов

ClBtnText

Текущий цвет текста кнопок

ι OlInactiveCaptionText

Текущий цвет текста заголовка в неактивном окне

ClBtnHighlight

Текущий цвет выделенной кнопки

J

I cl3DDkShadow

Цвет темных теней трехмерных элементов; только для Windows 95 или NT 4.0

Cl3DLight

Светлый цвет на краях освещенных трехмерных эле­ментов; только для Windows 95 или NT 4.0

ClInfoText

Цвет текста советов; только для Windows 95 или NT 4.0

ClInfoBk

Цвет фона советов; только для Windows 95 или NT 4.0

ClNone

Белый для Windows 9х, черный для Windows NT/XP

ClGradientActive

Caption

В Windows 98/2000/XP правый цвет перелива заголов­ка активного окна

ClGradientInactive. Caption

В Windows 98/2000/XP правый цвет перелива заголов­ка неактивного окна

ClDefault

Цвет компонента по умолчанию

Первая часть этих констант соответствует определенным цветам. А вторая часть определяется той схемой цветов, которую установил пользователь в Win­dows. Пользователь может менять эту схему с помощью «Панели Управления» Windows. Таким образом, эти цвета могут изменяться от системы к системе. На­пример, ClBtnFace Может соответствовать серому цвету в одной схеме и желтова­то-коричневому в другой.

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

Вместо использования этих констант можно задавать TColor Как 4-байтовое шестнадцатеричное число, три младших разряда которого представляют собой ин­тенсивности синего, зеленого и красного цвета соответственно. Например, значе­ние $OOFFOOOO соответствует чистому синему цвету, $OOOOFFOO — чистому зеленому,

— чистому красному. $00000000 — черный цвет, $OOFFFFFF — белый.

Если старший байт равен нулю ($00), то берется ближайший к заданному цвет из системной палитры. Если старший байт равен единице ($01), то берется бли­жайший к заданному цвет из текущей палитры. Если старший байт равен двум ($02), то берется ближайший к заданному цвет из логической палитры контекста Данного устройства.

TComponent — базовый класс компонентов_________________________

Базовый класс всех компонентов Delphi.

Иерархия TObiect TPersistent Модуль Classes.

Описание

Класс TComponent Является прародителем всех компонентов C++Builder. Он инкапсулирует наиболее общие свойства и методы компонентов, включая:

• Возможность включать компонент в палитру компонентов и работать с ним при визуальном проектировании.

• Способность быть владельцем других компонентов или управляться другими компонентами.

• Возможности обмена с потоками и файлами.

• Возможность служить оболочкой элементов ActiveX и других объектов. Объекты типа TComponent Не создаются. Класс TComponent Используется как

Базовый, когда объявляется класс невизуального компонента, который может при­сутствовать в палитре компонентов и применяться в процессе проектирования. Для создания визуальных компонентов в качестве базового используется класс TControI Или его потомки. Для создания оконных компонентов в качестве базового используется класс TWinControI Или его потомки.

Свойства

Свойство

Объявление / Описание

ComObject

Typedef System: :DelphiInterface< IUnknown > _di_IUnknown; _di_IUnknown ComObject

Защищенное свойство, возвращающее ссылку на интерфейс в компонентах, поддерживающих стандарт СОМ. Только для чтения

Свойство

Объявление / Описание

. ComponentCount

Int ComponentCount

Число компонентов, которыми владеет данный компонент. Равно количеству элементов в массиве Components. На 1 ме­ньше индекса последнего компонента Componentlndex, по­скольку индексы отсчитываются от 0. Может использовать­ся вместе с Componentlndex в циклах, когда надо изменить какие-то свойства всех компонентов. Только для чтения

‘ ComponentIndex

Int Componentlndex

Индекс компонента в массиве Components владельца данно­го компонента. Отсчитывается от 0, т. е. индекс первого ком­понента — 0. Может использоваться вместе с ComponentCo — unt в циклах, когда надо изменить какие-то свойства всех компонентов ‘

Components

TComponent* Components[int Index]

Массив компонентов, которыми владеет данный компонент. Позволяет сослаться на любой компонент с помощью его Componentlndex. Только для чтения

I ComponentState

Enum Classes___ 34 {csLoading, csReading, csWriting,

CsDestroying, csDesigning, csAncestor, csUpdating, csFixups, CsFreeNotification,; cslnline, CsDesignInstanceJ;

Typedef Set<Classes____ 34, csLoading, csDesignInstance>

TComponentState;

TComponentState ComponentState

Состояние компонента в процессе визуального проектирова­ния. Свойство только для чтения. Во время выполнения не используется. Только для чтения

ComponentStyle

TComponentStyle ComponentStyle

Определяет множество флагов стиля компонента, в частно­сти, стиль CsInheritable указывает, что компонент может принадлежать форме. Только для чтения

DesignInfo

Int Designlnfo

Используется только в среде C++Builder при проектирова­нии форм. В приложениях не используется

Name

AnsiString Name

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

Owner

TComponent* Owner

Определяет владельца данного компонента

Tag

Int Tag

Это свойство не используется в C++Builder. Разработчик мо­жет использовать его по своему усмотрению

Γ V CLComObjeet

_____

Void * VCLComObject

Используется только в среде C++Builder для компонентов, поддерживающих стандарт СОМ

Методы

В классе TConiponent определено множество методов. Ниже приводятся только те из них, которые наиболее часто используются пользователями при работе с ком­понентами. Остальные используются для внутренних потребностей C++Builder.

Метод

Объявление/Описание

, ExecuteAction.

Bool ExecuteAction(TBasicAction* Action)

Вызывает указанное действие Action, Связанное с данным компонентом

FindComponent

TComponent* FindComponent(const AnsiString AName)

Ищет в списке Components Компонент с заданным именем AName

I ~

FreeNotification

Void FreeNotification(TComponent* AComponent)

Гарантирует, что указанный в вызове компонент ACompo — nent Будет разрушен. Используется только по отношению к компонентам, расположенным на других формах. Для компонентов на текущей форме вызывается автоматически

I InsertComponent

Void InsertComponent(TComponent* AComponent)

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

RemoveComponent

Void RemoveComponent(TComponent* AComponent)

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

L-________________

Из список другого владельца

Класс TComponent Наследует также методы Assign, ClassName, ClassNameIs, Free И многие другие.

TControl — базовый класс визуальных компонентов_________________

Абстрактный базовый класс всех визуальных компонентов Delphi.

Иерархия TObiect TPersisten tTComponent

Модуль Controls.

Описание

Класс TControl Является базовым абстрактным классом для всех визуальных компонентов Delphi, т. е. для компонентов, которые пользователь может видеть и которыми манипулирует во время выполнения приложения. Все они имеют об­щие свойства, методы и события, определяющие место их размещения, расцветку, реакцию на нажатие клавиш или кнопок мыши и т. д.

Защищенные свойства и методы класса TControl Используются в их потомках. Если требуется создать новый класс визуального компонента, его надо создавать как производный от TControl Или от его потомков.

Свойства

Свойство

Объявление / Описание

Action

ClasseszTBasicAction* Action

Определяет действие, связанное с данным управляющим элемен­том. Это действие определяется компонентом типа TActionList

Align

TAlign Align

Определяет способ выравнивания компонента в контейнере (ро­дительском компоненте): без выравнивания, по верху, по низу, по левой стороне, по правой стороне, по всей клиентской облас­ти и заказное

J Anchors

Property Anchors: TAnchors;

Определяет привязку данного компонента к родительскому при изменении размеров последнего: к верней грани, к левой гра­ни, к правой грани, к нижней грани

AutoSize

Enum TAnchorKind { akLeft, akTop, akRight, akBottom }; typedef SetcTAnchorKind, AkLeft, akBottom> TAnchors; TAnchors Anchors

Определяет, будет ли высота элемента автоматически адаптиро­ваться к размеру символов текста

BiDiMode

Enum TBiDiMode { bdLeftToRight, bdRightToLeft,

BdRightToLeftNoAlign, bdRightToLeftReadingOnly };

Classes "TBiDiMode BiDiMode

Определяет двунаправленный характер компонента. По умолча­нию равно bdLeftToRight, что характерно для европейских языков. Другие значения используются для стран Востока

BoundsRect

Types: :TRect BoundsRect

Определяет координаты углов компонента в координатах содер­жащего его контейнера

Caption

AnsiString Caption

Строка текста, идентифицирующая компонент для пользовате­ля. Обычно это надпись на метке, кнопке и др. компонентах

CIientHeight

Int ClientHeight

Высота клиентской области в пикселах

ClientOrigin

Types: :TPoint ClientOrigin

Координаты положения на экране левого верхнего угла клиент­ской области компонента. Свойство только для чтения

ClientRect

TypeszTRect ClientRect

Определяет координаты углов клиентской области компонента

1 CIientWidth

Int ClientWidth

Горизонтальный размер клиентской области в пикселах

Color

Graphics: :TColor Color

Цвет фона компонента

Свойство

Объявление / Описание

Constraints

TSizeConstraints* Constraints

Позволяет задавать ограничения на допустимые изменения раз­меров компонента при изменениях размеров окна приложения: MaxHeight, MaxWidth, MinHeight, MinWidth — максималь­ную и минимальную высоту и ширину

ControlState

TControlState ControlState

Характеризует текущее состояние компонента во время выпол­нения приложения. Используется при создании новых классов

ControlStvle

TControlStvle ControlStyle

Определяет характеристики стиля компонента. Используется при создании новых классов

Cursor

TCursor Cursor

Определяет вид курсора мыши при попадании его в область компонента

DesktopFont

Bool DesktopFont

Определяет, использует ли компонент для отображения текста изображение шрифта Windows

Dock

Orientation

Enum TDockOrientation {doNoOrient, doHorizontal, do Vertical}; TDockOrientation DockOrientation

Определяет позицию данного встраиваемого компонента отно­сительно других встроенных компонентов

DragCursor

TCursor DragCursor

Определяет вид курсора мыши, при попадании его в область компонента в процессе перетаскивания

DragKind

Enum TDragKind { dkDrag, dkDock };

TDragKind DragKind

Определяет, будет ли объект перетаскиваться по технологии Drag&Drop (dkDrag), или Drag&Doc (dkDock)

DragMode

Enum TDragMode { dmManual, dmAutomatic };

TDragMode DragMode

Определяет автоматическое (dmAutomatic) или программное (dmManual) начало процесса перетаскивания

Enabled

Bool Enabled

Определяет, реагирует ли компонент на события, связанные с мышью, клавиатурой и таймером

Floating

Bool Floating

Определяет, находится ли компонент в состоянии «плавающе­го» окна. Свойство только для чтения

FloatingDock

SiteClass

Class PACKAGE TMetaClass;

Typedef TMetaClass* TClass;

TMetaClass* FIoatingDockSiteClass

Определяет класс временного компонента, управляющего пла­вающим окном

Свойство

Объявление / Описание

Font

Graphics::TFont* Font

Определяет атрибуты шрифта

Height

Int Height

Высота компонента в пикселах

HelpContext

Typedef int THelpContext;

ClasseszTHelpContext HelpContext

Определяет номер темы контекстной справки, связанной с ком- » понентом. Свойство работает, если HelpType = htContext J

HelpKevword

AnsiString HelpKeyword

Определяет идентификатор темы контекстно-зависимой справ­ки. Свойство работает, если HelpType = IitKeyword

HelpType

Enum THelpType {htKeyword, htContext};

ClasseszTHelpType HelpType

Определяет, какое свойство — HelpContext или HelpKeyword указывает тему контекстно-зависимой справки

HostDockSite

TWinControl* HostDockSite

Определяет контейнер, в который встроен данный компонент

_____________

Hint

Property Hint: string;

Определяет текст подсказки

IsControl

Bool IsControl

Определяет, сохраняет ли форма свои специфические свойства в поток. Свойство защищенное. Используется при создании но­вых компонентов

Left

Int Left

Координата левого края компонента в пикселах

LRDockWidth

Int LRDockWidth

Ширина компонента, когда он в последний раз размещался в контейнере горизонтально. Свойство только для чтения

MouseCapture

Bool MouseCapture

Определяет, может ли компонент захватываться мышью. Свойст­во защищенное. Используется при создании новых компонентов

Name

Ansi String Name

Имя компонента

_____________

TWinControl* Parent

Определяет родительский компонент, в площади которого рас­полагается данный компонент

ParentBiDi

I Mode

Bool ParentBiDiMode

Определяет, будет ли для компонента заимствовано свойство BiDiMode родительского компонента

1 ParentColor

1

Bool ParentColor

Определяет, будет ли для компонента заимствован цвет родитель­ского компонента

Свойство

" ■ —■ ■ ■ ■ ■■ — — I— — —■ ■ . .. . M ■■ F — — — η

Объявление / Описание

ParentFont

Bool ParentFont

Включает и выключает использование шрифта родительского компонента

ParentShow

Hint

Bool ParentShowHint

Включает и выключает использование свойства ShowHint ро­дительского компонента

PopupMenu

MenusnTPopupMenu* PopupMenu

Определяет связанный с компонентом объект всплывающего меню

ScalingFlags

Enum Controls___ 9 { sfLeft, sfTop, sfWidth, sfHeight, sfFont,

SfDesignSize };

Typedef SetcControls____ 6, sfLeft, sfFont> TScalingFlags;

TScalingFlags ScalingFlags

Показывает, какие атрибуты компонента еще не отмасштабиро — ваны. Используется при разработке новых компонентов

ShowHint

Bool ShowHint

Разрешает или запрещает показывать ярлычок подсказки, текст которого задается свойством Hint

TBDockHeight

Int TBDockHeight

Высота компонента, когда он в последний раз размещался в контейнере вертикально. Свойство только для чтения

Text

AnsiString Text

Текст, связанный с данным компонентом

Top

Int Top

Координата верхнего края компонента в пикселах

I UndockHeight

Int UndockHeight

Высота компонента, которая была в последний раз, когда он отображался плавающим окном. Свойство только для чтения

I UndockWidth

Int UndockWidth

Ширина компонента, которая была в последний раз, когда он отображался плавающим окном. Свойство только для чтения

Visible

Bool Visible

Делает компонент видимым или невидимым

Width

Int Width

Горизонтальный размер компонента в пикселах

WindowProc

Type TWndMcthod = procedure(var Message: TMessage)

Of object;

ClassesnTWndMethod WindowProc

Указывает на оконную процедуру обработки сообщений, поступаю­щих компоненту. Используется при создании новых компонентов

WindowText

Char* WindowText

Содержит текст, связанный с данным компонентом

Помимо перечисленных свойств класс TControl Наследует также ряд свойств

TComponent: ComObject, ConiponentCount, ComponentIndex, Components, Com- ponentState, ComponentStyle, DesignInfo, Owner, Γnαg, VCLComObject.

Методы

Ниже приводится таблица только тех методов, которые могут применяться пользователями компонентов или разработчиками не очень сложных компонен­тов. Помимо перечисленных в классе определено еще много методов, интересных только для разработчиков сложных новых компонентов.

Метод

Объявление / Описание

BeginDrag

Void BeginDrag(bool Immediate, int Threshold = — 1)

Начинает процесс перетаскивания компонента

I BringToFront

Void BringToFront(Void)

Переносит компонент в Z-последовательности выше других компонентов на той же форме

Changed

Void Changed(void)

Используется, чтобы послать сообщение CM_CHANGED роди­тельскому компоненту, если в свойствах данного компонента сделаны какие-то изменения, на которые должен прореагиро­вать родительский компонент

ChangeScale

Void ChangeScale(int M, int D)

Изменяет масштаб и расположение компонента в отношении

M /D

Click

Void Click(void)

Вызывает обработчик события OnClick при щелчке мыши. Используется при проектировании новых классов

I ClientToParent

TPoint ClientToParenttconst TPoint Point,

TWinControl *AParent = (TWinControl*) NULL)

Пересчитывает координаты точки компонента в координаты указанного родительского компонента

ClientToScreen

Types::TPoint ClientToScreen(const Types: :TPoint &Point)

Преобразует координаты Point клиентской области в коорди­наты экрана J

Create

Virtual TControl(Classes::TComponent* Λ0wner)

Создает экземпляр TControl. Но так как TControl — абстрак­тный класс, создавать его экземпляры нельзя. Метод переоп­ределен в потомках. Но и их экземпляры надо создавать опе­рацией new

DblClick

Void DblClick(void)

Вызывает обработчик события OnDblClick при двойном щелч­ке мыши. Используется при проектировании новых классов

J DefaultHandler

_______________

Virtual void DefaultHandler(void *Message)

Обработчик сообщений Windows по умолчанию. Использует­ся, наряду с методом, на который ссылается WindowProc, При проектировании новых классов компонентов

Метод

Объявление / Описание

DoEndDock

Void DoEndDock(System::TObject* Target, int X, int Y)

Вызывает обработчик события OnEndDock. Используется при проектировании новых классов

DoEndDrag

Void DoEndDragtSvsteinaTObiect* Target, int X, int Y)

Вызывает обработчик события OnEndDrag. Используется при проектировании новых классов

DoMouseWheel

Bool DoMouseWheeltciassesuTShiftState Shift,

Int WheelDelta, const Types uTPoint &MousePos)

Автоматически вызывается при вращении колесика мыши. Если находится обработчик события OnMouseWheel, вызыва­ет его и возвращает true. Иначе вызывает DoMouseWheel — Down или DoMouseWheelUp. Используется при проектирова­нии новых классов

DoMouseWheel ‘ Down

Bool DoMousewheelDowntciassesaTShiftState Shift,

Const TypesaTPoint &MousePos)

Генерирует событие OnMouseWheelDown. Возвращает true, если находится обработчик этого события. Используется при проектировании новых классов

DoMouseWheel

Up

Bool DoMousewheeiuntciassesuTShiftState Shift,

Const TvDesuTPoint &MousePos

Генерирует событие OnMouseWheelUp. Возвращает true, если находится обработчик этого события. Используется при про­ектировании новых классов

DoStartDock

Void DoStartDocktTDragObject* &DragObject)

Вызывает обработчик события OnStartDock. Используется при проектировании новых классов

DoStartDrag

Void DoStartDragtTDragObject* &DragObject)

Вызывает обработчик события OnStartDrag. Используется при проектировании новых классов

DragCanceled

Void DragCanceled(void)

Прерывает перетаскивание. Используется при проектирова­нии новых классов

DragDrop

1______________

Void OragDroptSystemaTObjecti Source, int X, int Y)

Вызывает обработчик события OnDragDrop. Xu Y — коорди­наты мыши. Используется при проектировании новых классов

EndDrag

Void EndDrag(bool Drop)

Завершает успешно (при Drop = true) или неуспешно перетас­кивание. Используется при проектировании новых классов

GetTextBuf

Int GetTextBuffchar * Buffer, int BufSize)

Записывает в заданный буфер Buffer фиксированного размера BufSize значение свойства Text. Для получения строки тек­ста типа AnsiString надо вместо этого метода использовать само свойство Text

Метод

Объявление / Описание

GetTextLen

Int GetTextLen(Void)

Возвращает длину строки свойства Text, необходимую для за­дания размера буфера в методе GetTextBuf

Hide

Void Hide(void)

Делает компонент невидимым

_______________

Invalidate

Void Invalidate (void)

Вызывает полную перерисовку испорченного изображения

Компонента

I ManualDock

Bool ManualDock(TWinControl* NewDockSite,

TControl* DropControl = (TControl*) NULL, TAlign ControlSide = alNone)

Изымает встроенный компонент из текущего контейнера и встраивает его в NewDockSite. DropControl — компонент внутри нового контейнера (если таковой есть), в который про­изводится встраивание (например, страница в многостранич­ном контейнере). ControlSide определяет выравнивание ком­понента в контейнере∣

ManualFloat

Bool ManualFloat(const TvpesnTRect &ScreenPos)

Переводит встроенный компонент в состояние плавающего окна в область ScreenPos

MouseDown

Void MouseDown(TMouseButton Button,

ClassesnTShiftState Shift, int X, int Y)

Вызывает обработчик события OnMouseDown. Используется при проектировании новых классов

MouseMove

Void MouseMovetciassesnTSIiiftState Shift, int X, int Y)

Вызывает обработчик события OnMouseMove. Используется при проектировании новых классов

I MouseUp

Void MouseuptTMouseButton Button,

ClassesnTShiftState Shift, int X, int Y)

Вызывает обработчик события OnMouseUp. Используется при проектировании новых классов

ParentToClient

TypesnTPoint ParentTo Client (const Types: :TPoint &Point,

TWinControl* AParent = (TWinControl*) NULL)

Переводит координаты точки Point из системы координат компонента AParent в систему координат данного компонен­та. Компонент AParent должен быть одним из родительских компонентов, который может быть найден по цепочке ссылок свойств Parent. Если AParent = NULL, подразумевается не­посредственный родительский компонент

., Perform.

Int Perform(unsigned Msg, int WParam, int LParam)

Посылает компоненту сообщение Msg с параметрами WParam и LParam

Refresh

Void Refresh(void)

Немедленно перерисовывает компонент на экране, вызывая

Метод Repaint____________________________________________

Метод

Объявление / Описание

Repaint

Void Repaint(void)

Немедленно перерисовывает компонент на экране

ReplaceDocked

Control

Bool RenlaceDockedcontroKTControl* Control,

TWinControl* NewDockSite, TControl* DropControl, ТAlign ControlSide)

Встраивает данный компонент на место компонента Control, встроенного в контейнер NewDockSite. DropControl — компо­нент внутри контейнера NewDockSite (например, страница многостраничного компонента). ControlSide определяет вы­равнивание компонента

ScreenToCIient

Types::TPoint ScreenToClient(const TypesaTPoint &Point) Преобразует координаты Point экрана в координаты клиент­ской области компонента

SendCancel

Mode

Void SendCancelMode(TControl* Sender)

Прерывает модальное состояние элемента

SendToBack.

Void SendToBack(Void)

Переносит компонент в Z-последовательности ниже других компонентов на той же форме

SetBounds

Void SetBounds(int ALeft, int ATop, int A Width, Int AHeight) Задает сразу 4 свойства: Left, Top, Width и Height

SetTextBuf

Void SetTextBuf(char* Buffer)

Записывает в заданный буфер значение свойства Text. Использу­ется, если нужна обратная совместимость с 16-битными кодами

Show

Void Show(void)

Делает видимым невидимый компонент

UpdateBounds

Rect

Void UpdateBoundsRecttconst Types: :TRect &R)

Изменяет, как и SetBounds, полное описание BoundsRect, но не перерисовывает изображение компонента на экране

Помимо перечисленных методов и многих других вспомогательных, класс TControl Наследует методы своих классов-предков, в частности, Assign, FindCompo — nent, InsertComponent, RemoveComponent, ClassName, ClassNamels, Free И мно­гие другие.

События

В классе TControl, В отличие от предшествующих ему в иерархии, описаны не только свойства и методы, но и следующие события:

Событие

Описание

OnCanResize

Событие при попытке изменить размеры компонента

OnClick

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

I

OnConstrainedResize

___________________

Событие при изменении размеров компонента, наступаю­щее после OnCanResize и позволяющее определить но­вые размеры

Событие

Описание

OnContextPopup

Событие при щелчке правой кнопкой мыши на компо­ненте с целью вызвать контекстное меню

OnDblClick

Событие при двойном щелчке на компоненте

OnDragDroo

Событие при отпускании перетаскиваемого компонента

OnDragQver

Событие при перетаскивании объекта над компонентом

OnEndDoc

Событие при окончании или прерывании перетаскива­ния и встраивания

OnEndDrag

Событие при окончании или прерывании перетаскивания

[ OnMouseDown

Событие при нажатии кнопки мыши над объектом

OnMouseMove

Событие при перемещении указателя мыши над объектом

OnMouseUo

Событие при отпускании нажатой кнопки мыши над объектом

] OnMouseWheel

Событие при вращении колесика мыши

I OnMouseWheelDown

Событие при вращении колесика мыши вниз

[ OnMouseWheelUD

Событие при вращении колесика мыши вверх

OnResize

Заключительное событие при изменении размеров ком­понента, наступающее после OnCanResize И OnConstrai — nedResize

OnStartDoc

Событие при начале перетаскивания и встраивания объ­екта

[ OnStartDrag

Событие при начале перетаскивания объекта

TControl State — тип ________ ____ _______________

Тип определяет множество значений, характеризующих состояние компонен­та во время выполнения приложения.

Определение

Enum Controls_______ 01 {csLButtonDown, csClicked, csPalette,

CsReadingState, CsAlignmentNeeded, csFocusing, csCreating, CsPaintCopy,

CsCustomPaint, CsDestroyingHandle, csDocking};

Typedef Set<Controls_______ 01, csLButtonDown, csDocking> TControlState;

Описание

Тип TControlState Используется в свойстве ControlState Для определения раз­личных условий, действующих на данный экземпляр компонента, например, щел­чок мыши или необходимость выравнивания компонента. Свойство может содер­жать следующие флаги:

CsLButtonDown

Левая кнопка мыши нажата, но еще не освобождена

CsClicked

I

То же самое, что csLButtonDown, но только в том слу­чае, если свойство компонента ControlStyle Содержит флаг csClickEvents, означающее, что событие, связанное с нажатием кнопки, интерпретируется как щелчок

CsPalette

Компонентом или одним из его родителей получено сооб­щение WM PALETTCHANGED

CsReadingState

Компонент читает свое состояние из потока

CsAlignmentNeeded

Компонент должен осуществить выравнивание

CsFocusing

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

CsCreating

Создается данный компонент, или его владелец, или управляемый им компонент. Этот флаг очищается, когда создание компонента завершено

___________________

CsPaintCopy

Компонент должен быть перекрашен. Это состояние воз­можно, если свойство ControlStyle содержит флаг CsRep-

Licatable

___________________

CsCustomPaint

Компонент находится в состоянии заказной прорисовки

CsDestroyingHandle

Оконный компонент должен быть уничтожен

CsDocking

Компонент находится в процессе встраивания

TControlStyle — тип

Тип, характеризующий множество значений стиля компонента.

Определение

Enum Controls_ 11 {CsAcceptsControls, CsCaptureMouse,

CsDesignInteractive, CsClickEvents,

CsFramed, CsSetCaption, csOpaque,

CsDoubleClicks, CsFixedWidth, CsFixedHeight, CsNoDesignVisible, CsReplicatable,

CsNoStdEvents, CsDisplayDragIinage,

CsReflector, CsActionClient, CsMenuEvents);

Typedef Set<Controls 11, CsAcceptsControls, CsMenuEventsA

TControlStyle;

Описание

Тип TControlStyle Используется в свойстве ControlStyle Для определения раз­личных атрибутов компонента, например, может ли он быть захвачен мышью или имеет ли он фиксированные размеры. Множество TControlStyle Может содержать

Следующие флаги:

CsAcc eptsC ontrols

Компонент становится родителем любого компонента, перенесенного на него в процессе проектирования

I CsCaptureMouse

Захват компонента мышью при щелчке на нем

CsDesignInteractive

___________________

Компонент устанавливает соответствие во время проек­тирования щелчка правой кнопки мыши щелчку левой кнопки для манипуляций с компонентом

CsClickEvents

Компонент получает сообщение о щелчке мыши и реаги­рует на него

J csFramed

Компонент имеет объемную рамку

Компонент должен изменять надпись на нем в соответст­вии со свойством Name, если только надпись не задана явным образом

CsOpaque

Компонент полностью заполняет свою клиентскую область

CsDoubleClicks

Компонент получает сообщение о двойном щелчке мыши и реагирует на него. Если флаг не установлен, то двой­ной щелчок интерпретируется как просто щелчок

J CsFixedWidth

Ширина компонента не меняется и не масштабируется

CsFixedHeight

Высота компонента не меняется и не масштабируется

CsNoDesign Visible

Компонент невидим во время проектирования.

‘ csReplicatable

Компонент может копироваться методом PaintTo Для прорисовки произвольной канве

Ij CsNoStdEvents

Игнорируются стандартные события, такие, как нажатие кнопок мыши, клавиш, щелчки. Этот флаг надо устанав­ливать, если ваш код не должен реагировать на эти со­бытия; в результате ваше приложение будет выполнять­ся быстрее

I CsDisplayDragImage

Компонент может отображать изображение из списка изображений, когда мышь перемещается на него. Этот флаг устанавливается, если компонент реализует список изображений для отображения при перемещении на него

Мыши

1 csReflector

Компонент реагирует на сообщения Windows, поступаю­щие из диалогов, сообщения о фокусировке, сообщения об изменении размеров. Этот флаг устанавливается, если компонент может использоваться как элемент ActiveX и должен реагировать на эти события

CsActionClient

Компонент связан с объектом действия. Флаг устанавли­вается при задании свойства Action и очищается при

Очистке Action

IcsMenuEvents

Компонент реагирует на команды системного меню

Конструктор класса TControl Инициализирует свойство ControIStylG Значе­Ниями [csCaptureMouse, csClickEvents, csSetCaption, CsDoubleClicks].

TCursor — тип __ _________________________________

Определяет изображение курсора мыши.

Определение

Enura TCursor IcrMin=OxTfff-I, CrMax=OxTfff);

Описание

Тип TCursor Используется для выбора вида изображения курсора мыши в та­ких свойствах, как Cursor, DragCursor И некоторых других. Значения TCursor Яв­ляются индексом списка возможных курсоров, управляемого глобальной перемен­ной Screen. Ниже приводится перечень встроенных в TScreen Типов курсоров:

Константа

Значение

Вид

Константа

Значение

Вид

CrDefault

0

Курсор по умолчанию. Обычно это CTArrow.

CrDraff

-12

1 CrNone

-1

CrNoDrop

-13

‘0

CrArrow

-2

CrHSplit

-14

■И I

ψ

CrCross

-3

И

CrVSplit

-15

CrIBeam

-4

Ня

Я

⅜8⅝fe _ . . _ _

CrMuItiDrag

-16

В

— — 1

CrSizeNESW

-6

CrSQLWait

-17

¥

-SQL

CrSizeNS

-7

■ ■

CrNo

-18

ʌ I

I

: CrSizeNWSE

-8

Ш

CrAppStart

-19

CrSizeWE

-9

CrHelp

-20

CrUpArrow

-10

Я

CrHandPoint

-21

CrHourGlass

-11

Т

CrSize — устарело

CrSizeAll

» — — — — — —

-22

»]

TCustomClientDataSet — базовый класс клиентских наборов данных

Клиентский набор данных.

Иерархия Т Obiect TPersistent TComponent TDataSet

Модуль DBCUent.

Описание

Класс TCustomClientDataSet Является базовым для таких компонентов кли­ентских наборов данных, как TClientDataSet, TBDEClientDataSet, TSQLClientDa — taSet. B TCustomClientDataSet Реализованы свойства и методы, позволяющие соз­давать наборы данных, хранящие данные в памяти В виде пакетов транспортного формата. Для осуществления своих функций объекты TCustomClientDataSet Ис­пользуют возможности технологии Midas, реализованные В библиотеке Midas. dll.

Объекты класса TCustomClientDataSet создавать нельзя. Класс используется только как базовый для своих наследников TClientDataSet, TBDEClientDataSet, TSQLClientDataSet и других, а также для создания новых классов клиентских на­боров данных.

Клиентские наборы данных, реализуемые компонентами TBDEClientDataSet, TClientDataSet И другими наследниками класса TCustomClientDataSet, Обладают всеми свойствами и методами, наследуемыми ими от класса TDataSet, И многими возможностями, присущими наборам данных, связанным с таблицами. Иначе го­воря, упорядочивание данных с помощью индексов, задание ограничений, созда­ние и модификация таблиц может осуществляться в клиентских наборах данных так же, как и в других наследниках TDataSet. Но во всех этих операциях добавля­ется немало новых возможностей.

Особенность клиентских наборов данных заключается в том, что данные хра­нятся в памяти и могут сохраняться в файле на диске и читаться из этого файла. Та­ким образом, клиентские наборы данных могут выступать как автономные основан­ные на файлах MyBase наборы данных в однопоточных приложениях. Другая нема­ловажная функция клиентских наборов — создание так называемой «портфельной» базы данных, в которую первоначально записываются данные сервера или какой-то иной базы данных, а затем вся работа проходит с файлом на компьютере клиента. Пользователь может изменять эти данные, причем при закрытии клиентского набо­ра все изменения запоминаются в файле. А при открытии набора данные из файла записываются в клиентский набор. Таким образом, «портфельная» база данных — альтернатива кэширования. Преимуществом является то, что изменения могут про­изводиться не обязательно в одном сеансе работы, а в нескольких. И когда пользова­тель решит, что изменения заслуживают пересылки в базу данных, он может зане­сти в нее все изменения, сделанные на протяжении этих сеансов.

Клиентские наборы данных обладают еще одной полезной особенностью. С их помощью наиболее просто осуществлять взаимную трансляцию таблиц баз дан­ных, созданных в разных СУБД и работающих на разных платформах.

Основные области применения клиентских наборов данных: автономные набо­ры данных, портфельные наборы данных, интерфейс к другим наборам данных. Кроме того, клиентские наборы данных предоставляют дополнительные возмож­ности при индексации и фильтрации данных и обеспечивают расчет совокупных характеристик по всем или указанному подмножеству записей набора. Рассмотре­ние всех этих областей применения и особенностей клиентских наборов выходит за рамки данной книги. Эти вопросы подробно рассмотрены в источнике [3].

Свойства

Основные свойства класса TCustomClientDataSet:

Свойство

Объявление / Описание

Aggregates

TAggregates* Aggregates

Коллекция всех совокупных характеристик, поддерживае­мых данным набором данных

AggregatesActive

Bool AggregatesActive

Определяет, управляет ли набор совокупными характери­стиками. Для расчета совокупных характеристик надо установить true

CommandText

AnsiString CommandT ext

Запрос SQL, или таблица, или хранимая процедура, опреде­ляющие соединение набора данных

ConnectionBroker

TConnectionBroker* ConnectionBroker

Указывает брокера, обрабатывающего соединение на серве­ре приложений

Data

SystemaOleVariant Data

Данные клиентского набора в транспортном формате

Delta

System: : OleVariant Delta

Пакет изменений в данных, еще не зафиксированных в базе данных

— ■ — ,1—— ——- 1———— ————— M ГН

Свойство

Объявление / Описание

∣ Filter

Property Filter: string;

Строка фильтра набора данных (намного шире, чем в роди­тельском классе TDataSetl

_________________

GroupingLevel

Int GroupingLevel

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

IndexDefs

DbxTIndexDefs* IndexDefs

Коллекция определений индексов набора

IndexFieldNames

AnsiString IndexFieldNames

Список имен индексов, разделенных точками с запятой

IndexName

AnsiString IndexName

Имя текущего индекса

LogChanges

Bool LogChanges

Определяет, хранятся ли изменения в свойстве Delta, отдель­но от Data. Задавать значение false может иметь смысл толь­ко в автономных наборах данных для повышения производи­тельности

_________________

MasterFields

I

AnsiString MasterFields

Во вспомогательной таблице определяет ключевые поля го­ловной таблицы, используемые для связи со вспомогатель­ной таблицей

MasterSource

DbaTDataSource* MasterSource

Во вспомогательной таблице определяет источник данных головной таблицы

ProviderName

AnsiString ProviderName

Имя провайдера, снабжающего набор данными

RemoteServer

TcustomRemoteServer* RemoteServer

Указывает компонент, используемый набором для связи с сервером приложений

SavePoint

1

Int SavePoint

Указывает точку текущего состояния результатов редакти­рования. Позволяет вернуться к предыдущему состоянию

Кроме приведенных свойств, класс наследует множество свойств своего роди­тельского класса TDataSet: Active. AggFields, AutoCalcFields. BlockReadSize. Bof. Bookmark. CanModify. DataSource, Eof. FieldCount. FieldDefs. Fields. Field — Values. Filtered. FilterOotions. Found, Modified, Name, RecordCount, Sparse — Arrays, State. В классе имеется еще немало свойств, наследуемых от TComnonent.

Методы

Ниже приведен список основных методов, определенных в TCustomClient — DataSet.

Метод

Объявление / Описание

AddIndex

Void Addlndex(const AnsiString Name, Const AnsiString Fields,

Db::TIndexOptions Options, const AnsiString DescFields = "", const AnsiString CaseInsFields = const int GroupingLevel = 0)

Формирует новый индекс с заданными условиями сортировки

AppendData

Void AppendData(const System::OleVariant &Data,

Bool HitEOF)

Добавляет новый пакет записей к уже существующим в кли­ентском наборе

ApplyUpdates

Int ApplyUpdates(int MaxErrors)

Отправляет измененные данные провайдеру для записи в базу данных

CancelUpdates

Void CancelUpdates(void)

Отменяет все изменения, отображенные в свойстве Delta

Creat eData Set

Void CreateDataSet(void)

Создает новый автономный набор данных

DeleteIndex

Void DeleteIndexCconst AnsiString Name)

Удаляет индекс с заданным именем

EmptyDataSet

Void EmptyDataSet(void)

Удаляет все записи из набора данных

GetBookmark

Function GetBookmark: TBookmark;

Создает и возвращает новую закладку набора данных

GetIndexNames

Void GetIndexNames(Classes::TStrings* List)

Возвращает список имен индексов

GetNextPacket

Int GetNextPacket(void)

Обеспечивает получение следующего пакета от провайдера с числом записей, не превышающим PacketRecords

LoadFromFile

Void LoadFromFileCconst AnsiString FiIeName = "") Загружает клиентский набор данных из указанного файла

RefreshRecord

Void RefreshRecordCvoid)

Обновляет текущую запись, перенося ее из базы данных

RevertRecord

Void RevertRecordCvoid)

Отменяет исправления текущей записи

SaveToFile

Void SaveToFile(const AnsiString FileName =

TDataPacketFormat Format = dfBinary)

Сохраняет набор данных в файле

UndoLastChange

Bool UndoLastChange(bool FollowChange)

Удаляет результаты последней операции редактирования

Кроме приведенных методов, класс наследует множество методов своего роди­Тельского класса TDataSet: Append. BookmarkValid. Cancel.

ClearFields, Close. CompareBookmarks. ControIsDisabled. CreateBlobStream, De­lete. DisableControls. Edit. EnablcControls. FieldByName. FindField, FindFirst, FindLast. FIndNext. FindPrior. First. FreeBookmark. GetBookmark. GetDetaiU DataSets. GetDetailLrnkFields, GetFieldNames. GotoBookmark, Insert. Insert — Record. IsEmpty, Last. Locate. Lookup. MoveBy. Next. Open. Post. Prior. Refresh. SetFields. Translate. UpdateStatus И ряд других.

События

Ниже приведен список основных событий, определенных в TCustomClient — DataSet.

Событие

Описание

AfterApplyUpdates

Наступает после выполнения метода AppIyUpdates

AfterExecute

Наступает после выполнения метода Execute

AfterGetParams

Наступает после выполнения метода FetchParams

AfterGetRecords

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

AfterRowRequest

Наступает после пересылки набору данных новой инфор­мации о текущей записи

BeforeApplyUpdates

Наступает перед выполнением метода AppIyUpdates

BeforeExecute

Наступает перед выполнением метода Execute

BeforeGetParams

Наступает перед выполнением метода FetchParams

BeforeGetRecords

Наступает перед пересылкой набору данных, затребован­ных от провайдера

BeforeRowRequest

Наступает перед пересылкой набору данных новой ин­формации о текущей записи

OnReconcileError

Наступает для каждой записи, вызвавшей ошибку при занесении в базу данных. Используется для принятия пользователем решения по разрешению возникшего кон­фликта

TCustomEdit — базовый класс окон редактирования_________________

Абстрактный базовый класс окон редактирования.

. Иерархия TObiect TPersistent TComponent TControl TWinControl

Модуль Stdctrls.

Описание

Класс TCustomEdit является базовым абстрактным классом для окон редакти­рования Edit и Memo. В нем инкапсулированы основные методы и свойства, ис­пользуемые при редактировании текстов. Они обеспечивают:

• Такие функции редактирования текста, как выделение фрагмента, преобразо­вания выделенного текста, чувствительность к регистру.

• Возможность откликаться на изменения в тексте.

• Управление доступом к тексту, например, доступ «только для чтения» или символы пароля, делающие невидимыми вводимые символы.

Создавать экземпляры объектов типа TCustomEdit Невозможно. Этот класс ис­пользуется только для создания производных классов, наследующих особенности обработки текстов.

Свойства

Основные свойства класса TCustomEdit:

Свойство

Объявление / Описание

AutoSelect

Bool AutoSelect

Определяет, выделяется ли весь текст при получении элемен­том фокуса

AutoSize

Bool AutoSize;

Определяет, будет ли высота элемента автоматически адаптиро­ваться к размеру символов текста

CanUndo

Bool CanUndo

Указывает, были ли произведены в тексте операции редактиро­вания, которые могут быть удалены командой Undo. Может ис­пользоваться для регулирования доступа к соответствующему разделу меню. Свойство только для чтения

CharCase

Enum TEditCharCase { ecNormal, EcUpperCase, ecLowerCase }; TEditCharCase CharCase

Определяет регистр отображаемого текста: ecNormal — все символы отображаются с учетом регистра, в котором был вве­ден каждый из них, ecUpperCase — все символы текста приво­дятся к верхнему регистру, ecLowerCase — все символы текста приводятся к нижнему регистру

HideSelection

Bool HideSelection

При значении true делает невидимым выделение части текста, когда компонент теряет фокус. В противном случае выделение остается и при потере фокуса

MaxLength

Int MaxLength

Устанавливает максимальную длину текста. Значение 0 указы­вает на неограниченную длину.

Modified

Bool Modified

Указывает, был ли изменен текст

PasswordChar

Char PasswordChar

Указывает символ, появляющийся в окне редактирования вмес­то вводимого пользователем символа. При значении 0 отобра­жается вводимый символ, в противном случае — заданный

Символ ввода пароля

Readonly

Bool Readonly

Устанавливает запрет редактирования текста пользователем

SelLength

Int SelLength

Указывает длину выделенного фрагмента текста

SelStart

Int SelStart

Указывает первый символ выделенного фрагмента текста. Если выделения нет, то указывает символ, перед которым располо­жен курсор

Свойство

Объявление / Описание,

SelText

_____________

AnsiString SelText

Содержит выделенный фрагмент текста. Можно задавать значе­ние SelText, чтобы заменить им выделенный текст. Если выде­ления нет, то задание SelText приведет к вставке заданного текста в позицию курсора (SelStart)

Кроме того, класс наследует много свойств от родительских классов, в частно­сти, Action, Align, Anchors, Brush, ClientRect, Constraints, Cursor, Enabled, Hint, TabOrder, TabStop, Visible И много других.

Методы

Ниже приводится таблица основных методов класса TCustomEdit.

I Метод

Объявление / Описание

Clear

Void Clear(void)

Удаление всего текста

Clear Selection

Void ClearSelection(Void)

Удаление выделенного текста

:j ClearUndo

Void ClearUndo(void)

Очистка буфера, используемого для команды Undo. После этого сделанные изменения в тексте не могут быть отме­нены

CopyToClipboard

Void CopyToClipboard(Void)

Копирование в буфер Clipboard выделенного текста

I CutToClipboard

Void CutToClipboard(Void)

Вырезание в буфер Clipboard выделенного текста

PasteFromClipboard

Void PasteFromClipboard(Void)

Вставка текста из буфера Clipboard вместо выделенного текста или, если нет выделения, то вставка текста в по­зицию курсора I

SelectAll

Void SelectAll(void)

Выделение всего текста

J Undo

Void Undo(void)

Отмена результатов последней операции редактирования

События

В классе TCustomEdit Определено только одно событие:

Событие

Описание

OnChange

Событие при попытке изменения пользователем текста. Произошло ли изменение в действительности, можно определить по значению свойства Modified.

TDataSet — базовый класС всех наборов данных

Базовый класс всех компонентов наборов данных, представляющих данные в виде строк и столбцов.

Иерархия TObMct TPersistentTComvonent

Модуль Db.

Описание

Класс TDataSet Инкапсулирует основные свойства, методы и события, исполь­зуемые при работе с базами данных. Многие из этих свойств и событий абстракт­ные и реализуются в наследниках класса TDataSet, Таких, как TClientDataSet, TBDEData, TDBDataSet, TQuery, TStoredProc И TTable.

Свойства

Ниже приведен список основных свойств, определенных в TDataSet.

Свойство

Объявление / Описание

Active

Bool Active

Определяет открытие и закрытие набора данных

AggFields

TFields* AggFields

Содержит массив полей совокупных (агрегированных) харак­теристик

AutoCalcFields

______________

Bool AutoCalcFields

Управляет генерацией событий OnCalcField

J BIockReadSize

Int BIockReadSize

Число записей, помещаемых при чтении в буфер

Bof

Bool Bof

Указывает, находится ли курсор на первой записи

Bookmark

AnsiString Bookmark

Определяет текущую закладку набора данных

CanModifv

Bool CanModify

Определяет, возможно ли редактирование набора данных

Constraints

TCheckConstraints* Constraints

Ограничения на допустимые значения параметров на уровне

Записи

‘ DataSource

TDataSource* DataSource

Указывает источник данных другого набора данных, снабжа­ющего информацией данный набор

Eof

Bool Eof

Указывает, находится ли курсор на последней записи

FieldCount

Int FieldCount

Число объектов полей, связанных с набором данных

FieldDefs

TFieldDefs* FieldDefs

Указывает на список объектов, определяющих поля набора

Данных____________________ __________________ I

■ Свойство

Объявление / Описание

Fields

TFields* Fields

Список всех объектов полей (кроме полей совокупных харак­теристик) набора данных. Свойство только для чтения

FieldValues

SystemuVariant FieldValuesrAnsiStrine FieldName]

Обеспечивает доступ к значениям всех полей активной записи

Filter

AnsiString Filter

Строка фильтра набора данных

Filtered

Bool Filtered

Разрешает или запрещает фильтрацию

FilterQptions

Enum TFilterOptioii { FoCaselnsensitive, FoNoPartialCompare }; J Typedef S et<TFilterOption, Fo Caselnsensitive,

FoN0PartialC0mpare> TFilterOptions; TFilterOptions FilterOptions

Опции фильтрации

Found

Bool Found

Булево свойство, показывающее успешность перемещения по набору данных методами. FindFiist, FindLast, FindNext. Find — Prior. Только для чтения

Modified

Bool Modified

Указывает, была ли модифицирована активная запись. Толь­ко для чтения

Name

AnsiString Name:

Имя набора данных. По умолчанию совпадает с именем соот­ветствующего компонента (Tablel, Query2 И т. п.). При изме­нении Name соответственно изменяются и использующие его имена полей (TablelFam, Query2Nam И т. п.)

RecordCount

Int RecordCount

Количество записей в наборе данных. В TDataSet всегда = -1. Так что читать это свойство можно только на уровне клас­сов-наследников. Только для чтения

SparseArrays

Bool SparseArrays

Указывает, создаются ли уникальные объекты полей для каж­дого элемента массива полей. Только для чтения

State

TDataSetState State

Состояние массива данных. Только для чтения

Кроме приведенных свойств в классе имеется еще немало свойств, наследуе­мых от TComponent.

Методы

Ниже приведен список основных методов, определенных в TDataSet.

Метод

Объявление / Описание

Append

Void Append(void)

Добавляет новую пустую запись в конец набора данных

Метод

Объявление / Описание

AppendRecord

Void AppendRecord(const System:: TVarRec * Values, const int Values_Size)

Добавляет в набор данных новую запись, заполняет ее и пере­сылает в базу данных

BookmarkValid

Bool BookmarkValid(void * Bookmark)

Определяет, присвоено ли значение указанной закладке Book­mark набора данных. Возвращает false, если не присвоено (в частности, если набор данных не поддерживает закладки)

Cancel

Void Cancel(void)

Отменяет результаты редактирования

CIearFields

Void ClearFields(void)

Очищает содержимое всех полей активной записи набора дан­ных

Close

Void Close(void)

Закрывает набор данных

Compare

Bookmarks

Int CompareBookmarks(void * Bookmarkl, Void * Bookmark2)

Сравнивает две закладки Bookmark набора данных

Controls

Disabled

Bool ControlsDisabled(void)

Проверяет наличие блокировки методом DisableControls ком­понентов, отображающих данные

CreateBlob

Stream

ClassesnTStream* CreateBlobStreamCTField* Field,

TBlobStreamMode Mode)

Создает поток для чтения и записи данных поля BLOB

Delete

Void Delete(void)

Удаляет активную запись и позиционирует курсор на следую­щую запись

Disable

Controls

Void DisableControls(void)

Блокирует вывод данных в компоненты, связанные с данными

Edit

Void Edit(void)

Перевод набора данных в режим редактирования

EnableC ontrols

Void EnableControls(void)

Снимает блокировку отображения Данных, Введенную ранее методом DisableControls

FieldBvName

TField* FieldByName(const AnsiString FieldName)

Находит поле по его имени. При неверном имени генерирует

Исключение

FindField

TField* FindField(const AnsiString FieldName)

Находит поле по его имени. При неверном имени возвращает NULL

FindFirst

Bool FindFirst(void)

Перемещает курсор к первой записи и возвращает true в слу­чае успеха

Метод

Объявление / Описание∣

FindLast

Bool FindLast(void)

Перемещает курсор к последней записи и возвращает true в случае успеха ,

FindNext

Bool FindNext(void)

Перемещает курсор к следующей записи и возвращает true

В случае успеха

FindPrior

Bool FindPrior(Void)

Перемещает курсор к предыдущей записи и возвращает True В случае успеха

First

Void First(void)

Перемещает курсор к первой записи

FreeBookmark

Void FreeBookmark(void * Bookmark)

Уничтожает закладку набора данных

GetBookmark

Void * GetBookmark(void)

Создает и возвращает новую закладку набора данных

GetDetailData

Sets

Procedure GetDetailDataSets(List: TList);

Заполняет список данными о вспомогательном наборе данных, находящемся с данным набором в соотношении master/detail

GetDetailLink

Fields

Void GetDetailDataSets(Classes::TList* List)

Во вспомогательном наборе выдает списки ключевых полей этого и головного наборов данных

GetFieldNames

VOId GetFieldNamestciasses-TStrings* LiST)

Выдает список имен всех полей набора данных

GotoBookmark

Void GotoBookmark(void * Bookmark)

Осуществляет переход на указанную закладку набора данных

Insert

Hidesbase void ι∏sert(void)

Вставляет новую пустую запись в набор данных

InsertRecord

Void InsertRecord(const System: :ТVarRec * Values, const int Values_Size)

Вставляет новую заполненную запись в набор данных

IsEmpty

Bool IsEmpty(void)

Возвращает true, если набор данных пуст, т. е. не содержит ни одной записи

Last

Void Last(void)

Перемещает курсор к последней записи

Locate

Bool Locateiconst AnsiString KeyFields,

Const SystemnVariant &KeyValues,

TLocateOptions Options)

Осуществляет поиск записи в наборе данных

Метод

Объявление / Описание

Lookup

SystemnVariant Lookup(const AnsiString KeyFields, const Variant &KeyValues, Const AnsiString ResultFields);

Осуществляет поиск записи в наборе данных и возвращает значения указанных полей этой записи

______________

MoveBv

Int MoveBy(int Distance)

Перемещает курсор на заданное число записей

Next

Void Next (void)

Перемещает курсор к следующей записи

Open

Void Open(void)

Открывает набор данных

Post

Void Post(void)

Пересылает отредактированную запись в базу данных

Prior

Void Prior(void)

Перемещает курсор к предыдущей записи

Refresh

Void Refresh(void)

Обеспечивает обновление отображаемых данных

SetFields

Void SetFields(const SystemnTVarRec * Values, const int Values_Size)

Устанавливает значения всех полей записи

Translate

Void Translate(char * Src, Char * Dest, Bool ToOem)

Взаимно преобразует строку символов ANSI (используются в VCL) и строку символов OEM (используются в BDE)

UpdateS Tatus

TUpdateStatus UpdateStatus(void)

Определяет состояние обновления текущей записи

События

Ниже приведен список основных событий, определенных в TDataSet.

Событие

Описание

AfbrCancel

Наступает после выполнения метода Cancel

AfterClose

Наступает после закрытия набора данных

AfterDelete

Наступает после удаления записи методом Delete

AfterEdit

Наступает сразу после перехода набора данных в режим ре­дактирования

AfterInsert

Наступает сразу после вставки записи в набор данных

AfterOpen

Наступает сразу после открытия набора данных

AfterPost

Наступает сразу после пересылки измененной записи в базу данных или буфер кэширования

FrfEZ

Наступает сразу после обновления отображаемых данных ме­тодом Refresh

After Scroll

Наступает сразу после пе ремещения на новую запись

BeforeCancel..

Наступает в начале выполнения метода Cancel

Событие

Описание J

BeforeClose

Наступает перед закрытием набора данных

BeforeDelete

Наступает перед удалением записи методом Delete

BeforeEdit

Наступает перед началом перехода набора данных в режим ре­дактирования

BeforeInsert

Наступает перед переходом набора данных в режим вставки записи

BeforeOpen

Наступает перед открытием набора данных

BeforePost

Наступает перед пересылкой методом Post изменений в теку­щей записи в базу данных или буфер кэширования

______________

BeforeRefresh

Наступает перед обновлением отображаемых данных методом

Refresh

I BeforeScroll

Наступает перед перемещением на новую запись

OnCalcFields

Наступает, когда требуется пересчет вычисляемых полей

OnDeleteError

Наступает, если в процессе удаления записи генерируется

Исключение

OnEditError

Наступает при генерации исключения в процессе редактиро­вания или вставки записи

______________

OnFilterRecord

Наступает каждый раз при перемещении на другую запись, если разрешена фильтрация

I OnNewRecord

Наступает при вставке в набор данных новой записи

OnPostError

Наступает при генерации исключения в процессе пересылки в базу данных измененной записи

TDateTime — класс

Тип, используемый функциями и процедурами, работающими с датами и вре­менем.

Заголовочный файл Systdate. h.

Описание

Тип TDateTime Был введен в Object Pascal как число с плавающей запятой, це­лая часть которого содержит число дней, отсчитанное от некоторого начала кален­даря, а дробная часть равна части 24-часового дня, т. е. характеризует время и не относится к дате. Для 32-разрядных версий за начало календаря принята дата 00 часов 30 декабря 1899 года. Прибавление к значению типа TDateTime Целого чис­ла D равносильно увеличению даты на D дней. Разность двух значений типа TDateTime Дает разность двух дат с точностью до долей дня.

В C++Builder тип TDateTime Реализован в виде класса. Впрочем, его можно использовать точно так же, как в Object Pascal. Но в действительности, возможно­сти класса TDateTime Шире. В частности, можно использовать конструктор, ини­циирующий переменную заданным значением TDateTime. Например, оператор

TDateTime T (Now () ) ;

Объявляет переменную Т и передает в нее текущую дату и время с помощью функ­ции Now.

В классе определен ряд операций: "+" и ” — сложение и вычитание числа

Дней, включая дробную часть дня, "++" и — прибавление и вычитание од-

Ного дня, Double — перевод в форму действительного числа, типичную для Delphi, операции отношения и ряд других.

Можно также использовать ряд полезных функций-элементов данного класса:

Функция-элемент

Объявление / Описание

CurrentDate

TDateTime CurrentDateO

Возвращает текущую дату с нулевым временем

CurrentDateTime

TDateTime CurrentDateTime()

Возвращает текущую дату и время

CurrentTime

TDateTime CurrentTimeO

Возвращает текущее время с нулевой датой

DateString

AnsiString DateStringO const

Возвращает дату объекта TDateTime В виде строки, от­форматированной в соответствии с глобальной перемен­ной ShortDateFormat

DateTimeString

AnsiString DateTimeStringO const

Возвращает дату и время объекта TDateTime В виде стро­ки. Дата форматируется в соответствии с глобальной пе­ременной ShortDateFormat. Время форматируется в со­ответствии с глобальной переменной LongTimeFormat

DayOfWeek

Int DayOfWeek() const

Возвращает день недели объекта TDateTime (1 — воскре­сенье, 7 — суббота)

DecodeDate

Void DecodeDate(unsigned short* year,

Unsigned short* month, unsigned short* day) const

Выделяет год Year, Месяц Month И день Day Из объекта TDateTime

DecodeTime

Void DecodeTime(unsigned short* hour, unsigned short* min, unsigned short* sec, unsigned short* msec) const Выделяет час Hour, Минуту Min, Секунду Sec И миллисе­кунды Msec Из объекта TDateTime

FileDate

Int FileDate() const

Возвращает объект TDateTime, Переведенный в формат дат и времени DOS

FileDateToDateTime

TDateTime FileDateToDateTimeCint fileDate)

Переводит в объект TDateTime Дату и время FileDate, За­данные в формате DOS

___________________

FormatString

AnsiString FormatStringfconst AnsiString& format) Возвращает строку объекта TDateTime, Сформированную по строке форматирования Format

TimeString

AnsiString TimeStringO const

Возвращает строку, содержащую время, записанное в объекте, отформатированное с помощью глобальной пе­ременной LongTimeFormat

Примеры

Labell->Caption = Т; // 26.05.2002 18:44:07

Label2->Caption = T-DateTimeStringO ;

Label3->Caption T-DateStringO; // 26.05.2002

Label4->Caption = T-TimeStringO; //18:44:07

Два первых оператора отобразят одно и то же: дату и время, в виде, показан­ном в комментарии к первому из них. Третий и четвертый операторы отобразят со­Ответственно дату и время, вид которых указан в комментариях.

TDBDataSet — класс компонентов наборов данных____________________________

Базовый класс компонентов наборов данных.

Иерархия TObiect TPersistent TComponent TDataSet TBDEDataSet

Модуль Dbtables.

Описание

Класс TDBDataSet Является базовым для таких компонентов наборов данных, как TTable, TQuery, TStoredProc. При разработке новых классов компонентов ба­зовым для них также целесообразно выбирать TDBDataSet. Он наследует свойства и методы своих предшественников — TDataSet И TBDEDataSet. Добавляя к ним свойства соединения с базами данных.

Свойства

Класс наследует все свойства TBDEDataSet. Добавляя к ним следующие:

1 Свойство

Объявление / Описание

AutoRefresh

Bool AutoRefresh

Определяет, обновляются ли автоматически значения полей, вычисляемые сервером

Database

TDatabase Database

Указывает компонент базы данных Database, связанный с набором данных. Свойство только для чтения

DatabaseName

AnsiString DatabaseName

Указывает имя базы данных, с которой связан набор данных

DBSession

TSession* DBSession

Связанный с набором данных компонент Session

SessionName

AnsiString SessionName

Имя компонента Session, связанного с набором данных

Методы

Класс наследует все методы TBDEDataSet. Добавляя к ним следующие:

: Метод

Объявление / Описание

——— ——— 1

CheckOnen

Bool Checkθpen(Word Status)

Проверяет, отсутствует ли ошибка при попытке доступа к данным

CloseDatabase

_____________

Void CloseDatabase(TDatabase* Database)

Закрывает базу данных

OpenDatabase

TDatabase* OpenDatabase(Void)

Открывает базу данных

События

Все события класс наследует от своих предшественников: TBDEDataSet И TDataSet.

TField — базовый класс всех объектов полей________________________

Базовый класс всех объектов полей наборов данных.

Иерархия ТОЫеCt TPersistenι — TConiooneni Модуль Db.

Описание

Класс TField Описывает свойства, методы, события общие для всех объектов полей наборов данных:

• Изменение значений полей

• Взаимные преобразования значений полей различных типов

• Ограничения вводимых значений полей

• Отображение данных полей

• Расчет значений вычисляемых полей в обработчике события OnCalcFields • Поля просмотра

Объекты типа TField Не используются. Реально генерируются объекты много­численных потомков класса TField:

tadtfield
taggregatefield
tarrayfield
tautoincfield
tbcdfield
tblobfield
tbooleanfield
tbytesfield
tcurrencyfield
treferencefield
tsmallintfield
tstringfield
ttimefield
tvarbytesfield
tvariantfield
twidestringfield
twordfield
TDateField

TDateTimeField

TFloatField

TGraphicField

TGuidField

TIDispatchField

TIntegerField

TLargeIntField

TMemoField

Кроме того, имеется ряд абстрактных классов — наследников TField: TBina — ryField, TDataSetField, TInterfaceField, TNumericField, TObjectField.

Свойства

Свойство

Объявление / Описание

Alignment

ClassescTAlignment Alignment

Определяет выравнивание значений полей при их отображении в компонентах, связанных с данными (только taLeftJustify,

TaRightJustify, TaCenter)

AsBoolean

Bool AsBoolean

Переводит тип любого поля в булево значение при чтении зна­чения поля и осуществляет обратный перевод булева значения в тип поля при записи

AsCurrencv

SystemaCurreney AsCurrency

Переводит тип любого поля в Currency при чтении значения поля и осуществляет обратный перевод значения Currency в тип поля при записи

‘ AsDateTime

System:: TDateT ime As DateTime

Переводит тип любого поля в TDateTime при чтении значения поля и осуществляет обратный перевод значения TDateTime в тип поля при записи

Свойство

— ■ -= — ■■ — s ■

Объявление / Описание

AsFloat

Double AsFloat

Переводит тип любого поля в действительное число при чтении значения поля и осуществляет обратный перевод действитель­ного числа в тип поля при записи

Aslnteger

Int AsInteger

Переводит тип любого поля в целое при чтении значения поля и осуществляет обратный перевод целого значения в тип поля при записи

AsString

AnsiString AsString

Переводит тип любого поля в строку при чтении значения поля и осуществляет обратный перевод строки в тип поля при запи­си значения поля

AsVariant

System:: V ariant AsVariant

Переводит тип любого поля в Variant при чтении значения поля и осуществляет обратный перевод значения Variant в тип

Поля при записи

AttributeSet

AnsiString AttributeSet

Имя множества атрибутов словаря данных, применяемого

К данному полю

AutoGenerate

Value

Enum TAutoRefreshFlag {arNone, АгAutoInc, arDefault}; TAutoRefreshFlag AutoGenerateValue

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

Calculated

Bool Calculated

Определяет, является ли поле вычисляемым в обработчике со­бытия OnCalcFields

CanModifv

Bool CanModify

Определяет, может ли данное поле модифицироваться

: Constraint ErrorMessage

AnsiString ConstraintErrorMessage

Определяет строку сообщения появляющуюся при вводе поль­зователем значения, нарушающего ограничение, установленное сервером или свойством CustomConstraint

CurValue

SystemuVariant CurValue

Текущее значение поля с учетом изменений, внесенных други­ми пользователями

Custom

Constraint

AnsiString CustomConstraint

Строка SQL, Накладывающая ограничение на вводимое пользо­Вателем значение поля

DataSet

TDataSet* DataSet

Набор данных TDataSet, к которому относится объект поля. Значение DataSet устанавливается автоматически и не должно задаваться явно

DataSize

_____________

Int DataSize

Размер в байтах, необходимый для хранения значения поля.

Только для чтения

Свойство

Объявление / Описание

DataType

TFieldType DataTvpe:

Определяет тип TFieldType Данных, хранящихся в поле

Default

Expression

AnsiString DefaultExpression

Выражение SQL, которое присваивает значение поля, если поль­зователь не задал никакого значения

DisplavLabel

AnsiString DisplayLabel

Строка, отображаемая как заголовок столбца в таблице данных

DisplavName

AnsiString DisplavName

Строка, отображаемая как заголовок столбца в таблице дан­ных. Только для чтения

DispIavText

AnsiString DisplavText

Строка, отображающая значение поля в компонентах, связан­ных с данными. Только для чтения

DispIayWidtli

Int DisplayWidth

Число символов, которые отображаются в компоненте, связан­ном с данными

EditMask

Typedef AnsiString TEditMask;

TEditMask EditMask

Маска, используемая для ввода данных

EditMaskPtr

Typedef AnsiString TEditMask;

TEditMask EditMaskPtr

Маска, используемая для ввода данных. Только для чтения

FieldKind

Enum TFieldKind {fkData, FkCalculated, FkLookup, fkInternalCalc, HcAggregate };

TFieldKind FieldKind

Указывает, является ли поле обычным полем базы данных, или вычисляемым полем, полем просмотра, вычисляемым и хранимым в базе данных, полем совокупной характеристики

FieldName

AnsiString FieldName

Имя поля набора данных

FieldNo

Int FieldNo

Порядковый номер поля в таблице базы данных. Номера начи­наются с 1. Могут не совпадать с индексом в массиве Fields на­бора данных. Свойство используется только при прямом обра­щении к API Borland Database Engine

FullName

AnsiString FullName

Полное имя с перечислением имен родительских полей (если они имеются). Только для чтения

Has

Constraints

Bool HasConstraints

Указывает, имеются ли ограничения на вводимые значения поля. Только для чтения

Imported

Constraint

AnsiString ImportedConstraint

Строка SQL, накладывающая ограничение со стороны сервера на значение поля

Свойство

Объявление / Описание

Index

Int Index

Индекс объекта поля в свойстве Fields набора данных

IsIndexField

Bool IsIndexField

Указывает, является ли поле полем индекса. Только для чтения

IsNull

Bool IsNull

Указывает, отсутствует ли у поля значение (при true), или ка­кое-то значение присвоено. Только для чтения

KeyFields

AnsiString KeyFields

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

Lookup

Bool Lookup

Указывает, является ли данное поле полем просмотра

LookupCache

Bool LookupCache

Определяет должны ли значения поля просмотра кэшировать­ся, или просмотр должен осуществляться при каждом измене­нии текущей записи

LookupData

Set

TDataSet* LookupDataSet

Набор данных, который просматривается при определении зна­чения поля просмотра

LookupKev

Fields

AnsiString LookupKeyFields

Строка, содержащая список ключевых полей набора данных LookupDataSet, используемый в поле просмотра

LookupList

TLookupList* LookupList

Кэш значений набора данных LookupDataSet, индексирован­ных множеством полей KeyFields. Только для чтения

LookupResult

Field

AnsiString LookupResultField

Поле набора данных LookupDataSet, значение которого пере­носится в поле просмотра

NewValue

SystemuVariant NewValue

Текущее (новое) значение поля

Offset

Int Offset

Число байтов, добавляемых в конец текущей записи в буфер кэширования TClientDataSet для размещения вычисляемых полей и полей BLOB

OldValue

SystemuVariant OldValue

Прежнее (до редактирования) значение поля. Только для чтения

Origin

AnsiString Origin

Имя поля в наборе данных, включая имена базы данных и таб­лицы

ParentField

TObjectField ParentField

Объект родительского поля для данного дочернего поля (в OracleS или ADT)

Свойство

Объявление / Описание I

ProviderFlags

Enum TProviderFlag { PflnUpdate, pfln Where, pfħιKey, pf Hidden };

Typedef SeKTProviderFlag, PflnUpdate, PfHidden>

TProviderFlags;

TProviderFlags ProviderFlags

Флаги, определяющие работу провайдера при обновлении данных

; ReadOnlv

Bool Readonly

Указывает, является ли значение поля значением только для чтения

Required

Bool Required

Указывает, должно ли это поле обязательно иметь значение, или оно может оставаться пустым

Size.

Int Size

Размер, определенный в описании поля базы данных, для ти­пов полей, поддерживающих различные размеры

Text

AnsiString Text

Строка, отображающая значение поля в компонентах, связан­ных с данными, в режиме редактирования

ValidChars

Typedef Set<char, 0, 255> TFieldQhars;

TFieldChars ValidChars

Определяет символы, которые могут использоваться при редак­тировании значения поля

Value

System:: Variant Value

Значение поля

Visible

Bool Visible

Определяет видимость поля в таблицах данных TDBGrid

Методы

Ниже приведен список основных методов, определенных в TField И используе­мых в приложениях явным образом.

Метод

Объявление / Описание

Assign

Void Assign(Classes: :TPersistent* Source)

Копирует в свойство Value значение другого поля или другого объекта

I AssignValue

Void AssignValue(const System: :Т VarRec &Value)

Задает значение поля, используя свойства AsInteger, AsBoolean, AsString, AsFloat. В основном для Внутрен — ɪ него использования

Clear

Void Clear(void)

Устанавливает значение поля в NULL (очищает его)

FocusControl

Void FocusControl(void)

Переключает фокус на первый из компонентов, отобража­ющих данное поле. Позволяет обратить внимание пользо­вателя на значение поля

Метод

Объявление / Описание

GetData

Bool GetData(void * Buffer, Bool NativeFormat = true) Возвращает неформатированное («сырое») значение поля

GetParentComponent

Classes::TComponent* GetParentComponent(Void)

Возвращает компонент, управляющий загрузкой и со­хранением поля: для дочернего поля — родительский объект поля, для остальных — набор данных

HasParent

Bool HasParent(Void)

Указывает, является ли поле составной частью структу­ры другого поля (имеет ли оно родительское поле)

IsBlob

Bool IsBlob() { IsBlob(____ Classid(TField)))

Определяет, является ли объект полем типа BLOB (bina­ry large object)

IsValidChar

Bool IsValidChar(char InputChar)

Проверяет, является ли указанный символ допустимым для данного поля

RefreshLookupList

Void RefreshLookupList(Void)

Обновляет кэш LookupList

SetData

Void SetData(void * Buffer, bool NativeFormat = true) Присваивает полю неформатированные данные

I SetFieldType

Void SetFieldType(TFieldType Value)

Устанавливает интерфейс для методов, задающих тип поля. Используется в классах, производных от TField и работающих с различными типами данных

Validate

Void Validate(void * Buffer)

Генерирует событие On Validate. Обычно вызывается ав­томатически при занесении в запись новых данных

События

Р——————-

Событие

Описание i

OnChange

Наступает после занесения данных в буфер записи

OnGetText

Наступает при обращении к свойствам DisplayText или Text

! OnSetText

Событие наступает при задании свойству Text нового значения

J OnValidate

Событие наступает перед занесением данных в буфер записи

TFieldDef — класс описания поля

Класс описания поля таблицы.

Иерархия TObiect TPersistent TCollection TNamedItem

Модуль Db.

Описание

Класс TFieldDef Содержит описание поля таблицы базы данных, включающее такие атрибуты, как имя поля, тип данных и размер. Используется в собрании по­лей — свойстве FieldDefs Класса TDataSet.

Описание автоматически генерируется для каждого поля существующей таб­лицы набора данных. Через объект TFieldIlef Можно получить информацию о по­лях, даже не открывая таблицу. При создании новой таблицы методом ТТаЫе. Сге — AteTable TFieldDef Используется для задания атрибутов полей таблицы.

Каждое описание соответствует объекту TField. Но не все объекты TField Име­ют соответствующие им объекты описаний TFieldDef. Например, вычисляемые поля не имеют описаний.

Свойства

Свойство

Объявление / Описание

Attributes

TFieldAttributes Attributes

Атрибуты поля

ChildDefs

TFieldDefs* ChildDefs

Объект, содержащий массив дочерних полей 1

Collection

TCollection* Collection

Указывает собрание FieldDefs класса TDataSet. к которому от — , носится данное описание поля

DataType

TFieIdType DataTvpe

Определяет тип данных, хранящихся в поле

DisplayName

AnsiString DisplayName

Имя, появляющееся в Редакторе Полей во время проектирова­ния

FieldClass

Typedef TMetaClass*TFieldClass;

SysteninTMetaClass* FieldClass

Класс объекта поля, соответствующий описанию TFieldDef; Толь­ко для чтения

FieldNo

Int FieldNo

Порядковый номер поля в таблице (начинается с 1)

ID

Int ID

Идентификатор поля в собрании FieldDefs. Только для чтения

InternalCalc

Field

Bool InternalCalcField

Определяет, является ли поле вычисляемым в источнике дан­ных; только для чтения

Name

AnsiString Name

Имя поля

Precision

Int Precision

Число разрядов, определяющее точность поля BCD

Required

Bool Required

Указывает, обязательно ли должно быть задано значение дан­ного поля

Size

Int Size

Размер поля

Методы

Ниже приведен список основных методов, определенных в TFicldIief

Метод

Объявление / Описание

AddChild

TFieldDef* AddChild(void)

Добавляет новый элемент в массив ChildDefs

Assign

Void Assign(Classes::TPersistent* Source)

Копирует свойства одного описания поля в другое

CreateField

TField* CreateFieldtClassesaTComponent* Owner,

TObjectField* ParentField = NULL, const AnsiString FieldName = bool CreateChildren = true)

Создает объект TField по данному описанию

HasChildDefs

Bool HasChildDefs(Void)

Определяет, имеет ли объект дочерние описания

TFieldDefs — класс собрания описаний полей

Класс собрания описаний полей набора данных.

Иерархия TObiectTPersistentTCollection TOwnedColleCtion

TDefCollection

Модуль Db.

Описание

Класс TFieldDefs Является косвенным наследником базового класса собраний (коллекций) объектов TCollection И характеризует собрание описаний полей TFieldDef. В объектах TTabIe И TClientDataSet Используется также при создании новых таблиц.

Объекты TFieldDefs Типов TADTField и TArrayField Имеют свои объекты того же типа TFieldDefs Для собраний дочерних полей. В этих случаях создается иерар­хия объектов TFieldDef В отличие от списка TFieldDefList, в котором объекты до­черних описаний TFieldDef Перечисляются последовательно после родительского описания.

Свойства и методы TFieldDefs Позволяют:

• Получить доступ к описанию любого поля

• Добавлять или удалять описания полей из списка при создании новых таблиц

• Определить количество описаний полей

• Копировать множество описаний полей из одной таблицы в другую

В собрание описаний полей TFieldDefs Входят все поля таблицы, кроме клю­чевых.

Свойства

Свойство

Объявление / Описание

Count

Int Count

Число описаний в массиве Items. Только для чтения

Dataset

TDataSet* Dataset

Указывает объект TDataSet. к которому относится данный TFi — eldDefs. Только для чтения

I Свойство

Объявление / Описание I

HiddenFields

Bool HiddenFields

Определяет, будут ли видны в «живом» наборе данных вспомо­гательные невидимые поля. Свойство в основном для внутрен­него использования

ItemClass

Class PACKAGE TMetaClass;

Typedef TMetaClass* TClass;

System::TMetaClass* ItemClass

Класс объектов описаний полей в Items. Только для чтения

Items

TFieldDef* Items [int Indexl

Индексированный список описаний полей

ParentDef

TFieldDef* ParentDef

Ссылка в описании дочернего поля на описание родительского поля (типов TADTFieId Или Т Array Field). Только для чтения

Updated

_____________

Bool Updated

Указывает, соответствуют ли описания в массиве Items реаль­ным экземплярам набора данных

■ ■ ■ IW — —. — I. — — . ■ ■ ,J

Методы

Ниже приведен список основных методов, определенных в TFieldDefs И ис­пользуемых в приложениях явным образом.

Метод

Объявление / Описание

Add

HIDESBASE void Add(const AnsiString Name,

TFieldType DataType, int Size = 0, bool Required = false)

Создает новый объект описания поля и добавляет его в свойст­во Items Объекта TFieldDefs. Вместо этого метода рекомендует­ся AddFieldDef

AddFieldDef

TFieldDef* AddFieldDef(Void)

Создает новый объект описания поля и добавляет его в свойст­во Items Объекта TFieldDefs

Assign

Void AssigntTPersistent* Source)

Копирует одно описание поля в другое

Clear

Void Clear(void)

Очищает массив Items, Уничтожая все содержавшиеся в нем объекты типа TCoIlectionltem

Delete

Void Delete(int Index);

Удаляет объект с индексом Index Из Items

Find

HIDESBASE TFieldDef* Find(const AnsiString Name)

Ищет в Items Описание поля по его имени Name

GetItemNames

Void GetltemNamestciassesHTStrings* List)

Возвращает имена всех описаний полей

I Метод

Объявление / Описание

IndexOf

Int IndexOfjconst AnsiString AName)

Определяет индекс описания поля в массиве Items по его Име­Ни AName

I Insert

TcollectionItem* Insertjint Index)

Создает новый объект TCollectionltem и вставляет его в массив Items

Update

HIDESBASE void Updatejvoid)

Обновляет описания в массиве Items, чтобы они отражали реаль­ные свойства полей

TFields — класс списков объектов полей

Класс совокупности объектов полей набора данных.

Иерархия TObiect

Модуль System.

Описание

Класс TFields Используется для описания совокупности объектов полей набо­ров данных TDataSet. включая иерархические структуры с дочерними полями.

Если значение TDataSet-ObjectView Равно True, То поля хранятся в TFields Иерархически: родительское поле ссылается на дочерние поля. Если значение TDataSet-ObjectView Равно False, То поля хранятся в TFields «плоско», т. е. дочер­ние поля хранятся после родительского поля.

Свойства и методы TFields Позволяют:

• Получить доступ к определенному полю ■ Добавлять и удалять поля списка

• Определять число полей в списке

Свойства

I Свойство

Объявление / Описание

Count

Int Count

Число объектов полей в свойстве Fields. Только для чтения

1 DataSet

TDataSet* DataSet

Набор данных, с которым связан объект TFields. Только для чте­ния

Fields

TField* Fields[int Index]

Список ссылок на поля

Методы

Ниже приведен список основных методов, определенных в TFields И исполь­зуемых в приложениях явным образом.

Метод

Объявление / Описание

Add

Void AddjTField* Field)

Добавляет поле в список

, Метод

Объявление / Описание

CheckFieldName

Г

Void CheckFieldName(const AnsiString FieldName)

Проверяет наличие в списке поля с именем FieldName.

Если такое поле уже есть, генерируется исключение EData — baseError

CheckFieldNames

Void CheckFieldNamestconst AnsiString FieldNames)

Проверяет наличие в списке полей, перечисленных в Field­Names с разделителями в виде точек с запятой. Если хоть одного поля нет, генерируется исключение EDatabaseError

FieldBvName

TField* FieldByName(const AnsiString FieldName)

Дает доступ к полю по его имени FieldName. Если поля с за­данным именем не обнаружено, генерируется исключение

FieldByNumber

TField* FieldByNumber(int FieldNo)

Дает доступ к полю по его индексу FieldNo в Fields, если порядковый номер поля известен

FindField

TField* FindField (const AnsiString FieldName)

Обеспечивает доступ к полю по его имени FieldName

GetFieldNames

Void GetFieldNamestciassesaTStrings* List)

Возвращает список имен всех полей объекта TFields

I IndexOf

Int IndexOftTField* Field)

Возвращает номер индекса объекта Field в списке TFields

Remove

Void RemovetTField* Field)

Удаляет из списка поле Field

TFieldType — тип _______________________________

Определяет тип данных, хранящихся в поле.

Модуль DB.

Определение

Enum TFieldType {ftUnknown, ftString, ftSmallint, ftlnteger,

FtWord, ftBoolean, ftFloat, ftCurrency, ftBCD, ftDate, ftTime, ftDateTimeJfttBytes, ftVarBytes, ftAutoInc, ftBlob, ftMerno, ftGraphic, ftFmtMemo, ftParadox01e,

FtDBaseOle, ftTypedBinary, ftCursor, ftFixedChar, ftWideString, ftLargeint, ftADT, ftArray, ftReference, ftDataSet, ftOraBlob, ftOraClob, ftVariant, ftlnterface,

FtIDispatch, ftGuid, ftTimeStamp, ftFMTBcd};

Описание

Тип TFieldType Используется во многих классах: TField. TFieldDef. TParam, TParameter, T Aggregate, А также во многих методах. Возможные значения TFieldType:

FtUnknown

Неизвестный, неопределенный тип

FtString

Символ или строка

FtSmallint

Целое размером в 16 бит

Ftlnteger

Целое размером в 32 бита

Ft Word

Целое без знака размером в 16 бит

FtBoolean

Булево значение

FtFIoat

Число с плавающей запятой

FtCurrency

Денежная сумма

FtBCD

Десятичное число в двоичной кодировке

FtDate

Дата

FtTime

Время

FtDateTime

Дата и время

FtBytes

Двоичное представление с фиксированным числом байтов

FtVarBytes

Двоичное представление с переменным числом байтов

FtAutoInc

Автоматически нарастающее целое размером в 32 бита

FtBlob

Большой двоичный объект (Binary Large Object)

FtMemo

Большой текст

! ftGraphic

Изображение в виде битовой матрицы

! ftFmtMemo

Большой форматированный текст

FtParadoxOIe

Объект OLE Paradox

FtDBaseOle

Объект OLE dBASE

FtTypedBinary

Типизированное двоичное значение

FtCursor

Выходной курсор хранимой процедуры Oracle (применяется только в ТРагат)

I ftFixedChar

Фиксированные символы

Ft WideString

Строка типа Wide string

IIftLargelnt

Большое целое

FtADT

Абстрактный тип даты (Abstract Data Type)

FtArray

Массив

FtReference

Ссылка REF

FtDataSet

Набор данных DataSet

FtOraBlob

Поля BLOB в таблицах Oracle 8

FtOraClob

Поля CLOB в таблицах Oracle 8

FtVariant

Данные типа Variant — неизвестные или неопределенные

J ftlnterface

Ссылка на интерфейс !Unknown

I ftIDispatch

Ссылка на интерфейс IDispatch

FtGuid

Глобальный уникальный идентификатор GUID

FtTimeStamp

Поля даты и времени в dbExpress

FtFMTBcd

Двоично-кодированное десятичное число, слишком большое

Для ftBCD

TFont — класс объекта шрифта

Определяет характеристики шрифта.

Иерархия TObiect TPersistent — TGraphicsObject

Модуль Graphics.

Описание

Объект типа TFont Определяет множество характеристик, описывающих шрифт, используемый при отображении текстов: высоту шрифта, его имя, атрибу­ты (полужирный, курсив) и т. д. Используется в свойстве Font.

Свойства

Свойство

Объявление / Описание

Charset

Typedef Byte TFontCharset;

TFontCharset Charset

Определяет набор символов шрифта

Color

TColor Color

Определяет цвет текста

FontAdapter

_di_IChangeNotifier FontAdapter

Интерфейс для передачи информации о шрифте в элементы ActiveX1

Handle

HFONT Handle

Дескриптор шрифта, используемый как параметр функций

API Windows, требующих обработки шрифтов. Применяется только в специальных случаях

Height

Int Height

Характеризует высоту шрифта в пикселах

Name

AnsiString Name

Вид (имя) шрифта

Pitch

Enuɪn TFontPitch { fpDefault, fpVariable, fpFixed }; TFontPitch Pitch

Определяет способ установки ширины символов: по умолчанию (зависит от шрифта), с изменяемой или фиксированной шириной

PixelsPerInch

Int PixelsPerlnch

Число пикселов принтера или экрана на дюйм. Используется при копировании шрифта с канвы формы на принтер, чтобы обеспечить сортветствие размеров шрифта на экране и принтере. Влияет только на печать. Изменяться пользователем не должно

Size

Int Size

Размер шрифта в кеглях (пунктах)

Style

Enum TFontStyle { fsBold, fsltalic, fsUnderline, fsStrikeOut }; typedef Set<TFontStyle, fsBold, fsStrikeOut> TFontStyles; TFontStyles Style

Стиль шрифта: полужирный, курсив, подчеркнутый, перечер­кнутый_________________ _____________________________

Если система не может найти шрифта с заданной комбинацией свойств Name, CharSet, Pitch И Size, Windows использует другой шрифт.

Методы

TFont Имеет методы, унаследованные от базовых классов, но переопределен­ные с учетом особенностей данного класса. Среди них можно отметить два:

Assign

Void AssimfciassesnTPersistent* Source)

Копирование свойств одного объекта типа TFont В другой объ­ект. Свойство PixelsPerInch Методом Assign не копируется. Поэтому метод можно использовать для копирования экран­ных шрифтов в шрифты принтера и наоборот

TFont

TFont(void)

Конструктор выделяет память и инициализирует свойства объекта TFont. Свойство Color Устанавливается равным ClWindowText. Устанавливает свойство PixelsPerlnch, Исходя из разрешения экрана

События

TFont Наследует событие OnChange От базового класса TGraphicsObject

TGraphic — базовый класс графических объектов___________________

Абстрактный базовый класс графических объектов типа битовых матриц, пиктограмм, метафайлов и типов, определенных пользователем.

Иерархия TObiect — TPersistenL

Модуль Graphics.

Описание

Класс TGraphic Обеспечивает производные от него классы методами хранения, манипулирования и визуализации графических объектов, методами работы с объ­ектами типа TPicture И с буфером обмена Clipboard. Свойства класса TGraphic Дают информацию о состоянии и размерах изображения.

Когда тип графики, с которой ведется работа, известен: битовая матрица, пик­тограмма или метафайл, можно использовать объекты производных от TGraphic Классов TBitmap. TIcon Или TMetafTle соответственно. Если формат графики неиз­вестен, то можно использовать класс TPicture, Способный работать с графически­ми объектами любых типов, производных от TGraphic.

Свойства

Ниже приведен список свойств, определенных в TGraphic.

Свойство

Объявление / Описание

Empty

Bool Empty

Указывает, содержит ли объект изображение. Свойство толь­ко для чтения

Height

Int Height

Указывает высоту изображения в пикселах. Для битовых мат­риц может изменяться пользователем, что вызывает создание копии матрицы с указанным размером

Modified

Bool Modified

Указывает, был ли изменен графический объект. Может при­нимать значение true (изменен) только для битовых матриц. Для пиктограмм и метафайлов всегда равно false, даже если изменения были

Свойство

Объявление / Описание

Palette

Hpalette Palette

Управляет цветами графического изображения. Если изобра­жение не нуждается или не имеет палитры, то Palette = 0

PaletteModified

Bool PaletteModified

Указывает, была ли изменена палитра графического объекта. Используется в обработчиках событий OnChange

Transparent

Bool Transparent

Указывает, является ли изображение прозрачным. Использу­ется только для битовых матриц

Width

Int Width

Указывает ширину изображения в пикселах. Для битовых матриц может изменяться пользователем, что вызывает созда­

_______________

Ние копии матрицы с указанным размером

Методы

Ниже приведены основные методы, объявленные или переопределенные в классе TGraphic.

Метод

Объявление / Описание

LoadFrom

ClipboardFormat

Void LoadFromClipboardFormat(Word AFormat, int AData, Hpalette APalette)

Читает изображение из буфера обмена Clipboard В заданном формате

LoadFromFile

Void LoadFromFile(const AnsiString FileName)

Читает изображение из файла FileName

LoadF romStream

Void LoadFromStream(Classes::TStream* Stream)

Читает графическое изображение из потока Stream

SaveToClipboard

Format

Void SaveToClipboardFormat(Word &AFormat, int &AData, Hpalette &APalette)

Сохраняет изображение в буфере обмена Clipboard В задан­ном формате

SaveToFile

Void SaveToFile(const AnsiString Filename)

Сохраняет изображение в файле FileName

! SaveToStream

Void SaveToStream(Classes"TStream* Stream)

Записывает изображение в поток Stream

Кроме того, наследуется много методов, в частности, Assign, Free И другие. События

Событие

Описание

I

OnChange

Событие при изменении графического объекта

OnProgress

События происходят при медленных процессах изменения графического изображения и позволяют построить индика­тор хода процесса ________ J

TIcon — класс_______________________________

Инкапсулирует пиктограмму Windows.

Иерархия TObiect TPersistentTGraphics

Модуль Graphics.

Описание

Класс TIcon Инкапсулирует пиктограмму Windows. Свойства кла’сса TIcon Имеют такие объекты, как TForm и TPieture.

Пиктограмма соответствует формату файлов Дсо Windows. Рисовать пикто­граммы на канве можно методом канвы Draw, Но метод StretchDraw К ним не при­меним, поскольку пиктограммы не могут изменять своих размеров.

Свойства

Ниже приведен список свойств, определенных или переопределенных в TIcon.

; Свойство

Объявление / Описание

Empty

Bool Empty

Указывает, содержит ли объект пиктограмму. Свойство только

Для чтения

Handle

HICON Handle

Обеспечивает доступ к обработке пиктограмм в GDI Windows. Используется при вызовах функций API Windows

Height

Int Height

Указывает высоту изображения в пикселах. Размеры всех пик­тограмм в приложении одинаковы и задаются установками Win­dows. Попытка изменить Height ведет к генерации исключения

Transparent

Bool Transparent

Указывает, является ли изображение прозрачным. Может испо­льзоваться только для чтения. Попытка изменить Transparent ведет к генерации исключения

Width

Int Width

Указывает ширину изображения в пикселах. Размеры всех пик­тограмм в приложении одинаковы и задаются установками Win­dows. Попытка изменить Width ведет к генерации исключения

Наследуются также свойства Modified, Palette, PaletteModified.

Методы

Ниже приведены основные методы, объявленные или переопределенные в клас­се TIcon.

Метод

Объявление / Описание

Assign

Void Assign(Classes::TPersistent* Source)

Копирует изображение из другого графического объекта, в частности, из буфера обмена Clipboard

LoadFrom

ClipboardFormat

Void LoadFromClipboardFormat(Word AFormat,

Unsigned AData, HPALEtTe APalette)

Читает изображение из буфера обмена Clipboard в заданном формате

Метод

Объявление / Описание

LoadFromStream

Void LoadFromStream(Classes::TStream* Stream)

Читает графическое изображение из потока Stream

ReleaseHandle

HICON ReleaseHandle(VOid)

Возвращает дескриптор типа HIcon И устанавливает деск­риптор объекта TIcon В NULL

‘ SaveToClipboar-

DFormat

Void SaveTociipboardFormatCWord &Format, Unsigned &Data, Hpalette &APalette)

Сохраняет изображение в буфере обмена Clipboard в задан­ном формате

SaveToStream

Void SaveToStream(Classes::TStream* Stream)

Записывает изображение в поток

Кроме того, наследуются методы LoadFromFile, SaveToFile И ряд других. События

Событие

Описание

OnChange

Событие при изменении графического объекта

I OnProgress

События происходят при медленных процессах изменения графи­ческого изображения и позволяют построить индикатор хода про­цесса

TimeSeparator — переменная_____________________________________

Определяет символ разделителя, используемого в формате отображения вре­мени.

Модуль SysUtils. hpp.

Определение

Extern PACKAGE Char TimeSeparator;

Описание

Глобальная переменная TimeSeparator Определяет символ разделителя, ис­пользуемого в формате отображения дат LongTImeFormat и в ряде других форма­тов. По умолчанию в русифицированных версиях Windows это символ двоеточия. Но вы можете программно задать другой символ разделителя.

Примеры

Оператор

Editl->Text = Time О;

Отобразит в окне Editl Текущее время в виде: "16:05:02". Если вы предварительно выполните оператор

TimeSeparator =

Изменяющий значение TimeSeparator, то приведенный выше оператор вывода в окно Editl Отобразит дату в формате "16-05-02", т. е. сработает заданный вами разделитель

Иерархия TObiezt TCustomIniFile

Модуль Inifiles.

Описание

Файлы. INI — это текстовые файлы, предназначенные для хранения информа­ции о настройках различных приложений. Информация логически группируется в разделы, каждый из которых начинается оператором заголовка, заключенным в квадратные скобки. Например, [Desktop]. В строках, следующих за заголовком, содержится информация, относящаяся к данному разделу, в форме:

<ключ>*=<значение>

<keyname>=<value>

В Windows 95 и NT использование файлов JNI не поощряется и вместо типа TIniFile, инкапсулирующего свойства этих файлов, используются типы TRe — gistry, TRegIniFile И TRegistryIniFile, Инкапсулирующие свойства системного реестра. Однако большинство программ, в частности, разработанных в Microsoft, и, в частности, Windows, по-прежнему используют файлы TNI для хранения ин­формации о настройке.

Когда в приложении создается операцией New Объект типа TIniFile, Ему пере­дается как FileName Имя файла, с которым он будет связан. Например:

#include "inifiles. hpp";

TIniFile *Ini = new TIniFileCMY-INI»);

Свойства и методы TIniFile Позволяют читать из файла .INI, Записывать в него информацию, удалять целые разделы.

Подробно работа с файлами .INI описана в [1] и [2].

Свойства

Ниже указано единственное свойство класса TIniFile.

Свойство

Объявление / Описание

FileName

AnsiString FileName

Файл .INI, с которым связан объект

I

Методы

Ниже приведен список основных методов, определенных в TIniFile.

Метод

Объявление / Описание

DeleteKey

Void DeleteKey(const AnsiString Section, const AnsiString Ident) Удаляет значение ключа Ident в разделе Section

EraseSection

Void Erase Section(const AnsiString Section)

Удаляет раздел Section со всеми его ключами

ReadBinary

Stream

Int ReadBinaryStreaιn(const AnsiString Section,

Const AnsiString Name, TStream Value)

Читает в текущую позицию потока Value значение ключа Name раздела Section, являющееся последовательностью шестнадцате­ричных символов (не более 1023 символов). Возвращает число занесенных в поток символов

Метод

Объявление / Описание

ReadBool

____________

Bool ReadBool(const AnsiString Section, const AnsiString Ident, bool Default)

Возвращает булево значение ключа Ident Раздела Section. Defa­ult — значение по умолчанию, возвращаемое, если не нашлось раздела, ключа или значения

ReadDate

SystemnTDateTime ReadDate(const AnsiString Section, const AnsiString Name, SystemnTDateTime Default);

Возвращает значение даты типа TDateTime Ключа Ident Раздела Section. Default — значение по умолчанию, возвращаемое, если не нашлось раздела, ключа или значения

ReadDate

Time

SystemnTDateTime ReadDateTime(const AnsiString Section,

Const AnsiString Name, SystemnTDateTime Default)

Возвращает значение даты и времени типа TDateTime Ключа Ident Раздела Section. Default — значение по умолчанию, воз­вращаемое, если не нашлось раздела, ключа или значения

ReadFloat

Double ReadFloat(const AnsiString Section,

Onst AnsiString Name, double Default)

Возвращает действительное значение ключа Ident Раздела Secti­on. Default — значение по умолчанию, возвращаемое, если не нашлось раздела, ключа или значения

ReadInteger

Int ReadIntegerCconst AnsiString Section,

Const AnsiString Ident, int Default)

Возвращает целое значение ключа Ident Раздела Section. Defa­ult — значение по умолчанию, возвращаемое, если не нашлось раздела, ключа или значения

ReadSection

Void ReadSection(const AnsiString Section,

ClassesnTStrings* Strings)

Читает в Strings типа TStrings Имена всех ключей раздела Section

ReadSections

Void ReadSectionsCClassesnTStrings* Strings)

Читает В Strings Типа TStrings Имена всех разделов файла

ReadSection

Values

Void ReadSectionValues(const AnsiString Section, ClassesnTStrings* Strings)

Читает в Strings типа TStrings значения всех ключей раздела

Section

ReadString

AnsiString ReadStringCconst AnsiString Section,

Const AnsiString Ident, const AnsiString Default)

Возвращает строку значения ключа Ident Раздела Section. Defa­ult — значение по умолчанию, возвращаемое, если не нашлось раздела, ключа или значения

ReadTime

SystemnTDateTime ReadTime(const AnsiString Section,

Const AnsiString Name, SystemnTDateTime Default)

Возвращает значение времени типа TDateTime Ключа Ident Раз­дела Section. Default — значение по умолчанию, возвращаемое, если не нашлось раздела, ключа или значения

Метод

Объявление / Описание

SectionExists

Bool SectionExists(const AnsiString Section)

Возвращает True, Если в файле существует раздел Section

UpdateFile

Void UpdateFile(Void)

Очищает буфер и записывает файл на диск. Действует только на Windows 95 И 98, Т. к. Windows NT Не использует буфер

ValueExists

Bool ValueExists(const AnsiString Section, const AnsiString Ident)

Возвращает True, Если в файле существует ключ Ident В разделе Section

WriteBinary

Stream

Void WriteBinaryStream (const AnsiString Section,

Const AnsiString Name, TStream Value)

Записывает из потока Value Двоичные данные в ключ Name Раздела Section В виде последовательности шестнадцатеричных символов

WriteBool

Void WriteBool(const AnsiString Section, const AnsiString Ident, bool Value)

Записывает булево значение Value В строку ключа Ident Разде­ла Section. Если нужной строки или раздела нет, они создаются

WriteDate

Void WriteDate(const AnsiString Section,

Const AnsiString Name, System: :TDateTime Value)

Записывает значение даты Value Типа TDateTime В строку клю­ча Ident Раздела Section. Если нужной строки или раздела нет, они создаются

WriteDate

Time

Void WriteDateTime(const AnsiString Section,

Const AnsiString Name, System-TDateTime Value)

Записывает значение даты и времени Value Типа TDateTime В строку ключа Ident Раздела Section. Если нужной строки или раздела нет, они создаются

WriteFloat

Void WriteFloat(const AnsiString Section,

Const AnsiString Name, double Value)

Записывает действительное значение Value В строку ключа

Ident Раздела Section. Если нужной строки или раздела нет, они создаются

WriteInteger

Void Writelnteger(const AnsiString Section,

Const AnsiString Ident, int Value)

Записывает целое значение Value В строку ключа Ident Раздела Section. Если нужной строки или раздела нет, они создаются

WriteString

Void WriteString(const AnsiString Section,

Const AnsiString Ident, const AnsiString Value)

Записывает значение Value В строку ключа Ident Раздела Secti­on. Если нужной строки или раздела нет, они создаются

WriteTime

Void WriteTime(const AnsiString Section,

Const AnsiString Name, Svstem-TDateTime Value)

Записывает значение времени Value Типа TDateTime В строку ключа Ident Раздела Section. Если нужной строки или раздела нет, они создаются

События

Никаких событий в классе TIniFile Не определено.

Примеры

Следующие операторы создают объект Ini Типа TIniFile И связывают его с файлом My. ini (предполагается, что файл расположен в каталоге Windows, так что его имя указывается без пути):

#include " inifiles. hpp" ;

TIniFile *Ini = new TIniFile("MY. INI");

Следующий оператор проверяет успешность создания объекта Ini и наличие в файле раздела My Section, содержащего ключ MyKey:

If ∏Ini!= NULL) && Ini->ValueExists("Му Section", »MyKey") )

Следующий оператор заносит в ключ МуКеу раздела M У Section значение ‘5’: Ini->WriteInteger("Му Section","МуКеу",5);

Следующий оператор удаляет ключ МуКеу раздела My Section: Ini->DeleteKey("Му Section","МуКеу");

Следующие операторы сохраняют содержимое объекта Ini в файле на диске

И разрушают объект Ini:

Ini->UpdateFile();

Delete Ini;

TList — класс

Содержит список указателей на любые объекты.

Иерархия TObied

Модуль Classes.

Описание

Объект типа TList Предназначен для хранения и управления списком указате­лей на объекты. Свойства и методы TList Позволяют добавлять и удалять элементы списка, изменять их расположение в списке, сортировать элементы и проводить другие манипуляции с данными.

Свойства

Свойство

Объявление / Описание

EL

Int Capacity

Число указателей, которые могут храниться в объекте. Всегда не меньше Count

Count

Int Count

Число указателей, хранящихся в объекте

Items

Void * Items[int Index]

Элементы массива указателей в объекте

List

___________

Typedef void *TPointerList[134217727];

Typedef TPointerList *PPointerList;

PPointerList List

Указатель на массив указателей в объекте _ _ _

Методы

Метод

Объявление / Описание

Add

Int Add(void * Item)

Добавление нового указателя Item в список

Assign

Enum TListAssignOp { laCopy, IaAnd, IaOr, IaXor, laSrcUnique, IaDestUnique };

Void Assign(TList* ListA, TListAssignOp AOperator = laCopy,

TList* ListB = NULL)

Комбинирует элементы данного списка с элементами других спис­ков ListA и ListB. Параметр AOperator определяет опции копи­рования. Если ListB не NULL, то сначала все элементы данного списка заменяются элементами ListA, а затем к ним присоединя­ются элементы ListB в соответствии с опциями AOperator. Если ListB = NULL, то элементы ListA переносятся в данный список в соответствии с опциями AOperator

Clear

Void Clear(void)

Очистка списка

Delete

Void Delete(int Index)

Удаление из списка элемента по его индексу Index

Error

Void Error(const AnsiString Msg, int Data)

{ Error( classid(TList), Msg, Data)}

Генерация исключения EListError с передачей ему параметров

Msg (сообщение) и Data (число)

Exchange

Void Exchangc(int Indexl, int Index2)

Взаимная перестановка двух элементов списка с индексами In­dexl и Index2

Expand

TList* Expand(void)

Расширяет емкость списка Capacity и копирует список

First

Void * First(void)

Возвращает первый указатель списка

IndexOf

Int IndexOf(void * Item)

Возвращает индекс первого вхождения в список заданного указа­теля Item

Insert

Void Insert(int Index, void * Item)

Вставляет элемент Item в список в заданную позицию Index

Last

Void * Last(void)

Возвращает последний указатель списка

Move

Void Move(int CurIndex, int NewIndex)

Изменяет текущую позицию Curlndex элемента в списке на New-

Index

Pack

Void Pack(void)

Удаляет из списка указатели NULL

Метод

Объявление / Описание

Remove

Int Remove(void * Item)

Удаляет из списка элемент Item

Sort

Typedef int (*TListSortCompare) (void * Iteml, Void * Item2); Void Sort(TListSortCompare Compare)

_____________

Сортирует список с использованием указанной функции сравне­Ния Compare

Остальные методы наследуются от базового класса TObiect, В частности, Free, ClassName, ClassNameIs И ряд других.

Примеры

// объявление
struct tpers
ansistring
unsigned
ansistring
структуры
{
fam,nam,par year;
dep;

Ниже приведен пример, в котором создается и реорганизуется список струк­тур, содержащих информацию о сотрудниках какой-то организации.

};

TList *List = new TList; // Создание экземпляра списка TPers * Pnew; // Объявление указателя на структуру

// Выделение памяти под новую структуру Pnew = new TPers;

// Заполнение элементов структуры Pnew->Fam = "Иванов";

Pnew->Nam = "Иван";

Pnew->Par = "Иванович";

Pnew->Year = 1960;

Pnew ->Dep = “Бухгалтерия";

// Включение указателя в список List->Add(Pnew) ;

// Выделение памяти под новую структуру Pnew = new TPers;

// Заполнение элементов структуры Pnew->Fam = "Петров";

Pnew->Nam = "Петр";

Pnew->Par = "Петрович”;

Pnew->Year = 1970;

Pnew ->Dep = "Цех 1";

// Включение указателя в список List->Add(Pnew);

Просмотр всего сформированного списка можно осуществить следующей функцией:

Void ShowListO

1

For (int i = 0; i < List->Count; i++)

ShowMessage(((TPers *) List->Items[i])->Fam +

‘ ‘+((TPers *)List->Items[i])->Nam +

‘ ‘+((TPers *)List->Items[i])->Par +

‘∖n,+IntToStr(((TPers *)List->Items[i])->Year) +

" r. p.∖n Отдел ",+ ( (TPers *) List->Items [i] )->Dep + ‘");

}

Она выдаст поочередно сведения обо всех сотрудниках, занесенных в список.

В приведенной функции доступ к элементу List->Items[i] Можно заменить на

List->List[i].

Оператор

List->E×change (0,1);

Поменяет местами две первые структуры (первым станет "Петров", вторым — "Ива­нов").

Можно обеспечить сортировку списка методом Sort. Для этого надо опреде­лить функцию сравнения двух элементов списка. В нашем случае, если важна сор­тировка по фамилиям, эта функция может иметь вид:

Int MyCompare(void * Iteml, void * Item2) return ((TPers *)Iteml)->Fam. AnsiCompare(((TPers *)Item2)->Fam);

}

Тогда оператор, обеспечивающий сортировку списка должен иметь вид:

List->Sort(MyCompare);

Следующий оператор изменяет значения поля Dep первой структуры в списке: ((TPers *) List-Mtems [0])->Dep = "Уволен";

Следующий оператор удаляет первую структуру в списке:

List->Delete (Cs S

При этом число элементов списка уменьшается на 1. Можно удаление элемен­та оформить иначе:

List-Mtems(O) = NULL;

Но при этом число элементов не изменяется и надо в программах обработки списка принять меры, чтобы не появлялись ошибки при обработке нулевого указа­теля. Впрочем, если выполнить оператор

List->Pack ();

То все нулевые указатели из списка будут удалены.

Следующие операторы формируют новую структуру и вставляют ее первой

В список:

// ВыДеление памяти под новую структуру Pnew = new TPers;

// Заполнение элементов структуры Pnew->Fam = "Сидоров";

Pnew->Nam = "Сидор";

Pnew->Par = "Сидорович";

Pnew->Year = 1980;

Pnew ->Dep = "Управление";

// Включение указателя первым в список List-Mnsert (O, Pnew) ;

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

For (int i = 0; i < List-Mount; i++J

{

Pnew = (TPers *) List-Mtems (i) ;

Delete Pnew;

}

Delete .’is>.’,;

TMenuItem — Класс

Описывает свойства элементов меню.

Иерархия TObiect TPersistent TComponent

Модуль Menus.

Описание

Объекты TMenuItem Характеризуют разделы меню. Создаются эти объекты Конструктором Меню, который вызывается двойным щелчком на компоненте меню. Каждой команде меню соответствует свой объект TMenuItem.

Свойства

Ниже приведен список основных свойств класса TMenuItem.

I Свойство

Объявление / Описание

Action

ClasseszTBasicAction* Action

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

AutoCheck

Bool AutoCheck

При значении true при каждом щелчке на разделе меню его свойство Checked автоматически переключается перед наступле­нием события OnClick. При значении false переключение свойст­ва Checked, если это требуется, надо осуществлять программно в обработчике события OnClick

AutoLine

Reduction

Enum TMenuItemAutoFlag { maAutomatic, maManual, maParent };

Typedef TMenuItemAutoFlag TMenuAutoFlag;

TMenuItemAutoFlag AutoLineReduction

При значении maAutomatic из меню автоматически удаляются разделители в начале и в конце меню, а также оставляет один из нескольких следующих подряд разделителей. При значении ma­Manual автоматическая коррекция меню не производится. Зна­чение maParent может быть задано только для подменю и озна­чает, что возможность автоматической коррекции определяется свойством AutoLineReduction родительского меню

Bitmap

GraphicszTBitmap* Bitmap

Указывает изображение, появляющееся в заголовке раздела меню. Если установлено свойство ImageIndex и в родительском меню свойство Images не равно NULL, изображение определяет­ся этими свойствами, а не Bitmap

Break

Enum TMenuBreak { mbNone, mbBreak, mbBarBreak }; TMenuBreak Break

Определяет, не надо ли начинать новый столбец разделов меню

I Caption

——— _

AnsiStrine Caption

Определяет надпись раздела меню

. Checked

Bool Checked

Указывает, будет ли изображаться в разделе меню флажок, по­казывающий, что данный раздел выбран,

Command

Word Command

Определяет идентификатор Command ID Windows, связанный с данным разделом меню. Используется в приложениях, напря­мую обрабатывающих сообщения Windows WM_COMMAND. Свойство только для чтения

Свойство

Объявление / Описание ‘

Count

Int Count

Указывает число подразделов данного раздела меню, раскрывае­мых как выпадающий список. Учитываются только подразделы, относящиеся непосредственно к данному разделу, хотя сами они могут в свою очередь тоже иметь подразделы. Свойство только для чтения ‘

Default

TMenuItem* Items[int Index]

Определяет, является ли данный раздел разделом по умолчанию своего подменю, т. е. разделом, выполняемым при двойном щелч­ке пользователя на родительском разделе. Подменю может со­держать только один раздел по умолчанию, выделяемый жир­ным шрифтом i

I Enabled

Bool Enabled

Определяет, доступен ли раздел. Недоступный раздел изобража­ется серой надписью и не реагирует на щелчок пользователя

GroupIndex

Byte Grouplndex

Определяет логическую группу, к которой относится раздел. Ис­пользуется при объединении меню нескольких форм

Handle

HMENU Handle

Дескриптор выпадающего меню Windows, связанного с данным разделом. Используется при вызовах функций API Windows.

Имеет смысл только при Count > 0. Свойство только для чтения

HelpContext

Typedef int THelpContext;

Classes: :THelpContext HelpContext

Номер темы справки, связанной с данным разделом

Hint

AnsiString Hint

Текст, отображаемый в ярлычке подсказки или в строке состояния

ImageIndex

Typedef int TImageIndex;

TImageIndex ImageIndex

Индекс изображения раздела в списке изображений родительско­го меню Images

____________

Items

TMenuItem* Items[int Index]

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

MenuIndex

Int Menulndex

Индекс раздела, определяющий его место в свойстве Items роди­тельского меню. Изменение Menulndex перемещает раздел в Items. Индекс может не соответствовать видимой пользовате­лем позиции раздела в меню, т. к. некоторые разделы могут быть невидимыми

Parent

TMenuItem* Parent

Указывает на родительский раздел меню, в выпадающем списке которого содержится данный раздел. Если раздел находится на верхнем уровне меню, то свойство Parent указывает на свойство ‘ Items самого меню. Свойство только для чтения

Свойство

Объявление / Описание

RadioItem

Bool Radioltem

Определяет, должен ли работать данный раздел в режиме радио­кнопки совместно с другими разделами, имеющими то же значе — || ние свойства GroupIndex. См. подробнее в описании GroupIndex J

Shortcut

Typedef Word TShortCut;

TShortCut Shortcut

Определяет комбинацию «горячих» клавиш, обеспечивающих быстрый доступ к разделу меню J

Visible

Bool Visible

Определяет видимость раздела меню. Отличие от свойства до­ступности Enabled в том, что недоступный раздел видим, а при Visible =≈ false раздел невидим, соседние разделы смыкаются, за­нимая пустующее место _ _ _ ________ |

Методы

Ниже приведены основные методы, объявленные или переопределенные в клас­се TMenuItem.

Метод

Объявление / Описание

Add

Void Add(TMenuItem* Item);

Void Add(const TMenuItem* * AItems, const int AItems_Size); Добавляет новый элемент Item или массив элементов Altems в свойство Items данного раздела, содержащее список подразде­лов его выпадающего меню

Delete

Void Delete(int Index)

Удаляет подраздел, указанный своим индексом Index, из массива свойства Items данного раздела меню. Индексы начинаются с 0

Find

TMenuItem* FindiAnsiString ACaption)

Возвращает первый элемент массива, имеющий заданное значе­ние надписи ACaption (символ амперсанда, отмечающий символ ускоренного доступа, при поиске игнорируется), или NULL, если

Раздел не найден

____________

GetParent

Menu

TMenu* GetParentMenu(Void)

Возвращает меню типа TMenu, частью которого является дан­ный раздел

IndexOf

Int IndexOf(TMenuItem* Item)

Возвращает индекс раздела меню, в подменю которого расположен данный раздел. Индекс соответствует позиции в массиве Items.

Если данный раздел расположен не в подменю, возвращается -1

Insert

HIDESBASE void Insert(int Index, TMenuItem* Item)

Вставляет указанный подраздел Item в выпадающее меню данного раздела и задает индекс Index свойства Items вставляемого раздела

IsLine

Bool IsLine(void)

Определяет, является ли раздел разделителем

Remove

HIDESBASE void Remove(TMenuItem* Item)

Удаляет указанный подраздел Item из массива свойства Items данного раздела меню

События

Событие

Описание i

I OnAdvanced

I DrawItem

Наступает, когда необходимо перерисовать нестандартное изображение раздела меню (если свойство OwnerDraw = true). Отличается от OnDrawItem параметрами

OnClick

Происходит при щелчке левой кнопки мыши на разделе меню I

OnDrawItem

Наступает, когда необходимо перерисовать нестандартное изображение раздела меню (если свойство OwnerDraw = true)

I OnMeasureItem

Происходит перед прорисовкой нестандартного (если свойство OwnerDraw = true) изображения раздела, чтобы определить его размер

TMessage — тип

Тип параметра, характеризующего сообщения Windows и передаваемого в ме­тод WndProc.

Модуль Messages.

Объявление

Messages

Struct TMessage

{ .

Cardinal Msg;

Union

{

Struct

wparamlo; wparamhi; lparamlo; lparamhi; resultlo; resulthi;{

Word Word Word Word Word Word };

Struct

{.

Int WParam; int LPararn; int Result;

);

);

} ;

Описание

Тип TMessage Представляет в WndProc И других процедурах параметры сооб­Щений Windows.

TMetafile— класс___________________________________

Инкапсулирует метафайл Win32 Enhanced.

Иерархия TO⅛⅛c 1 — — TGraphIc

Модуль Graphics.

Описание

Класс TMetafile Позволяет хранить изображения, соответствующие графиче­ским метафайлам. enιfWindows. Свойства TMetafile Описывают размер и характе­ристики метафайла. Рисовать метафайлы на канве можно методами канвы Draw И StretchDraw. Свойство Enhanced Определяет, как метафайл хранится на диске: true соответствует формату. emf (Win32 Enhanced Metafile), a False — — .wmf (Windows 3.1 Metafile).

Свойства

Ниже приведен список свойств, определенных или переопределенных в TMe-

Tafile.

Свойство

Объявление / Описание

CreatedBy

AnsiString CreatedBy

Указывает имя автора или приложения, создавшего метафайл. Свойство только для чтения. Чтобы задать CreatedBy нового ме­тафайла, надо вызвать метод CreateWithComment Объекта TMe — TafileCanvas

Description

AnsiString Description

Определяет не обязательный текст описания метафайла. Свойство только для чтения. Чтобы задать Description нового метафайла, надо вызвать метод CreateWithComment Объекта TMetafileCanvas

Empty

Bool Empty

Указывает, содержит ли объект метафайл. Только для чтения

Enhanced

Bool Enhanced

Значение true соответствует формату хранения на диске .emf, A false .wmf. В памяти метафайл всегда хранится в формате .emf. Формат .wmfВедет к частичной потере информации и оставлен только для обратной совместимости

____________

Handle

Int Handle

Дескриптор, используемый для доступа к GDI Windows и вызова функций API Windows

Height

Int Height

Указывает высоту изображения в пикселах. Может изменяться пользователем

Inch

Word Inch

Используется для метафайлов WMF и указывает число единиц на дюйм, необходимое для масштабирования. Метафайлы EMF хранят эту информацию внутри себя

MMHeight

Int MMHeight

Содержит высоту изображения в единицах 0.01 мм. MMHeight дает более точное значение высоты, чем свойство Height, значе­ние которого измеряется в пикселах

I MMWidth

L___________

Int MMWidth

Содержит ширину изображения в единицах 0.01 мм. MMWidth дает более точное значение ширины, чем свойство Width, значе­ние которого измеряется в пикселах __ _

I Свойство

Объявление / Описание

Palette

HP ALETTE Palette

Управляет цветами графического изображения. Если изображе­ние не нуждается или не имеет палитры, то Palette == 0

Transparent

Bool Transparent

Указывает, может ли изображение быть прозрачным Только для чтения

Width

Int Width

Указывает ширину изображения в пикселах. Может изменяться пользователем

От TGraphic Наследуются свойства Modified и PaletteModified.

Методы

Ниже приведены основные методы, объявленные или переопределенные в клас­се TMetafile.

Метод

Объявление / Описание

Assign

Void Assign(Classes::TPersistent* Source)

Копирует свойства Enhanced И Palette Изображения из дру­гого графического объекта, в частности, из буфера обмена Clipboard

Clear

Void Clear(void)

Очищает изображение

LoadFrom

ClipboardFormat

Void LoadFromClipboardFormat(Word AFormat,

Int AData, HPALETTE APalette)

Читает изображение из буфера обмена Clipboard в заданном формате

LoadFromFile

Void LoadFromFile(const AnsiString FileName)

Читает изображение из файла FileName

LoadFromStream

Void LoadFromS tream(Classes"TStream* Stream)

Читает графическое изображение из потока

ReleaseHandle

Int ReleaseHandle(void)

Возвращает дескриптор типа HENHMETAFILE и устанав­ливает дескриптор объекта в NULL

SaveToClipboard

Format

Void SaveToClipboardFormat(Word &AFormat,

Int &AData, HPALETTE &APalette)

Сохраняет изображение в буфере обмена Clipboard в задан­ном формате

SaveToFile

Void SaveToFile(const AnsiString Filename)

Сохраняет изображение в файле Filename

SaveToStream

Void SaveToStream(Classes::TStream* Stream)

Записывает изображение в поток Stream

Ряд методов наследуется от классов TPersistent И TObject.

События

Событие

Описание

‘ OnChange

Событие при изменении графического объекта

OnProgress

События происходят при медленных процессах изменения гра­фического изображения и позволяют построить индикатор хода

Процесса

TMouseButton — тип

Тип определяет кнопку мыши.

Определение

Enuɪn TMouseButton ( rnbLeft, mbRight, mbMiddle };

Описание

Тип TMouseButton Используется в обработчиках различных событий, связан­ных с мышью, для идентификации нажатой кнопки: MbLeft — левая, MbRight Правая, MbMiddle — средняя.

TObject — базовый класс всех объектов____________________________

Базовый класс всех объектов VCL в C++Builder.

Модуль System.

Описание

Класс TObject Инкапсулирует основные функции, свойственные всем объек­там VCL в C++Builder. Интерфейс TObject Обеспечивает:

• Возможность создания, управления и разрушения экземпляров объектов, включая выделение под них памяти, инициализацию и освобождение памяти

После их уничтожения.

• Поддержка информации об объектах и типах (run-time type information —

RTTI).

• Поддержка обработки сообщений.

Все классы библиотеки VCL в C++Builder являются прямыми или косвенны­ми наследниками TObject. Прямое наследование используется только при объяв­лении простых классов, объекты которых не являются компонентами, не могут присваиваться друг другу и не участвуют в операциях обмена с потоками. Подав­ляющее большинство классов являются косвенными наследниками TObject И про­изводятся от промежуточных классов.

Большинство методов TObject Не используются непосредственно в компонен­тах, с которыми имеет дело пользователь. Исходные методы TObject Обычно пере­гружены в классах-наследниках или заменены другими, построенными на их ос­нове. Большинство методов являются методами класса.

Хотя формально TObject Не является абстрактным классом, но объекты этого класса создавать нельзя.

Методы

Большинство методов класса TObject Пользователями непосредственно не ис­пользуется. Ниже приводятся все методы этого класса.

Метод

Объявление / Описание

AfterConstruction

Void AfterConstruction()

Вызывается автоматически после создания объекта

BeforeDestruction

Void BeforeDestructionO

Вызывается автоматически перед срабатыванием деструктора

Typedef TMetaClass* TClass;

Static void * ClassInfo(TClass Els);

Void * ClassInfoOl return Classlnfo(ClassTypeO); }

Возвращает указатель на таблицу информации времени вы­полнения (RTTI) о типе объекта. Таблица RTTI содержит информацию о типе компонента, типе его родителя, о его опубликованных свойствах. Classlnfo используется средой проектирования Delphi, но явным образом обычно не вызы­вается, так как доступ к RTTI проще получить другими ме­тодами

ClassName

Typedef TMetaClass* TClass;

Static ShortString ClassName(TClass Els);

ShortString ClassNameO { return ClassName(ClassTypeO);}

Возвращает имя типа объекта

ClassNameIs

Typedef TMetaClass* TClass;

Static Bool ClassNameIsfTClass Els, Const AnsiString string); Bool ClassNameIs(const AnsiString string)

{ return ClassNameIs(ClassTypef), string); }

Возвращает true, если передаваемое в функцию имя Name совпадает с именем данного класса

ClassParent

Typedef TMetaClass* TClass;

Static TClass ClassParent(TClass els)

TClass ClassParentf) { return ClassParent(ClassTypeO);) Возвращает тип непосредственного предка данного класса

ClassType

Typedef TMetaClass* TClass;

TClass ClassTypeO

Возвращает указатель на таблицу информации времени вы­полнения (RTTI) о типе объекта

CleanupInstance

Void CleanupInstanceO

Очищает длинные строки и объекты variant. Вызывается автоматически в методе Free

DefauItHandler

Void DefaultHandler(void* Message)

Процедура обработки сообщения по умолчанию. Вызывается, из Dispatch, если не найден обработчик данного сообщения

Dispatch

_________________

Void Dispatch(void *Message)

Вызывает обработчик сообщения, полученного объектом

FieldAddress

Void * FieldAddress(const ShortString &Name)

Возвращает указатель на опубликованное поле объекта

Метод

Объявление / Описание

Free

Free()

Уничтожает объект и освобождает выделенную под него па­мять. Явным образом из приложений не вызывается. Для уничтожения объекта надо использовать операцию Delete

FreeInstance

Void FreeInstanceO

Освобождает память, выделенную ранее вызванным мето­дом NewInstance. Автоматически вызывается деструкто­ром. Непосредственный вызов пользователем не требуется. Должен быть перегружен, если перегружен метод Newlns — tance. Использует InstanceSize Для определения размера выделенной области памяти

GetInterface

Bool GetInterfacetconst TGUID &IID, void *Obj);

Template <typename T>

Bool GetInterface(DelphiInterface<T><fe sɪnartlntf)

{return GetInterfacet____ uuidof(T),

Reinterpret_cast<void*>(statie_cast<T**>(&smartIntf)));

}

Возвращает интерфейс, указанный идентификатором

J GetInterfaceEntry

PInterfaceEntry GetInterfaceEntry(const TGUID IID)

Возвращает вход интерфейса, указанного идентификатором

GetInterfaceTable

Struct PACKAGE TInterfaceTable{ int EntryCount;

TInterfaceEntry Entries[];

Typedef TInterfaceTable *PInterfaceTable;

Static PInterfaceTable * GetInterfaceTable(Void)

Возвращает указатель на структуру, содержащую все ин­терфейсы класса

InheritsFrom

Typedef TMetaClass* TClass;

Static bool InheritsFrom(TClass cis, TClass aClass); bool InheritsFrom(TClass aClass)

{ return InheritsFrom(ClassType(), aClass);}

Определяет, является ли указанный класс AClass Предком данного объекта

InitInstance

Typedef TMetaClass* TClass;

Static TObject * InitInstancefTClass els, void *instance); TObject * Initlnstancefvoid *instance)

TObject"InitInstance(this, instance); }

Инициализирует новый объект и указатель на его таблицу виртуальных методов. Вызывается автоматически методом Newlnstance. He может быть перегружен

InstanceSize

Typedef TMetaClass* TClass;

Static long InstanceSizefTClass els);

Long InstanceSize(){ return InstanceSize(ClassType()); }

Возвращает число байтов, занимаемых объектом. Может использоваться для анализа затрат памяти различными ти­пами объектов

I Метод

Объявление / Описание

MethodAddress

Typedef TMetaClass* TClass;

Static void * MethodAddress(TClass cis,

Const ShortString &Name);

Void * MethodAddress(const ShortString &Name)

{ return MethodAddress(ClassTypeC), Name); }

Возвращает адрес указанного метода Name. Непосредствен­но не вызывается

MethodName

Typedef TMetaClass* TClass;

Static ShortString MethodName(TClass cis, void *Address); ShortString MethodName(void * Address)

{ return MethodName(ClassTypeC), Address); }

Возвращает имя метода, расположенного по указанному ад­ресу

NewInstance

Typedef TMetaClass* TClass;

Virtual TObject* NewInstance(TClass cis);

Выделяет область памяти под объект и возвращает указа­тель на нее. Автоматически вызывается всеми конструкто­рами. Использует InstanceSize. Может перегружаться в классах-наследниках.

SafeCallException

HResult SafeCallException(TObject *ExceptObject,

Void *ExceptAddr)

Обрабатывает исключения OLE и Com

TOleServer — базовый класс сЕрверов OLE________

Базовый класс компонентов, представляющих импортируемые серверы СОМ.

Иерархия TObject TPersistentTComvonent

Модуль OleServer.

Описание

Класс TOleServer Является базовым для множества импортируемых серверов СОМ, имеющихся в библиотеке компонентов C++Builder 6 и 5. В самом классе TOleServer Объявлены абстрактные методы и свойства, позволяющие устанавли­вать связь с сервером. Поэтому нельзя создавать объекты класса TOleServer.

Многочисленные потомки класса TOleServer — серверы СОМ создаются им­портом библиотек типов, осуществляемым в среде C++Builder командой Project | Import Type Library. Когда приложение вызывает какой-то метод класса — наследни­ка TOleServer Или устанавливает какое-то из его свойств, компонент автоматиче­ски устанавливает соединение с соответствующим сервером СОМ. Соединение можно установить и явным образом, выполнив метод Connect.

Свойства

Ниже приведен список основных свойств, объявленных в TOleServer.

Свойство

Объявление / Описание

AutoConnect

Hool AutoConnect

Определяет, должен ли сервер автоматически загружаться с на­чалом выполнения приложения (при AutoConnect = true), или связь с ним должна устанавливаться только при вызове его ме­тодов, установке его свойств или вызове метода Connect. Значе­ние AutoConnect = True Влияет только при запуске приложе­ния на выполнение. Последующая установка AutoConnect = True Ни на что не влияет

ConnectKind

Enum TConnectKind {ckRunningOrNew, CkNewInstanee,

CkRunninglnstanee, CkRemote, CkAttaehToInterfaee);

TConnectKind ConnectKind

Указывает тип процесса соединения с сервером: ckRunningOr — New — подсоединиться к выполняющемуся серверу или со­здать новый экземпляр сервера, ckNewInstance — всегда созда­вать новый экземпляр сервера, ckRunninglnstance — подсоеди­ниться только к выполняющемуся серверу, ckRemote — подсо­единиться к удаленному серверу (эта опция должна сочетаться с заданием RemoteMachineName), CkAttachToInterface — не подсоединяться к серверу (вместо этого приложение обеспечи­вает интерфейс методом ConnectTo)

Remote

MachineName

AnsiString RemoteMachmeN ame

Указывает компьютер, на котором выполняется удаленный сер­вер. Используется только при ConnectKind равном ckRemote

Методы

Основные методы TOleServer:

Метод

Объявление / Описание j

Connect

Void Connect(void)

Устанавливает связь с сервером СОМ. Если свойство AutoCon­nect = true, этот метод вызывается автоматически при начале выполнения приложения. При значении свойства ConnectKind равном ckAttachToInterface вместо Connect надо использовать ConnectTo, который вводится классами, наследующими TOle — Server. Если ConnectKind равен ckRemote, то перед вызовом Connect надо задать значение свойства RemoteMachmeName

ConnectTo

Этот метод установления связи с сервером отсутствует в самом классе TOleServer, но вводится во многих компонентах клас­сов — наследников, которые подключаются не к основному ин­терфейсу сервера, а к составляющим его объектам. К таким компонентам относятся WordDocument, WordParagraphFor — Mat, Excel Workbook и др.

Disconnect

Void Disconnect(void)

Разрывает связь с сервером СОМ

Класс наследует также множество методов, характерных для всех компонен­тов, от TComponent. TPersistent. TObiect.

TPen — класс___________________________________________________

Определяет свойства пера, используемые при рисовании линий и фигур на

Канве.

Иерархия TObjectTPersistent — TGraphicsObject Модуль Graphics.

Описание

Класс TPen Инкапсулирует атрибуты пера Windows при рисовании на канве — объекте типа TCanvas.

Свойства

. Свойство

Объявление / Описание

Color

TColor Color

Цвет пера. По умолчанию — clBlack

Handle

HPEN Handle

Дескриптор кисти окна. Используется для доступа к функциям

API Windows

Mode

TPenMode Mode

Определяет режим рисования линий

Style

TPenStyle Style

Определяет стиль рисования линий

Width

Int Width

Определяет толщину линии в пикселах. Влияет на Style

Методы

В классе TPen Не введено каких-то принципиально новых методов. Переопре­делены такие общие методы, как Assign И конструктор. Остальные методы насле­дуются от классов-предков.

События

Класс TPen Наследует от класса TGraphicsObject Событие OnChange, Насту­Пающее после изменения графического объекта.

TPersistent — базовый класс объектов,

Участвующих в операциях с потоками_____________________________

Базовый класс всех объектов VCL C++Builder, допускающих операцию при­сваивания или участвующих своими свойствами в операциях с потоками.

Иерархия TOhject

Модуль Classes.

Описание

Класс TPersistent Инкапсулирует фундаментальные свойства объектов, кото­рые должны иметь возможность присваиваться друг другу или читать и записы­вать свои свойства в поток. Методы класса TPersistent Обеспечивают:

• Определение процедур загрузки и сохранения данных в потоке.

• Присваивание значений свойствам.

• Присваивание содержимого одного объекта другому.

Объекты TPersistent Создаваться не могут. Класс используется только для соз­дания производных классов.

Класс TPersistent, Является предшественником большинства классов С++Ви — ilder и всех классов компонентов.

Методы

Класс имеет следующие методы:

Метод

Объявление / Описание

Assign

Void Assign(TPersistent* Source)

Копирует данные одного объекта в другой

AssignTo

Void AssignTo(TPersistent* Dest)

Защищенная реализация метода, аналогичного Assign

I DefineProperties

Void DefineProperties(TFiler* Filer)

Виртуальный защищенный метод обмена данными с потоком

GetNamePath

DYNAMIC AnsiString GetNamePath()

Возвращает строку, используемую в Инспекторе Объектов

GetOwner

DYNAMIC TPersistent* GetOwner(void)

Защищенный метод, возвращающий владельца объекта

Из всех этих методов только Assign может непосредственно использоваться пользователем при работе с объектами. Остальные могут потребоваться только при создании новых классов. Класс наследует также множество методов от класса

TObject.

TPicture — класс________________________________________________

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

Иерархия TObiect — TPersistent

Модуль Graphics.

Описание

Объект типа TPicture Является контейнером любого графического объекта TGraphic. Тип которого указывается свойством Graphic. Объект TPicture Имеет полиморфные методы файлового чтения и записи LoadPromFile и SaveToFile, Ав­томатически подстраивающиеся под тип объекта.

В зависимости от типа хранимого объекта — битовой матрицы, пиктограммы, метафайла, определены соответствующие свойства Bitmap, Icon Или Metafile, Ука­зывающие на графический объект. При ошибочном обращении к этим свойствам (если объект в действительности имеет другой тип) прежнее содержимое объекта стирается и открывается новый пустой объект указанного типа. Вместо этих свойств можно получать доступ к графическому объекту непосредственно через свойство Graphic. Таким образом, например, обращения Imagel->Picture-> Graphic и Imagel->Picture->Bitmap Эквивалентны, если графический объект — битовая матрица.

Обмен объекта TPicture С буфером обмена Clipboard может осуществляться ме­тодом Assign объекта TClipboard.

Свойства

В классе TPicture объявлены следующие свойства:

Свойство

Объявление / Описание

Bitmap

TBitmap* Bitmap

Указывает на хранящийся объект как на битовую матрицу (формат файла. bmp)

Graphic

TGraphic* Graphic

Указывает на хранящийся объект как на битовую матрицу, пиктограмму, метафайл или определенный пользователем тип

Height

Int Height

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

Icon

TIcon* Icon

Указывает на хранящийся объект как на пиктограмму (фор­мат файла .ico)

Metafile

TMetafile* Metafile

Указывает на хранящийся объект как на метафайл (формат файла. emf)

! PictureAdapter

_di_IChangeNotifier PictureAdapter

Интерфейс OLE для изображения. Используется только для внутренних целей

Width

Int Width

Указывает собственную, не измененную ширину изображения в пикселах. Свойство только для чтения

Методы

Ниже приведены основные методы, объявленные в классе TPicture.

Метод

Объявление / Описание

Assign

Void AssigntciassesnTPersistent* Source)

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

LoadFrom ClipboardF ormaL

Void LoadFromClipboardFormat(WordAFormat,

Int AData, HPALETTE APalette)

Читает изображение из буфера обмена Clipboard В заданном

Формате

LoadFromFile

Void LoadFromFile(const AnsiString Filename)

Читает изображение из файла FileName

Register

ClipboardF ormat

Void RegisterClipboardFormatI

SystemnTMetaClass* vmt, Word AFormat, SystemnTMetaClass* AGraphicClass)

Регистрирует новый формат Clipboard Графического объекта для использования в методе LoadFromClipboardFormat

Метод

Объявление / Описание

RegisterFile

Format

Void RegisterFileF ormat( Systemz zTMetaClass* vmt,

Const AnsiString AExtension, const AnsiString ADescription, System::TMetaClass* AGraphicClass)

Регистрирует новый файловый формат графического объекта для использования в методе LoadFromFile

RegisterFile

FormatRes

Void RegisterFileFormatRes(SystemzzTMetaClass* vmt,

Const AnsiString AExtension, int ADescriptionResID, SystemzzTMetaClass* AGraphicClass)

Регистрирует новый файловый формат графического объекта из ресурсов для использования в методе LoadFromFile.

SaveTo

ClipboardFormat

Void S a VeToClipboardFormat (Word &AFormat,

Int &AData, HPALETTE &APalette)

Сохраняет изображение в буфере обмена Clipboard В задан­ном формате

SaveToFile

Void SaveToFile(const AnsiString Filename)

Сохраняет изображение в файле FileName

Supports

ClipboardFormat

Bool SupportsClipboardFormat(

SystemzzTMetaClass* vmt, Word AFormat)

Определяет, поддерживается ли указанный формат Clipboard Графического объекта

Unregister

GraphicClass

Void UnregisterGraphicClass(SystemzzTMetaClass* Vmt,

SystemzzTMetaClass* AClass)

Удаляет все ссылки на ранее зарегистрированный формат Clipboard Или файла

Кроме того, наследуется множество методов от класса TObjet T.

События

Событие

Описание

OnChange

OnProgress

Событие при изменении графического объекта

События происходят при медленных процессах изменения графического изображения и позволяют построить индика­тор хода процесса

TPoint — тип

Определяет точку координат в пикселах. Заголовочный файл Types. hpp. Определение

Struct TPoint : public POINT

TPoint() {}

TPoint(int _x, int _y) ( x=_x; y=_y; 1 TPoint (POINTS pt)

<

У ^ pt∙y;

)

);

Typedef TPoint tagPoint;

Описание

Тип TPoint Определяет точку координат в пикселах. В частности, во многих свойствах этот тип используется для задания координат углов прямоугольников и других фигур. В этих случаях началом координат, в зависимости от применения, считается левый верхний угол экрана или окна.

Для задания параметров типа TPoint Во многих функциях удобно использо­вать функцию Point, Возвращающую структуру TPoint. Но можно для создания точки использовать и объявленные в структуре конструкторы.

Примеры

Операторы

TPoint Tp = Point (Left, Top) ;

TPoint [*] [†] Ptp = new TPoint (Left, Top);

TPoint Tp2 = TPoint (Left, Top);

TPoint Tp3 = TPoint (*Ptp) ;

Создают переменные Tp, Tp2 и ТрЗ типа TPoint, А также указатель Ptp На тип TPo — int, Причем во всех точках задаются значения координат, соответствующие левому верхнему углу формы. Третий и четвертый операторы используют две объявлен­ные в структуре формы конструктора.

Следующий оператор сдвигает точку Тр на 10 пикселов вправо:

Тр. х += 10;

public recttpoints tl, const tpoints br)
{left=tl.x; top=tl.y; right=br.x; bottom=br.у;}
int t, int r, int b)
{left=l; top=t; right=r; bottom=b;} r) ∙
r. left; r.top; r.right; r.bottom;TRect — тип

_ property LONG Right = ( read=right, write=right }

_ property LONG Bottom = { read=bottom, write=bottom }

Описание

Доступ к координатам осуществляется или через данные-элементы Left, top, right, bottom, Или через свойства Left, Top, Right, Bottom. Для типа определены функции-элементы Width() и Height(), Возвращающие соответственно ширину и высоту. Определены также операции и

Задавать значения переменной типа TRect Удобно функцией Rect. Задающей координаты левой, верхней, правой и нижней границ — Left, Top, Right, Bottom, Или функцией Bounds, Задающей координаты левого верхнего угла Left И Тор, Ширину прямоугольника A Width И его высоту AHeight. Но с равным успехом можно использовать и объявленные в структуре конструкторы.

Примеры

Операторы

TRect Tr Rect(Left, Top, Left+Width, Top+Height);

TRect Trl = Top, Width,

TRect * Ptr = new TRect(BoundsRect);

TPoint Pl = Point(Left, Top);

TPoint P2 = Point(BoundsRect. Right, BoundsRect-Bottom) TRect Tr2 = TRect(Pl, P2);

TRect =

Создают переменные Tr. Trl, Тг2 и TrS Типа TRect, А также указатель Ptr На тип TRect, Причем во всех структурах задаются значения координат, соответствующие прямоугольнику BoundsRect Формы. Переменные Tr И Trl Создаются функциями Rect и Bounds. Переменная Тг2 формируется конструктором из двух точек типа TPoint. А переменная ТгЗ создается конструктором, воспринимающим координа­ты области, на которую указывает Ptr.

Следующий оператор сдвигает область Tr На 10 пикселов вправо:

Tr-Left. += 10;

TRegIniFile — класс______________________________________________

Тип объекта, позволяющего работать с реестром Windows так, как с файлом

.INL

Иерархия TObiect TResistru TRegIniFile

Модуль Registry.

Описание

Тип TReglniFile Введен в C++Builder Прежде всего, чтобы обеспечить наибо­лее простой переход от 16-разрядных приложений для Windows 3.x к 32-разряд­ным приложениям Windows, а точнее от работы с файлами TNI к работе с реест­ром. В приложениях для Windows 3.x регистрация приложения и сохранение его настроек осуществлялось с помощью файлов. INI. Для работы с этими файлами ис­пользовались объекты типа TIniFile. В 32-разрядных Windows для тех же целей используется системный реестр — registry. Перейти в приложениях, работающих с файлами. INI, к работе с реестром очень просто: достаточно заменить объект типа TIniFile Объектом типа TReglniFile. При этом вся логика работы и все методы, ис­пользованные в приложении, сохраняются прежними.

TReglniFile Наследует свойства и методы класса TRegistry. Который может использоваться самостоятельно, но добавляет свойства и методы, характерные для объекта TIniFile.

Свойство FileName, Которое в классе TIniFile обозначало имя файла, в классе TReglniFile Соответствует субключу корневого ключа реестра (по умолчанию —

HKEY_CURRENT_USER). Разделу файла. INI соответствует ключ реестра, а зна­чению ключа в файле JNI — параметр ключа реестра.

Имеется еще один класс — TRegistryIniFile. Который обеспечивает другой способ доступа к реестру. Но поскольку TRegistrylniFile Наследует классу TCus — tomlniFile, От которого наследует и TIniFile, то TRegistrylniFile Еще ближе к TIniFile И дает еще более простой способ перехода от файлов TNI к реестру.

Подробнее работа с реестром и файлами JNI описана в [1] и [3].

Свойства

Ниже приведены свойства класса TRegIniFile.

Свойство

Объявление / Описание

Access

Long Access

Множество флагов, определяющих уровень доступа к открывае­мому ключу

CurrentKey

HKEY CurrentKey

Текущий открытый ключ. Все операции с TReglniFile влияют только на открытый ключ реестра. Если вы хотите открыть но­вый ключ, делайте это методами ОрепКеу или OpenKeyReadOn — 1у. Свойство только для чтения

CurrentPath

AnsiString CurrentPath

Путь по реестру от корня до текущего ключа включительно. Свойство только для чтения

FileName

AnsiString FileName

Субключ корневого ключа реестра (по умолчанию —

HKEY CURRENT USER)

LazyWrite

Bool LazyWrite

Определяет способ записи ключей в реестр при выполнении С1о — seKey. Если LazyWrite = true (по умолчанию), то процедура С1о — seKey может вернуться до завершения записи. В противном слу­чае процедура ожидает завершения записи. Это снижает произ-

Водительнось

RootKey

HKEY RootKey

Определяет корневой ключ. По умолчанию —

HKEY_CURRENT_USER. Если это значение требуется изменить (например, для процедур LoadKey или RegistryConnect), надо задать в качестве RootKey допустимое" целое значение

Методы

Ниже приведен список основных методов, определенных в TReglniFile.

Метод

Объявление / Описание

CloseKey

Void CloseKey(void)

Записывает в реестр текущий ключ и закрывает его. Способ запи­си определяется свойством LazyWrite He следует держать ключ открытым дольше, чем это необходимо. Многие методы вызывают CloseKey автоматически после чтения или записи в реестр

Метод

Объявление / Описание

CreateKey

Bool CreateKey(const AnsiString Key)

Добавляет в реестр новый ключ Key

DeleteKey

HIDESBASE void DeleteKeytconst AnsiString Section, const AnsiString Ident)

Удаляет значение параметра Ident Ключа Section

DeleteVaIue

Bool DeleteVaIuetconst AnsiString Name)

Удаляет параметр Name Текущего ключа. В случае успешного удаления возвращает True

EraseSection

Void EraseSection(const AnsiString Section)

Удаляет ключ Section Со всеми его субключами

GetDataInfo

Enum TRegDataType { rdUnknown, rdString, rdExpandString, rdlnteger, rdBinary };

Struct TRegDataInfo

^TRegDataType RegData; int DataSize;

Bool GetDataInfo (const AnsiString ValueName,

TRegDatalnfo &Value)

Дает информацию о параметрах, заданных ValueName, Связан­ных с текущим ключом реестра данного объекта типа TRegist — Гу. Информация содержится в записи типа TRegDatalnfo, Воз­вращаемой как значение параметра Value

GetDataSize

Int GetDataSize(const AnsiString ValueName)

Возвращает размер в байтах значения параметра ValueName Те­кущего ключа. Если параметр является строкой, то возвращен­ное значение учитывает нулевой завершающий символ. Если выполнение функции завершается ошибкой, возвращается -1

GetDataType

Enum TRegDataType { rdUnknown, rdString, rdExpandString, rdlnteger, rdBinary };

TRegDataType GetDataType (const AnsiString ValueName)

Возвращает характеристику типа параметра ValueName Теку­щего ключа. Информация возвращается как значение перечис­лимого типа TRegDataType

GetKeyInfo

Struct TRegKeyInfo

^int NumSubKeys; int MaxSubKeyLen; int NumValues; int MaxValueLen; int MaxDataLen;

_FILETIME FileTime;

Ijool GetKeyInfo(TRegKeyInfo &Value)

Возвращает информацию о текущем ключе в запись типа TReg — Keyl nfo______________________________________________________

Метод

Объявление / Описание

GetValue

Names

Void OetvalueNamestciassesnTStrings* Strings)

Возвращает список Strings имен всех субключей текущего ключа

HasSubKeys

Bool HasSubKeys(Void)

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

KeyExists

Bool KeyExists(const AnsiString Key)

Определяет, имеется ли в реестре ключ Key

LoadKey

Bool LoadKey(const AnsiString Key, const AnsiString FileName)

Создает ключ Key и загружает в него данные из указанного файла FileName

MoveKey

Void MoveKey(const AnsiString OldName,

Const AnsiString NewName, bool Delete)

Копирует (при Delete = false) или перемещает (при Delete = true) ключ OldName, давая ему новое имя NewName. Копируют­ся или перемещаются также все субключи и параметры ключа

OpenKey

Bool OpenKey(const AnsiString Key, bool CanCreate)

Открывает ключ Key, делая его текущим для объекта. Если Key равен NULL, то текущим делается корневой ключ, указанный свойством RootKey. Параметр CanCreate указывает, должен ли создаваться ключ Key, если его нет в реестре. Ключ открывается или создается с доступом KEY_ALL_ACCESS. Создаваемый ключ сохраняется в реестре при последующих запусках системы

ReadBinary

Data

Int ReadBinaryData(const AnsiString Name, void *Buffer, int BufSize)

Читает двоичные данные параметра Name текущего ключа в бу­фер Buffer размера BufSize. Подобные данные обычно являют­ся записями. Это может быть и графика, хотя Microsoft возра­жает против хранения графики в реестре. При ошибке чтения генерируется исключение

ReadBool

HIDESBASE bool ReadBool(const AnsiString Section,

Const AnsiString Ident, bool Default)

Возвращает булево значение параметра Ident ключа Section. Default — значение по умолчанию, возвращаемое, если не на­шлось ключа, параметра или значения

Read

Currency

SystemzCurrency ReadCurrency(const AnsiString Name)

Возвращает значение типа Currency параметра Name текущего ключа. При ошибке чтения генерируется исключение и возвра­щенное значение является ошибочным

ReadDate

SvstemnTDateTime ReadDate(const AnsiString Name)

Возвращает значение даты типа TDateTime параметра Name те­кущего ключа. При ошибке чтения генерируется исключение и возвращенное значение является ошибочным

ReadDate

Time

SystemzTDateTime ReadDateTimefconst AnsiString Name)

Возвращает значение даты и времени типа TDateTime парамет­ра Name текущего ключа. При ошибке чтения генерируется исключение и возвращенное значение является ошибочным

Метод

Объявление / Описание

ReadFloat

Double ReadFloat(const AnsiString Name)

Возвращает действительное значение параметра Name Текущего ключа. При ошибке чтения генерируется исключение и возвра­щенное значение является ошибочным

I ReadInteger

HIDESBASE int Readlnteger(const AnsiString Section,

Const AnsiString Ident, int Default)

Возвращает целое значение параметра Ident Ключа Section. De­fault — значение по умолчанию, возвращаемое, если не нашлось ключа, параметра или значения

ReadSection

Void ReadSection(const AnsiString Section,

ClassesnTStrings* Strings)

Читает в Strings Типа TStrings Имена всех параметров ключа Section

ReadSections

Void ReadSections(ClassesnTStrings* Strings)

Читает в Strings Типа TStrings Имена всех ключей

ReadSection

Values

Void ReadSectionValues(const AnsiString Section, ClassesaTStrings* Strings)

Читает в Strings Типа TStrings Значения всех параметров клю­ча Section

HteadString

HIDESBASE AnsiString ReadString(const AnsiString Section, const AnsiString Ident, const AnsiString Default)

Возвращает строку значения параметра Ident Ключа Section. Default — значение по умолчанию, возвращаемое, если не на­шлось ключа, параметра или значения

ReadTime

TDateTime ReadTime(const AnsiString Name)

Возвращает значение времени типа TDateTime Параметра Name Текущего ключа. При ошибке чтения генерируется исключение и возвращенное значение является ошибочным

Registry

Connect

Bool RegistryConnect(const AnsiString UNCName)

Устанавливает связь с реестром другого компьютера. UNCNa — me — имя удаленного компьютера в форме "\\имя". Если UNC — Name = NULL, устанавливается связь с локальным компьюте­ром. Перед вызовом свойство RootKey Надо задать равным HKEY_USERS или HKEY_LOCAL_MACHINE. При успешном соединении возвращается True И RootKey Устанавливается рав­ным корневому ключу

RenameValue

Void RenameValue(const AnsiString OldName, const AnsiString NewName)

Изменяет имя параметра текущего ключа с OldName На New — Name. Параметр OldName Должен существовать, а параметра, NewName не должно быть до выполнения этого метода. В про­тивном случае параметр останется неизмененным

Метод

Объявление / Описание

ReplaceKey

Bool ReplaceKey(const AnsiString Key,

Const AnsiString FileName, const AnsiString BackUpFileName)

Заменяет хранящуюся в файле BackUpFileName информацию о ключе Key, его субключах и параметрах аналогичной инфор­мацией из другого файла FileName

RestoreKey

Bool RestoreKey(const AnsiString Key,

Const AnsiString FileName)

Открывает ключ Key и заменяет его содержимое информацией, хранящейся в файле FileName

SaveKey

Bool SaveKey(const AnsiString Key, const AnsiString FileName)

Открывает ключ Key и сохраняет параметры его и всех его суб­ключей в файле FileName

TRegIniFile

TRegIniFile(const AnsiString FileName);

TRegIniFilelconst AnsiString FileName, unsigned AAccess);

Конструкторы. Свойство FileName становится равным парамет­ру FileName. Если задан параметр AAccess, это значение запи­сывается в свойство Access; в противном случае Access =

KEY ALL ACCESS

UnLoadKey

Bool UnLoadKey(const AnsiString Key)

Удаляет из реестра информацию о субключах и параметрах ключа Key. При успешном завершении возвращает true. Перед вызовом метода надо установить RootKey в HKEY USERS, или в HKEY LOCAL MACHINE, или вызвать RegistryConnect

ValueExists

Bool ValueExists(const AnsiString Name)

Возвращает true, если в текущем ключе имеется параметр Name

, WriteBinary Data

Void WriteBinaryDatalconst AnsiString Name, void *Buffer, int BufSize)

Записывает двоичные данные из буфера Buffer размера BufSize в параметр Name текущего ключа. Подобные данные обычно являются записями. Длинные данные (более 2048 байтов) дол­жны храниться в отдельных файлах, а в реестр заноситься то­лько имя файла. Это касается прежде всего графики, т. к. Mic­rosoft возражает против хранения графики в реестре. Если па­раметр Name не существует, он создается. При ошибке записи генерируется исключение и записи не происходит

WriteBool

HIDESBASE void WriteBoollconst AnsiString Section,

Const AnsiString Ident, bool Value)

Записывает булево значение Value в параметр Ident ключа Sec­tion

Write

Currency

Void WriteCurrency(const AnsiString Name,

System::Currency Value)

Записывает значение Value типа Currency в параметр Name те­кущего ключа. Если нужного параметра нет, он создается. При ошибке записи генерируется исключение

Метод

Объявление / Описание

WriteDate

Void WriteDate(const AnsiString Name,

SystemnTDateTime Value)

Записывает значение даты Value типа TDateTime в параметр Name текущего ключа. Если нужного параметра нет, он созда­ется. При ошибке записи генерируется исключение

WriteDate

Time

Void WriteDateTime(const AnsiString Name,

SvstemuTDateTime Value)

Записывает значение даты и времени Value типа TDateTime в параметр Name текущего ключа. Если параметра Name нет, он создается. При ошибке записи генерируется исключение

Write

ExpandString

Void WriteExpandString)const AnsiString Name, const AnsiString Value)

Записывает значение строки, содержащей нерасширенную ссыл­ку на переменную окружения (например, "%PATH%") В пара­метр Name. Если параметра Name нет, он создается. При ошиб­ке записи генерируется исключение

WriteFloat

Void WriteFloat(const AnsiString Name, double Value)

Записывает действительное значение Value в параметр Name текущего ключа. Если параметра Name нет, он создается. При ошибке записи генерируется исключение

WriteInteger

HIDESBASE void WriteIntegericonst AnsiString Section,

Const AnsiString Ident, Int Value)

Записывает целое значение Value в параметр Ident ключа Section

WriteString

HIDESBASE void WriteStringiconst AnsiString Section,

Const AnsiString Ident, const AnsiString Value)

Записывает строку Value в параметр Ident ключа Section

WriteTime

Void WriteTime(const AnsiString Name,

SystemnTDateTime Value)

Записывает значение времени Value типа TDateTime в пара­метр Name. Если параметра Name нет, он создается. При ошиб­ке записи генерируется исключение

События

Никаких событий в классе TRegIniFile Не объявлено.

Примеры

Следующие операторы создают объект Reg типа TReglniFile И создают в рее­стре ключ My Registry:

♦include "registry. hpp";

TReglniFile * Reg = new TRegIniFileCMy Registry");

Теперь созданный ключ My Registry стал текущим. Следующий оператор за­носит в него параметр Version и его значение — номер версии 1:

Reg->WriteInteger("", "Version",1);

Следующий оператор создает в ключе My Registry субключ Font с параметром Name, в котором сохраняет имя шрифта, используемого в форме Forml:

Reg->WriteString("Font", "Font Name", Forml->Font->Name);

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

Reg->EraseSection(;

Следующий оператор уничтожает объект Reg: delete Reg;

TRegistry — клаес-

Тип объекта, позволяющего работать с реестром Windows.

Иерархия TObiect

Модуль Registry.

Описание

Класс TRegistry Инкапсулирует доступ к системному реестру Windows. Ре­естр, используемый в Windows 95/NT и старше вместо файлов. INI, характерных для Windows 3.x, хранит информацию о конфигурации в виде иерархического де­рева, каждый узел которого называется ключом. Ключ может содержать субключи и значения параметров.

Все ключи в приложении создаются как субключи предопределенного корне­вого ключа (по умолчанию HKEY_CURRENT_USER).

Объект типа TRegistry Имеет доступ только к одному текущему ключу, задавае­мому свойством CurrentKey. Методы TRegistry позволяют открывать, закрывать, сохранять, перемещать, копировать и удалять ключи. Можно также узнавать, име­ют ли ключи параметры, читать параметры и записывать параметры в ключ.

См. также TRegIniFilc и TRegistrvIniFile. Подробнее работа с реестром и фай­лами. INI описана в [1] и [3].

Свойства

Ниже приведены свойства класса TRegistry.

Свойство

Объявление / Описание

Access

Long Access

Множество флагов, определяющих уровень доступа к открывае­мому ключу

CurrentKey

HKEY CurrentKey

Текущий открытый ключ. Все операции с TReglniFile влияют только на открытый ключ реестра. Если вы хотите открыть но­вый ключ, делайте это методами ОрепКеу или OpenKeyReadOn — 1у. Свойство только для чтения

CurrentPath

AnsiString CurrentPath

Путь по реестру от корня до текущего ключа включительно. Свойство только для чтения

LazyWrite

Bool LazyWrite

Определяет способ записи ключей в реестр при выполнении С1о — seKey. Если LazyWrite = True (по умолчанию), то процедура Clo — SeKey может вернуться до завершения записи. В противном слу­чае процедура ожидает завершения записи. Это снижает произ­водительность

Свойство

Объявление / Описание

RootKey

Г_

HKEY RootKey

Определяет корневой ключ. По умолчанию —

HKEY_CURRENT_USER. Если это значение требуется изменить (например, для процедур LoadKev или RegistryConnect), надо задать в качестве RootKey допустимое целое значение

Методы

Ниже приведен список основных методов, определенных в TRegistry.

Метод

Объявление / Описание

_ — —— _ ——

CloseKey

Void CloseKey(void)

Записывает в реестр текущий ключ и закрывает его. Способ запи­си определяется свойством LazyWrite He следует держать ключ открытым дольше, чем это необходимо. Многие методы вызывают CloseKey автоматически после чтения или записи в реестр

CreateKey

Bool CreateKey(const AnsiString Key)

Добавляет в реестр новый ключ Key

DeleteKey

HIDESBASE void DeleteKey(const AnsiString Section, const AnsiString Ident)

Удаляет значение параметра Ident.-ключа Section

DeleteValue

Bool DeleteValue(const AnsiString Name)

Удаляет параметр Name текущего ключа. В случае успешного удаления возвращает true

GetDataInfo

Enum TRegDataType { rdUnknown, rdString, rdExpandString, rdlnteger, rdBinary };

Struct TRegDataInfo

{

TRegDataType RegData; int DataSize;

Bool GetDataInfo(const AnsiString ValueName,

TRegDatalnfo & Value)

Дает информацию о параметрах, заданных ValueName, связан­ных с текущим ключом реестра данного объекта типа TRegistry. Информация содержится в записи типа TRegDatalnfo, возвраща­емой как значение параметра Value

GetDataSize

Int GetDataSize(const AnsiString ValueName)

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

GetData

Type

Enum TRegDataType { rdUnknown, rdString, rdExpandString, rdlnteger, rdBinary };

TRegDataType GetDataType(const AnsiString ValueName)

Возвращает характеристику типа параметра ValueName текуще­го ключа. Информация возвращается как значение перечислимо­го типа TRegDataType

Метод

Объявление / Описание

1 GetKeyInfo

Struct TRegKeyInfo

Snt NumSubKeys; int MaxSubKeyLen; int NurnValues; int MaxValueLen; int MaxDataLen;

FILETIME FiIeTime;

} ;

Bool GetKeyInfolTRegKeyInfo &Value)

Возвращает информацию о текущем ключе в запись типа TReg — Keylnfo

[GetKey

Names

Void GetKeyNamestClasses: :TStrings* Strings)

Возвращает список Strings имен всех субключей текущего ключа

! GetValue Names

Void GetvalueNamestciassesnTStrings* Strings)

Возвращает список Strings имен всех субключей текущего ключа

HasSubKeys

Bool HasSubKeys(Void)

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

KeyExists

Bool KeyExists(const AnsiString Key)

Определяет, имеется ли в реестре ключ Key

LoadKey

Bool LoadKey( const AnsiString Key, const AnsiString FileName) Создает ключ Key и загружает в него данные из указанного фай­ла FileName

MoveKey

Void MoveKey(const AnsiString OldName,

Const AnsiString NewName, bool Delete)

Копирует (при Delete = false) или перемещает (при Delete = true) ключ OldName, давая ему новое имя NewName. Копируют­ся или перемещаются также все субключи и параметры ключа

OpenKey

Bool OpenKey(const AnsiString Key, bool CanCreate)

Открывает ключ Key, делая его текущим для объекта. Если Key равен NULL, то текущим делается корневой ключ, указанный свойством RootKey. Параметр CanCreate указывает, должен ли создаваться ключ Key, если его нет в реестре. Ключ открывается или создается с доступом KEY_ALL_ACCESs. Создаваемый ключ сохраняется в реестре при последующих запусках системы

OpenKey

Readonly

Bool OpenKeyReadOnly(const AnsiString Key)

Открывает ключ Key только для чтения, делая его текущим для объекта. Если Key равен NULL, то текущим делается корневой ключ, указанный свойством RootKey. Ключ открывается с досту­пом KEY READ. Создаваемый ключ сохраняется в реестре при последующих запусках системы

I ReadBinary Data

____________

Int ReadBinaryData(const AnsiString Name, void *Buffer, int BufSize)

Читает двоичные данные параметра Name текущего ключа в бу­фер Buffer размера BufSize. Подобные данные обычно являются записями. Это может быть и графика, хотя Microsoft возражает против хранения графики в реестре. При ошибке чтения генери­руется исключение

Метод

Объявление / Описание

ReadBool

Bool ReadBool(const AnsiString Name)

Возвращает булево значение параметра Name Текущего ключа.

При ошибке чтения генерируется исключение и возвращенное значение является ошибочным 1

Read

Currency

System::Currency ReadCurrency(const AnsiString Name)

Возвращает значение типа Currency Параметра Name Текущего ключа. При ошибке чтения генерируется исключение и возвра­щенное значение является ошибочным

ReadDate

SystemnTDateTime ReadDate(const AnsiString Name)

Возвращает значение даты типа TDateTime Параметра Name Те­кущего ключа. При ошибке чтения генерируется исключение и возвращенное значение является ошибочным

ReadDate

Time

SystemzzTDateTime ReadDateTime(const AnsiString Name)

Возвращает значение даты и времени типа TDateTime Параметра Name Текущего ключа. При ошибке чтения генерируется исклю­чение и возвращенное значение является ошибочным

ReadFIoat

Double ReadFloat(const AnsiString Name)

Возвращает действительное значение параметра Name Текущего ключа. При ошибке чтения генерируется исключение и возвра­щенное значение является ошибочным

∣∣ ReadInteger

Int ReadIntegerlconst AnsiString Name)

Возвращает целое значение параметра Name Текущего ключа.

При ошибке чтения генерируется исключение и возвращенное значение является ошибочным

I ReadString

AnsiString ReadStringlconst AnsiString Name)

Возвращает строку значения параметра Name Текущего ключа. При ошибке чтения генерируется исключение и возвращенное значение является ошибочным

I ReadTime

TDateTime ReadTime(const AnsiString Name)

Возвращает значение времени типа TDateTime Параметра Name текущего ключа. При ошибке чтения генерируется исключение и возвращенное значение является ошибочным

Registry

Connect

Bool RegistryConnect(const AnsiString UNCName)

Устанавливает связь с реестром другого компьютера. UNCNa — me — имя удаленного компьютера в форме ”\\имя". Если UNC — Name = NULL, Устанавливается связь с локальным компьюте­ром. Перед вызовом свойство RootKey Надо задать равным HKEYUSERS или HKEY_LOCAL_MACHINE. При успешном сое­динении возвращается True И RootKey Устанавливается равным корневому ключу

Rename

Value

Void RenameValueieonst AnsiString OldName, const AnsiString NewName)

Изменяет имя параметра текущего ключа с OldName На NewNa — me. Параметр OldName Должен существовать, а параметра New — Name Не должно быть до выполнения этого метода. В противном случае параметр останется неизмененным_____________________________

Метод

Объявление / Описание

ReplaceKey

Bool ReplaceKey(const AnsiString Key,

Const AnsiString FileName, const AnsiString BackUpFileName)

Заменяет хранящуюся в файле BackUpFileName информацию о ключе Key, его субключах и параметрах аналогичной информа­цией из другого файла FileName

‘ RestoreKey

Bool RestoreKey( const AnsiString Key,

Const AnsiString FileName)

Открывает ключ Key и заменяет его содержимое информацией, хранящейся в файле FileName

SaveKey

Bool SaveKey(const AnsiString Key, const AnsiString FileName)

Открывает ключ Key и сохраняет параметры его и всех его субк­лючей в файле FileName

TRegistry

TRegistry(void);

TRegistry(long AAccess);

Конструкторы. Устанавливают RootKey в HKEYCURRENTUSER и Lazy Write в true. Если задан параметр AAccess, это значение за­писывается в свойство Access; в противном случае Access =

KEY ALL ACCESS∣

UnLoadKey

Bool UnLoadKey(const AnsiString Key)

Удаляет из реестра информацию о субключах и параметрах клю­ча Key. При успешном завершении возвращает true. Перед вызо­вом метода надо установить RootKey в HKEY USERS, или в HKEY LOCAL MACHINE, или вызвать RegistryConnect

ValueExists

Bool ValueExists(const AnsiString Name)

Возвращает true, если в текущем ключе имеется параметр Name

Write

BinaryData

Void WriteBinaryData(const AnsiString Name, void *Buffer, int BufSize)

Записывает двоичные данные из буфера Buffer размера BufSize в параметр Name текущего ключа. Подобные данные обычно яв­ляются записями. Длинные данные (более 2048 байтов) должны храниться в отдельных файлах, а в реестр заноситься только имя файла. Это касается прежде всего графики, т. к. Microsoft возра­жает против хранения графики в реестре. Если параметр Name не существует, он создается. При ошибке записи генерируется исключение и записи не происходит

∣ WriteBool

Void WriteBool(const AnsiString Name, bool Value)

Записывает булево значение Value в параметр Name текущего ключа. Если параметр Name не существует, он создается. При ошибке чтения генерируется исключение и записи не происходит

Write

Currency

1___________

Void WriteCurrency(const AnsiString Name,

System::Currency Value)

Записывает значение Value типа Currency в параметр Name те­кущего ключа. Если нужного параметра нет, он создается. При ошибке записи генерируется исключение

Метод

Объявление / Описание

WriteDate

Void WriteDate(const AnsiStrine Name,

System::TDateTime Value)

Записывает значение даты Value Типа TDateTime В параметр

Name Текущего ключа. Если нужного параметра нет, он создает­ся. При ошибке записи генерируется исключение

WriteDate

Void WriteDateTime(const AnsiString Name,

Time

System::TDateTime Value)

Записывает значение даты и времени Value Типа TDateTime В параметр Name Текущего ключа. Если параметра Name нет, он

Создается. При ошибке записи генерируется исключение

____________

WriteEx-

Void WriteExpandString(const AnsiString Name,

PandString

Const AnsiString Value)

Записывает значение строки, содержащей нерасширенную ссыл­ку на переменную окружения (например, "%PATH%") В пара­метр Name. Если параметра Name нет, он создается. При ошибке записи генерируется исключение

PwriteFloat

Void WriteFloatCconst AnsiString Name, double Value)

Записывает действительное значение Value В параметр Name Те­кущего ключа. Если параметра Name нет, он создается. При ошибке записи генерируется исключение

Write

Void WriteIntegerCconst AnsiString Name, int Value)

Integer

Записывает целое значение Value В параметр Name Текущего ключа. Если параметра Name Нет, он создается. При ошибке за­писи генерируется исключение

WriteString

Void WriteStringCconst AnsiString Name, const AnsiString Value)

Записывает строку Value В параметр Name Текущего ключа.

Если параметра Name Нет, он создается. При ошибке записи ге­нерируется исключение

WriteTime

Void WriteTimeCconst AnsiString Name,

System: =TDateTime Value)

Записывает значение времени Value Типа TDateTime В параметр Name. Если параметра Name Нет, он создается. При ошибке за­писи генерируется исключение

События

Никаких событий в классе TRegistry Не объявлено.

Примеры

Следующие операторы создают объект Reg типа TRegistry И создают в реестре ключ My Registry:

#include "registry. hpp";

TRegistry *Reg = new TRegistry;

Корневым и текущим ключом созданного объекта является HKEY_CUR — RENT_USER. Если надо работать с другим корнем, например, с HKEY_LOCAL_ MACHINE, это можно сделать оператором:

Reg->RootKey = HKEY_LOCAL_MACHINE;

Следующий оператор создает в реестре и открывает (делает текущим) ключ My Registry, являющийся субключом текущего ключа:

Reg->OpenKey("Му Registry",true) ;

Такой оператор создаст субключ корня, если есть уверенность, что в данный момент текущим является корневой ключ. Если такой уверенности нет, можно из­менить оператор следующим образом:

Reg->OpenKey("∖My Registry",true),-

В этом случае отсчет ведется от корня и My Registry будет создан как субключ корневого ключа.

Следующий оператор заносит в ключ My Registry параметр Version И его зна­чение — номер версии 1.0:

Reg->WriteString("Version" , "1.0");

Следующие операторы создают в текущем ключе (после выполнения предыду­щих операторов это ключ My Registry) субключ Font с параметром Name, в кото­ром сохраняется имя шрифта, используемого в форме Forml:

Reg->OpenKey( "Font" , true) ;

Reg->WriteString("Name",Forml->Font->Name);

Приведенный выше оператор, открывающий ключ, может быть заменен на следующий:

Reg->OpenKey("∖My Registry∖Font",true);

Следующий оператор удаляет ранее созданный субключ корня My Registry: Reg->DeleteKey("∖My Registry") ;

TRegistryIniFile — класс__________________________________________

Тип объекта, позволяющего работать с реестром Windows так, как с файлом

.INL

Иерархия TObiect TCustomIJiiFile

Модуль Registry.

Описание

Класс TRegistrylniFile Введен в C++Builder прежде всего, чтобы обеспечить наиболее простой переход от 16-разрядных приложений для Windows 3.x к прило­жениям Windows 95/NT и старше, а также от работы с файлами.[NI к работе с реестром. В приложениях для Windows 3.x регистрация приложения и сохране­ние его настроек осуществлялось с помощью файлов. INI. Для работы с этими фай­лами использовались объекты типа TIniFile. В 32-разрядных Windows для тех же целей используется системный реестр.

TRegistrylniFile Наследует свойства и методы класса TCustomlniFile, Которо­му наследует и TIniFile. Поэтому перейти в приложениях, работающих с файлами ■INI, к работе с реестром очень просто: достаточно заменить объект типа TIniFile Объектом типа TRegistrylniFile. При этом логика работы и все методы, использо­ванные в приложении, сохраняются прежними.

В конструктор объекта типа TRegistrylniFile Передается имя создаваемого ключа. Он создается как субключ системного ключа Hkey_Current_User. В после­дующих операторах чтения и записи на этот ключ следует ссылаться в параметре Section Просто пустой строкой. Если же в операторе записи указать другое значе­ние Section, То тем самым будет создан субключ того ключа, для которого созда­вался объект. Если В параметре Section перечислить несколько имен, разделяя их символом то будет создана цепочка вложенных друг в друга ключей.

Имеется еще один класс — TReglniFile. Который обеспечивает другой способ доступа к реестру. Но поскольку TReglniFile Наследует классу TRegistry, А не TCustomIniFile, То переход от работы с файлами TNI к работе с реестром при ис­пользовании TReglniFile Несколько менее формальный и простой. Впрочем, он от­крывает более широкие возможности использования реестра. Но полностью исполь­зовать все возможности реестра можно только с помощью объекта типа TRegistry.

Подробнее работа с реестром и файлами TNI описана в [1] и [3].

Свойства

Ниже приведены свойства класса TRegistryIniFile.

Свойство

Объявление / Описание

FileName

AnsiString FileName

Имя ключа системного реестра, который открывается или со­здается и является корневым для объекта TRegistrylniFile. Свойство только для чтения

RegIniFile

LJ

TReglniFile* ReglniFile

Это свойство используется только внутри объекта для создания интерфейса между методами TRegistrylniFile и реестром. Свой­ство только для чтения

Методы

Ниже приведен список основных методов, определенных в TRegistrylniFile.

Метод

Объявление / Описание

DeleteKey

Void DeleteKey(const AnsiString Section, const AnsiString Ident) Удаляет значение параметра Ident Ключа Section

EraseSection

Void EraseSection(const AnsiString Section)

Удаляет ключ Section Со всеми его субключами

‘ ReadBool

Bool ReadBool(const AnsiString Section, const AnsiString Ident, bool Default)

Возвращает булево значение параметра Ident Ключа Section. Default — значение по умолчанию, возвращаемое, если не на­шлось ключа, параметра или значения

ReadDate

SystemnTDateTime ReadDate(const AnsiString Section,

Const AnsiString Name, SystemnTDateTime Default)

Возвращает значение даты типа TDateTime Параметра Name Ключа Section. Default — значение по умолчанию, возвращае­мое, если не нашлось ключа, параметра или значения

I ReadDate

Time

SvstemnTDateTime ReadDateTime(const AnsiString Section,

Const : AnsiString Name, System:: TDateTime Default)

Возвращает значение даты и времени типа TDateTime Парамет­ра Name Ключа Section. Default — значение по умолчанию, возвращаемое, если не нашлось ключа, параметра или значения

ReadFloat

_____________

Double ReadFloat(const AnsiString Section,

Const AnsiString Name, double Default)

Возвращает действительное значение параметра Name Ключа Section. Default — значение по умолчанию, возвращаемое, если не нашлось ключа, параметра или значения

Метод

Объявление / Описание

ReadInteger

Int Readlnteger(const AnsiString Section,

Const AnsiString Ident, int Default)

Возвращает целое значение параметра Ident ключа Section. De­fault — значение по умолчанию, возвращаемое, если не на­шлось ключа, параметра или значения

_____________

ReadSection

Void ReadS ection(const AnsiString Section,

CIassesnTStrings* Strings)

Читает в Strings типа TStrings имена всех параметров ключа

Section

ReadSections

Void ReadSectionsiClassesnTStrings* Strings)

Читает в Strings типа TStrings имена всех ключей

ReadSection

Values

Void ReadSectionValues(const AnsiString Section, ClassesnTStrings* Strings)

Читает в Strings типа TStrings значения всех параметров клю­ча Section

ReadString

AnsiString ReadString(const AnsiString Section,

Const AnsiString Ident, const AnsiString Default)

Возвращает строку значения параметра Ident ключа Section. Default — значение по умолчанию, возвращаемое, если не на­шлось ключа, параметра или значения

ReadTime

SystemnTDateTime ReadTime(const AnsiString Section,

Const AnsiString Name, System: :TDateTime Default)

Возвращает значение времени типа TDateTime параметра Name ключа Section. Default — значение по умолчанию, возвращае­мое, если не нашлось ключа, параметра или значения

SectionExists

Bool SectionExists(const AnsiString Section)

Возвращает true, если в реестре существует ключ Section

TRegistryIni

File

TRegistryIniFile(const AnsiString FileName); TRegistryIniFile(const AnsiString FileName, long AAccess);

Конструкторы объекта, создающие внутренний компонент клас­са TRegIniFile. Параметр FileName задает имя, передаваемое в свойство FileName этого внутреннего компонента, a AAccess передается в его свойство Access

UpdateFile

Void UpdateFile(Void)

Очищает буфер и записывает файл на диск. Действует только на Windows 95, т. к. 32-разрядные Windows не используют буфер

ValueExists

Bool ValueExists(const AnsiString Section, const AnsiString Ident)

Возвращает true, если в реестре существует параметр Ident ключа Section

WriteBool

Void WriteBool(const AnsiString Section, const AnsiString Ident, bool Value)

Записывает булево значение Value в параметр Ident текущего ключа. Если параметр Ident не существует, он создается

—— ———— —

Метод

Объявление / Описание

WriteDate

Void WriteDate(const AnsiString Section,

Const AnsiString Name, System; :TDateTime Value)

Записывает значение даты Value Типа TDateTime В параметр Name Ключа Section. Если нужного параметра нет, он создается

WriteDate

Time

Void WriteDateTime(const AnsiString Section,

Const AnsiString Name, SystemziTDateTime Value)

Записывает значение даты и времени Value Типа TDateTime В параметр Name Ключа Section. Если параметра Name Нет, он создается

WriteFloat

Void WriteFloat(const AnsiString Section,

Const AnsiString Name, double Value)

Записывает действительное значение Value В параметр Name Ключа Section. Если параметра Name Нет, он создается

WriteInteger

Void WriteIntegericonst AnsiString Section,

Const AnsiString Ident, int Value)

Записывает целое значение Value В параметр Ident Ключа Secti­on. Если параметра Ident Нет, он создается

WriteString

Void WriteString(const AnsiString Section,

Const AnsiString Ident, const AnsiString Value)

Записывает строку Value В параметр Ident Ключа Section. Если параметра Ident Нет, он создается

J WriteTime

Void WriteTime(const AnsiString Section,

Const AnsiString Name, SystemnTDateTime Value)

Записывает значение времени Value Типа TDateTime В пара­метр Name. Если параметра Name Нет, он создается

События

Никаких событий в классе TRegistryIniFile не объявлено.

Примеры

Следующие операторы создают объект Reg типа TRegistrylniFile И создают в реестре субключ My Registry ключа HKEY_CURRENT_USER:

#include "registry. hpp";

TRegistrylniFile * Reg = new TRegistryIniFileCMy Registry")

Следующий оператор заносит в ключ My Registry параметр Version и его зна­чение — номер версии 1.0:

Reg->WriteString("","Version","1.0");

Следующий оператор создает в ключе ‘!У Registry субключ Font с параметром Name, в котором сохраняется имя шрифта, используемого в форме Form 1:

Reg->WriteString("Font" , "Font Name", Forml->Font->Name);

Следующий оператор удаляет в ключе My Registry параметр Version: Reg->DeleteKey("", "Version");

Следующий оператор удаляет ранее созданный ключ My Registry: Reg->EraseSection (’"’);

TShiftState — тип_________________________________________________

Определяет множество нажатых вспомогательных клавиш.

Заголовочный файл ClassesJipp.

Определение

Enum Classes___ 1 (ssShift, ssAlt, ssCtrl, ssLeft, ssRight,

SsMiddle, ssDouble};

Typedef Set<Classes____ 1, ssShift, ssDouble> TShiftState;

Описание

Тип TShiftState Используется в обработчиках различных событий, связанных нажатием пользователем клавиш или кнопок мыши. Множество может содержать следующие значения, определяющие нажатые и удерживаемые в данный момент вспомогательные клавиши клавиатуры и кнопки мыши:

FssShift

Нажата клавиша Shift

— ■-

SsAlt

Нажата клавиша Alt

SsCtrl

Нажата клавиша Ctrl

SsLeft

Нажата левая кнопка мыши

SsRight

Нажата правая кнопка мыши

SsMiddle

Нажата средняя кнопка мыши

SsDouble

Произведен двойной щелчок

TSQLTimeStamp — тип записи даты и времени

Тип записи, используемый драйверами dbExpress для работы с датами и вре­менем.

Заголовочный файл SqlTimStJipp.

Определение Struct TSQLTimeStamp {

Short Year;

Word Month;

Word Day;

Word Hour;

Word Minute;

Word Second; long Fractions;

} ■’

Описание

Тип TSQLTimeStamp Используют драйверы баз данных dbExpress для работы с датами и временем. Поле Year — год, который может принимать значения от 1 до 9999. Поле Month — месяц, от 1 до 12. Поле Day — день месяца (от 1 до 28, 29, 30 или 31 в зависимости от месяца). Поле Hour — час (от 0 до 23). Поля Minute И Second — минуты и секунды (от 0 до 59). Поле Fractions — миллисекунды (от О до 999).

Переменные типа TSQLTimeStamp Можно создавать нецосредственно, занося в их поля требуемые значения. Например:

#include <SqlTimSt. hpp>

TSQLTimeStamp TSQL;

TSQL-Year = 2002;

= 1;
1;
tsql-month
=

Можно для занесения значений использовать многочисленные функции пре­образования дат и времени. Например:

TSQL = DateTimeToSQLTimeStamp(NowO)

Можно также с помощью функции VarSQLTimeStampCreate Создавать объек­ты Variant, Содержащие записи типа TSQLTimeStamp. Это наиболее простой спо­соб манипулирования с записями типа TSQLTimeStamp, Поскольку при этом мож­но использовать встроенные операции Variant.

TStringFloatFormat — тип______________ _______ _________________

различные значения формата означают следующее:В ряде методов тип TStringFloatFormat Определяет формат представления чи­сел строкой.

Определение

Enurn TStringFloatFormat sffExponent, sfft’ixed,

SffNumber, SffCurrency);

Значение

Описание

SffGeneral

Значение преобразуется в наиболее компактное из двух форма­тов: с фиксированной точкой или научного формата. Младшие нулевые разряды усекаются. Десятичная точка появляется толь­ко при необходимости. Формат с фиксированной точкой исполь­зуется только при числе цифр целой части большем не больше указанной точности и при значениях не меньше 0.00001. В оста­льных случаях используется научный формат с минимальным числом цифр в степени порядка (от 0 до 4).

___________

SffExponent

Научный формат. Значение преобразуется в строку вида "-d. ddd…E+dddd". Символ записывается только для отрицатель­

Ных чисел. Перед десятичной точкой записывается всегда одна цифра. Общее число цифр (включая цифру Перед точкой) опреде­ляется заданной точностью. После символа ‘Е’ всегда ставится знак + или -. Число цифр в степени (порядок числа) лежит в пределах от 0 до 4.

SffFixed

Формат с фиксированной точкой. Значение преобразуется в стро­ку вида "-ddd. ddd…"∙ Символ записывается только для отрица­

Тельных чисел. Перед десятичной точкой записывается пот край­ней мере одна цифра. Число цифр поле точки определяется за­данным числом разрядов (от 0 до 18). Если число цифр слева от точки должно быть больше заданной точности, используется на­учный формат.

SffNumber

Числовой формат. Значение преобразуется в строку вида "-d, ddd, ddd. ddd…"∙ Совпадает с форматом SffFixed За исключением наличия разделителей после каждых трех разрядов в целой части.

SffCurrency

___________

Монетарный формат для представления чисел, отображающих де­нежные суммы. Определяется установками Windows (глобальными

Переменными CurrencyString, CurrencyFormat, NegCurrFormat, ThousandSeparator, DecimalSeparator). Число цифр после десяти­чной точки определяется заданным числом разрядов (от 0 до 18).

136Глава 1

Для всех форматов действительные символы, используемые в качестве деся­тичной точки и разделителя тысяч определяются глобальными переменными

Decimal Separator и ThousandSeparator.

TStringList — класс ______________________________________________

Список строк с расширенными возможностями манипулирования ими. Иерархия TObiect TPersistent TStrinss Модуль Classes.

Описание

Класс TStringList Наследует классу TStrings. Реализуя многие его абстракт­ные свойства и методы и вводя некоторые новые возможности:

• сортировку строк в списке

• запрещение хранения дубликатов строк

• реакцию на изменения содержания списка

Свойства

Ниже приведен список основных свойств, определенных в TStringList.

Свойство

Объявление / Описание

I Canacity

Int Capacity

Указывает число строк, которые может содержать список, позво­ляет заранее выделить память для добавления нескольких строк

CaseSensitive

Bool CaseSensitive

Устанавливает чувствительность или нечувствительность к ре­гистру при поиске, сортировке и т. п.

Count.

Int Count

Число строк в списке. Свойство только для чтения

Duplicates

Enum TDuplicates {duplgnore, DupAccept, dupError }; TDuplicates Duplicates;

Указывает, могут ли добавляться в сортированный список дуб­ликаты строк. Значение duplgnore — игнорирование добавле­ния дубликата, dupAccept — разрешение добавления дублика­та, dupError — генерация исключения EListError При попытке добавления дубликата строки. Значения dupAccept и dupError никак не реагируют на уже имеющиеся в списке дубликаты.

На несортированный список свойство Duplicates не оказывает никакого влияния

Objects

SystemzTObject* Objects[int Index]

Возвращает объект, связанный со строкой с индексом Index свойства Strings

Sorted

_____________

Bool Sorted

Указывает, должны ли строки в списке автоматически сортиро­ваться по алфавиту

Strings

AnsiString Stringsfint Index]

Текст строки с указанным индексом. Индекс первой строки — 0

Кроме того, TStringList наследует от TStrings такие свойства, как Comma — Text, DelimitedText, Delimiter, Names, StringsAdapter, QuoteChar, Text, Values.

Методы

В классе TStringList Объявлены или переопределены следующие Методы

Метод

Объявление / Описание

Add

Int Add(const AnsiString S)

Добавляет строку в конец списка. Возвращает индекс добавлен­ной строки. В окнах редактирования добавляемая строка может оказаться разбитой на несколько, так что в этих случаях возвра­щаемый индекс ни о чем не говорит

I Clear

Void Clear(void)

Очищает список

CustomSort

Typedef int (CALLBACK *TStringListSortCompare)

(TStringList* List, int Indexl, int Index2);

Fastcall CustomSort (TStringListSortCompare Compare)

Обеспечивает нестандартную сортировку списка с помощью функ­ции сравнения Compare

Delete

Void Delete(int Index)

Удаляет из списка строку с индексом Index

Exchange

Void Exchange(int Indexl, int Index2)

Переставляет местами строки списка с индексами Indexl и Index2

Find

Bool Find(const AnsiString S, int &Index)

Определяет, имеется ли заданная строка S в сортированном спис­ке, и, если имеется, то возвращает в параметр Index индекс этой строки. Для несортированных списков следует использовать ме­тод IndexOf

IndexOf

Int IndexOf(const AnsiString S)

Возвращает индекс указанной строки S. Если такой строки нет в списке, возвращается -1

Insert

Void Insert(int Index, const AnsiString S)

Вставляет указанную строку S в заданную позицию Index. Если Index = 0, строка вставляется на первую позицию

Sort

Void Sort(void)

Сортирует строки списка, свойство Sorted которого установлено в false, в возрастающей алфавитной последовательности. Если Sorted = true, то список сортируется автоматически

От класса TStrings наследуются методы AddObject, AddStrings, Append, Assign, BeginUpdate, EndUpdate, Equals, GetText, IndexOfObject,

InsertObject, LoadFromFile, LoadFromStream, Move, SaveToStream,

SetText. Кроме того, наследуется много методов от TObieet.

Примеры

// Создание экземпляра списка

TStringList * TL = new TStringList;

TL->Sorted = true; Il Список сортированный

TL-SDuplicates = dupError; // Запрет дубликатов

TL->Add("Петров"); _

Int i = TL->Add("Иванов"); // i=0, т. к. список сортированный

TL->Add("Иванов"); // Генерация исключения из-за дубликата

Оператор

Int i = TL->Add("Иванов") ;

Присваивает переменной i значение 0, поскольку список сортированный и фами­лия "Иванов" должна размещаться первой, раньше фамилии "Петров". Добавле­ние в сортированный список дубликата вызывает генерацию исключения и сооб­Щение: "String List Does Not Allow Dublicates".

TStrings — Класс

Абстрактный класс объектов, представляющих собой списки строк и исполь­зуемых во многих компонентах C++Builder в качестве различных свойств.

Иерархия TObzect TPersistent Модуль Classes.

Описание

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

• Добавлять и удалять строки в указанных позициях

• Перестраивать и упорядочивать последовательность строк

• Получать доступ к конкретным строкам

• Читать и записывать списки строк в файлы и потоки

• Связывать с каждой строкой некоторый объект

Свойства

Ниже приведен список свойств, определенных в TStrings.

Свойство

Объявление / Описание

Capacity

Int Capacity

Указывает число строк, которые может содержать список.

В классе TStrings чтение Capacity возвращает значение Co­unt, а запись значения Capacity ничего не изменяет в списке. Но в некоторых классах, производных от TStrings, свойство Capacity позволяет заранее выделить память для добавления нескольких строк

] CommaText

AnsiString CommaText

Возвращает текст, в котором отдельные строки объединены в одну строку формата SDF (system data format)

Count

Int Count

Число строк в списке. Свойство только для чтения

_______________

DelimitedText

AnsiString DelimitedText

Возвращает текст, в котором отдельные строки выделены ка­вычками, определенными свойством QuoteChar, И, отделены друг от друга символом, указанным в свойстве Delimiter

Delimiter

Char Delimiter

Разделитель, используемый в свойстве DelimitedText

I Свойство

Объявление / Описание

Names

AnsiString Names[int Index]

Применяется для списков, имеющих структуру "Имя = Значе­ние". Такую структуру имеют, например, файлы. ini. Свойство Names возвращает Имя, использованное в строке с указанным индексом. Если строка не имеет форму "Имя = Значение", воз­вращается пустая строка. Свойство только для чтения

Objects

SystemnTObject* Objects[int Index]

Возвращает объект, связанный с указанной строкой свойства Strings. В классе TStrings свойство Objects не используется, но может использоваться в некоторых классах, производных

От TStrings

OuoteChar

Char QuoteChar

Символ кавычек, используемый в свойстве DelimitedText■■

Strings

AnsiString Strings[int Index]

Текст строки с указанным индексом. Индекс первой стро­ки — О

StringsAdapter

_di_I S trings Adapter S trings Adapter

Реализует интерфейс IStrings, позволяющий объектам

TStrings связываться с объектами OLE

Text

AnsiString Text

Представляет весь список как одну строку, внутри которой используются разделители типа символов возврата каретки и перевода строки

Values

AnsiString ValuesrAnsiString Namel

Применяется для списков, имеющих структуру "Имя = Зна­чение". Такую структуру имеют, например, файлы .ini. Свой­ство Values возвращает Значение, в строке с указанным име­нем Name. Если заданное имя Name не найдено, возвращает­ся пустая строка. ∣

Методы

Ниже приведены основные методы, объявленные в классе TStrings.

Метод

Объявление / Описание

Add

Int Add(const AnsiString S)

Добавляет строку в конец списка. Возвращает индекс добав­ленной строки. В окнах редактирования добавляемая строка может оказаться разбитой на несколько, так что в этих случа­ях возвращаемый индекс ни о чем не говорит

1 AddObject

Int AddObject(const AnsiString S, SystemnTObject* AObject)

Добавляет в список строку и связанный с ней объект. Возвра­щает индекс добавленной строки и объекта

AddS trings

Void AddStrings(TStrings* Strings)

Добавляет в список группу строк из другого объекта Strings типа TStrings

I Метод

Объявление / Описание i,

Append

Void Append(const AnsiString S)

Добавляет строку в конец списка. Метод аналогичен Add, но не возвращает индекс строки

Assign

Void AssigntTPersistent* Source)

Переносит строки из указанного объекта в данный

BeginUpdate

Void BeginUpdate(Void)

Предотвращает перерисовку объекта до выполнения метода EndUpdate. Позволяет избежать мерцания при перестроении

Списка

Clear

Void Clear(void) = 0

Очищает список

1 Delete

Void Delete(int Index) = 0

Удаляет из списка указанную строку

EndUpdate

Void EndUpdate(void)

Завершает блокировку перерисовки объекта, заданную мето­дом BeginUpdate

Equals

Bool Equals(TStrings* Strings)

Сравнивает данный список с заданным списком Strings. Воз­вращает true при идентичности списков

Exchange

Void Exchange(int Indexl, int Index2)

Переставляет местами строки списка с индексами Indexl

И Index2

I GetText

Char * GetText(void)

Возвращает буфер, под который выделяет память, и заполня­ет его значением свойства Text

IndexOf

Int IndexOf(const AnsiString S)

Возвращает индекс указанной строки S. Если такой строки нет в списке, возвращается -1

IndexOfName

Int IndexOfName(const AnsiString Name)

Применяется для списков, имеющих структуру "Имя = Значе­ние". Такую структуру имеют, например, файлы .ini. Возвра­щается индекс строки, в которой имя равно заданному значе­нию Name. Если такой строки нет в списке, возвращается -1

IndexOfObject

Int IndexOfObiect(Svstem::TObiect* AObject)

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

Insert

Void Insert(int Index, const AnsiString S) = 0

Вставляет указанную строку S в заданную позицию Index.

Если Index = 0, строка вставляется на первую позицию

Метод

Объявление / Описание

InsertObject

Void Insertθbject(int Index, const AnsiString S, System::TObject* AObject)

Вставляет указанную строку S В заданную позицию Index И связывает с ней объект AObject. Если Index = 0, Строка вставляется на первую позицию

‘ LoadFromFile

Void LoadFromFile(const AnsiString FileName)

Заполняет список строками текста из указанного файла File­Name

LoadFrom

Stream

Void LoadFromStream(TStream* Stream)

Заполняет список строками текста из указанного потока Stream

Move

Void Move(int CurIndex, int NewIndex)

Изменяет позицию строки с индексом Curlndex, давая ей ин­декс Newlndex

SaveToFile

Void SaveToFiIe(const AnsiString FileName)

Сохраняет строки списка в файле с указанным именем File­Name

SaveToStream

Void SaveToStream(TStream* Stream)

Сохраняет значение свойства Text В указанном потоке Stream

SetText

LZ

Void SetText(char * Text)

Задает значение свойства Text

Кроме того, наследуется множество методов от класса TObject.

TSystemTime — тип записи даты и времени_________________________

Тип структуры, используемой в API Windows 32 для хранения данных о датах и времени.

Заголовочные файлы WiridowsJipp, winbase. h.

Определение

Typedef struct _SYSTEMTIME { WORDJwYear;

WORD WMonth;

WORD WDayOfWeek;

WORD

WORD

WORD wMinute;

WORD wSecond;

*lpsystemtimeWORD WMilliseconds;

} SYSTEMTIME,

Typedef _SYSTEMTIME *PSystemTime; typedef _SYSTEMTIME TSystemTime;

Описание

Тип структуры TSystemTime Используется в API Windows 32 для хранения дан­ных о датах и времени. Этот тип, а также тип указателя PSystemTime на эту структу­ру используется при вызове функций API Windows для представления в них значе­ния SYSTEMTIME. Для взаимного преобразования типов TSystemTime И TDateTime Используются функции DateTimeToSvstemTime И SvstemTimeToDateTime.

TTimeStamp — тип записи даты и времени__________________________

Тип структуры, используемой для хранения данных о датах и времени.

Заголовочный фай л SysUtils. hpp.

Определение Struct TTimeStamp {

Int Time; // Число миллисекунд с начала Дня Int Date; // 1 + Число дней с 1/1/0001

} !

Описание

Тип структуры TTimeStamp Используется в случаях, когда требуется повы­шенная точность отображения времени. Если не нужна точность на уровне милли­секунд, лучше использовать более компактный тип TDateTime. А если наоборот, требуется более высокая точность, то лучше использовать TSQLTimeStamp, Но без присваивания переменной Variant.

В записи TTimeStamp Поле Time Содержит число миллисекунд текущего дня, отсчитанное от полуночи, а поле Date Содержит число дней, отсчитанное с начала Григорианского календаря.

TWinControl — базовый класс оконных компонентов________________

Абстрактный базовый класс всех оконных компонентов.

Иерархия TObieCtTPersistentTComponentTControl

Модуль Controls.

Описание

Класс TWinControl Является базовым абстрактным классом для всех оконных компонентов Delphi, т. е. для компонентов, которые:

• Могут получать фокус во время выполнения приложения. Другие компоненты могут отображать данные, но пользователь не может общаться с компонентом с помощью клавиатуры, если это не оконный компонент.

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

• Имеют дескрипторы окна.

Новые компоненты редко создаются непосредственно на основе TWinControl. Обычно они основываются на производных классах, таких, как TCustomControl, Имеющий канву и обработку сообщений прорисовки, или на более специализиро­ванных классах типа TButtonControl, TCustomComboBox, TCustomEdit Или TCits — TomListBox.

Свойства

Ниже приведен список основных свойств, определенных или переопределен­ных в TWinControl. Некоторые методы, используемые в основном при разработке сложных новых классов, в него не включены.

Свойство

Объявление / Описание

BevelEdges

Enum TBevelEdge { BeLef t, BeTop, beRight, beBottom } ; typedef Set<TBevelEdge, beLeft, BeBottom> TBevelEdges; TBevelEdges BevelEdges

Определяет, какая граница компонента будет иметь обрам­ление. Является множеством, которое может содержать be — Left — левая, ЬеТор — верхняя, beRight — правая, beBot­tom — нижняя

BevelInner

Enum TBevelCut { BvNone, BvLowered, bvRaised, bvSpace }; TBevelCut Bevellnner

Определяет выпуклый (bvRaised), утопленный (bvLowered) или плоский (bvSpace) вид внутренней части компонента

BevelKind

Enum TBevelKind { bkNone, bkTile, bkSoft, bkFlat }; TBevelKind BevelKind

Определяет в комбинации с BevelWidth, Bevellnner и Beve- lOuter тип обрамления компонента

BevelOuter

Enum TBevelCut { BvNone, BvLowered, bvRaised, bvSpace }; TBevelCut BevelOuter

Определяет выпуклый (bvRaised), утопленный (bvLowered) или плоский (bvSpace) вид обрамления компонента

BevelWidth

Typedef unsigned TBevelWidth;

TBevelWidth BevelWidth

Определяет ширину обрамления компонента в пикселах

BorderWidth

Typedef unsigned TBorderWidth;

TBorderWidth BorderWidth

Определяет ширину бордюра компонента в пикселах

Brush

Graphics::TBrush* Brush

Определяет цвет и стиль заполнения фона окна. Свойство только для чтения

CIientOrigin

TypesuTPoint ClientOrigin

Экранные координаты левого верхнего угла клиентской об­ласти компонента. Свойство только для чтения

ClientRect

Types::TRect ClientRect

Содержит размер клиентской области компонента. Свойство только для чтения

ControlCount

Int ControlCount

Число дочерних компонентов данного оконного элемента. Свойство только для чтения

Controls

TControl* Controlslint Indexl

Массив дочерних компонентов оконного элемента. Свойство только для чтения

CtI3D

Bool Ctl3D

Определяет, будет ли компонент выглядеть объемным или

Плоским _____________________________________

Свойство

Объявление / Описание

DockClientCount

Int DockClientCount

Число компонентов, встроенных в данное окно

DockClients

TControl* DockClientsIint Indexl

Массив компонентов, встроенных в данное окно

DockManager

_di_IDockManager DockManager

Указывает на интерфейс диспетчера встраивания, который управляет процессами Drag&Doc. Диспетчер создается мето­дом CreateDockManager. DockManager быть NULL, если DockSite или UseDockManager равно false

DockSite

Bool DockSite

Определяет, может ли компонент быть приемником в опера­циях Drag&Doc

DoubleBuffered

Bool DoubleBuffered

Определяет, будет ли изображение компонента рисоваться непосредственно в окне (при DoubleBuffered = false), или сначала заноситься в битовую матрицу в памяти. Последнее уменьшает эффекты мерцания при перерисовке изображе­ния, но требует дополнительных затрат памяти

Handle

H

HWND Handle

Дескриптор оконного элемента, используемый при вызове функций API Windows. Свойство только для чтения

ImeMode

TImeMode ImeMode

Определяет режим работы входного редактора метода

ImE — (input method editor). IME — внешний входной про­цессор для Азиатских языковых символов IME — иерогли­фов, преобразующий их в код, пригодный для использова­ния в приложениях C++Builder

ImeName

AnsiString ImeName

Указывает входной редактор метода (IME) для преобразова­ния данных, вводимых с клавиатуры в Азиатские языковые символы. IMe — внешний входной процессор для Азиатских языковых символов. Значение ImeName определяет, какой

IME используется для преобразования нажатий клавиши.

IME перехватывает нажатия клавиш клавиатуры, преобразу­ет их в Азиатские символы в конверсионном окне и посылает преобразованные символы в приложения C++Builder

ParentCtl3D

Bool ParentCtl3D

Управляет наследованием родительского свойства Ctl3D

ParentWindow

HWND ParentWindow

Дескриптор родительского окна, не являющегося визуальным компонентом, например TActiveXControl. Если свойство Pa­rent не NULL, то значение ParentWindow игнорируется

Showing

Bool Showing

Определяет, виден ли компонент в данный момент. Свойство только для чтения

Свойство

Объявление / Описание

TabOrder

Typedef short TTabOrder;

TTabOrder TabOrder

Указывает позицию компонента в последовательности табу­ляции

FTabStop

Bool TabStop

Определяет, может ли пользователь перевести фокус на ком­понент клавишей табуляции

UseDockManager

Bool UseDockManager

Указывает, используется ли диспетчер встраивания DockMa- Nager В процессе Drag&Doc J

VisibleDock

ClientCount

Int VisibleDockCIientCount

Число видимых компонентов, встроенных в данное окно

WindowHandle

HWND WindowHandle

То же, что Handle, но это свойство можно читать и изменять

Класс TWinControi Наследует также много свойств своих предшественников TControl И TComponent.

Методы

Ниже приведены основные методы, наследуемые от TWinControl И используе­мые в компонентах — потомках этого класса.

Метод

Объявление / Описание

Broadcast

Void Broadcast(void. *Message)

Посылает сообщение Message всем своим дочерним компо­нентам

CanFocus

Bool CanFocus(void)

Определяет, может ли компонент получать фокус, т. е. полу­чать сообщения пользователя

CanResize

Bool CanResize(int &NewWidth, int &NewHeight)

Задает новые значения ширины и высоты компонента Ne — wHeight и New Width и генерирует событие OnCanResize, в обработчике которого эти значения могут быть скорректи­рованы

ChangeScale

Void ChangeScale(int M, int D)

Изменяет масштаб компонента и его дочерних компонентов

Constrained

Resize

Void ConstrainedResize(int & MinWidth, Int ⅛MinHeight, Int &MaxWidth, Int &MaxHeight)

Вызывается автоматически для генерации события OnConst — rainedResize, в которое передаются новые ограничения ши­рины и высоты компонента

ContainsControl

Bool ContainsControl(TControl* Control)

Определяет, является ли указанный компонент Control пря­мым или косвенным наследником данного оконного элемента

Метод

Объявление / Описание

ControlAtPos

TControl* Control AtPos( const Tvnes-TPoint &Pos,

Bool AllowDisabled, bool AllowWinControIs = false)

Возвращает дочерний компонент, находящийся в указанной позиции Pos

DisableAlign

Void DisableAlign(Void)

Временно запрещает выравнивание компонентов в оконном элементе

DockDrop

Void DoekDrop(TDragDockObject* Source, int X, Int Y) Генерирует событие OnDockDrop

EnableAlign

Void EnableAlign(Void)

Отменяет действие предварительно вызванного метода Disab — leAlign И вызывает Realign Для выравнивания компонентов

FindChildControl

TControl* FindchildControKconst AnsiString ControlName) Возвращает дочерний компонент, указанный его именем ControlName

FindN extControl

TWinControl* fastcall FindNextControl(

TWinControl* CurControl, bool GoForward, bool CheckTabStop, bool CheckParent)

Возвращает очередной оконный компонент в последователь­ности табуляции

Focused

Bool Focused(void)

Определяет, находится ли оконный элемент в фокусе

GetTabOrderList

Void GetTabOrderList(CIasses::TList* List)

Строит список дочерних компонентов в последовательности табуляции

HandleAllocated

Bool HandleAllocated(void)

Проверяет наличие дескриптора окна компонента,

HandleNeeded

Void HandleNeeded(void)

Создает дескриптор окна, если он до этого не существовал

Invalidate

Void Invalidate(void)

Сообщает о необходимости перерисовки компонентов

PaintTo

Void PaintTo(HDC DC, int X, Int Y)

Рисует компонент в заданное устройство DC

Realign

Void Realign(void)

Выравнивает компоненты в оконном элементе

RenioveControl

Void RemoveControKTControl* AControl)

Удаляет указанный компонент из списка Controls. Лучше использовать для этих целей само свойство Controls

Repaint

Void Repaint(void)

Перерисовывает изображение компонента на экране с помо­Щью Invalidate

Метод

Объявление / Описание

ScaleBy

Void ScaleBy(int M, int D)

Масштабирует оконный элемент и все содержащиеся в нем компоненты в М / D раз

ScaleControls

Void ScaleControls(int M, int D)

Изменяет масштаб компонентов в оконном элемент в M / D раз, не изменяя масштаба самого оконного элемента

ScrollBv

Void ScrollBylint DeltaX, int DeltaY)

Сдвигает содержимое оконного элемента

SelectFirst

Void SelectFirst(Void)

Передает фокус дочернему компоненту, первому в последо­вательности табуляции

SelectNext

Void SelectNextlTWinControl* CurControl, bool GoForward, Bool CheckTabStop)

Передает фокус компоненту, следующему или предыдущему в последовательности табуляции

SetBounds

Void SetBounds(int ALeft, Int ATop, Int AWidth, Int AHeight)

Задает координаты и размеры элемента

SetChildOrder

Void SetchildordertciassesuTComponent* Child, int Order)

Изменяет позицию компонента в списке дочерних компонен­тов

SetFocus

Void SetFocus(void)

Передает фокус элементу (активизирует его)

SetZOrder

Void SetZOrder(bool TopMost)

Перемещает компонент на верх или в низ Z-последователь­ности

Update

Void Update(void)

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

Помимо перечисленных методов имеется еще немало методов, наследуемых от

TCoNtrol.

События

Событие

Описание

OnEnter

Событие при получении элементом фокуса

OnExit

Событие при потере элементом фокуса

——————————————————— ■

OnKeyDown

Событие при нажатии любой клавиши или кнопки мыши

OnKevPress

Событие при нажатии клавиши символа

OnKeyUp

Событие при отпускании клавиши

WM _ USER — константа __________ ____________ _________________

Константа используется приложениями для определения своих частных сооб­щений.

Описание

Константа WM_USER Используется для разграничения номеров сообщений, резервированных для Windows, и частных сообщений оконных компонентов. Все возможные номера сообщений разделены на пять диапазонов:

От 0 до WM^USER — 1

Номера сообщений, используемые Windows

От WM USEli До 0x7FFF

Номера частных сообщений внутри данного класса оконных компонентов

От 0x8000 до OxBFFF

Номера, зарезервированные для будущего использо­вания в Windows

От ОхСООО до OxFFFF

Номера, соответствующие строкам сообщений, испо­льзуемым для обмена между приложениями и заре­гистрированным функцией RegisterWindowMessage

Свыше OxFFFF

___________

Номера, зарезервированные для будущего использо­вания в Windows

Номера второго диапазона от WM_USER До 0x7FFF Могут использоваться для определения и посылки сообщений внутри данного класса оконных компонентов. Их нельзя использовать для определения сообщений, предназначенных для обме­на между приложениями, поскольку некоторые предопределенные классы окон­ных компонентов (например, TButton, TEdit, TListBox И TComboBox) Уже исполь­зуют этот диапазон. Сообщения другим приложениям в этом диапазоне могут по­сылаться только в случае, если приложения спроектированы с учетом обмена дан­ными сообщениями и одинаково понимают номера этих сообщений.

Глава 2

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *