C++ Builder - вопросы программирования

Энциклопедия C++ Builder

Новейшая система объектно-ориентированного программирования C++ Builder производства корпорации Borland предназначена для операционных систем Windows 95 и NT. Интегрированная среда C++ Builder обеспечивает скорость визуальной разработки, продуктивность повторно используемых компонент в сочетании с мощью языковых средств C++, усовершенствованными инструментами и разномасштабными средствами доступа к базам данных.
C++ Builder может быть использован везде, где требуется дополнить существующие приложения расширенным стандартом языка C++, повысить быстродействие и придать пользовательскому интерфейсу качества профессионального уровня.

Объектно-ориентированное программирование и C++
Объект - это абстрактная сущность, наделенная характеристиками объектов окружающего нас реального мира. Создание объектов и манипулирование ими - это вовсе не привилегия языка C++, а скорее результат методологии программирования, воплощающей в кодовых конструкциях описания объектов и операции над ними. Каждый объект программы, как и любой реальный объект, отличается собственными атрибутами и характерным поведением. Объекты можно классифицировать по разным категориям: например, мои цифровые наручные часы

Использование и создание визуальных компонент
Многие свойства видимых компонент (например. Left, Width, Top, Height) относятся к родительским элементам управления. Другие свойства (например, ParentColor и ParentFont) позволяют потомкам использовать свойства родителей. К оконным компонентам относятся такие видимые элементы, как TEdit, TListBox и TMemo. Чтобы отобразить оконную компоненту, ей надо присвоить родителя, ответственного за отображение. Это присваивание выполняется автоматически на стадии проектирования, когда вы перетаскиваете нужную компоненту из Палитры компонент на форму.

C++ Builder - вопросы программирования

Интерес к программированию постоянно растет. Это связано с развитием и внедрением в повседневную жизнь информационных технологий. Если человек имеет дело с компьютером, то рано или поздно у него возникает желание, а иногда и необходимость, научиться программировать. Среди пользователей персональных компьютеров в настоящее время наиболее популярна операционная система Windows, и естественно, что тот, кто хочет программировать, хочет и писать программы, которые будут работать в Windows.
Несколько лет назад рядовому программисту оставалось только мечтать о создании своих собственных программ, работающих в Windows. Единственным средством разработки был Borland C++ for Windows, явно ориентированный на профессионалов, обладающих серьезными знаниями и опытом. Бурное развитие вычислительной техники, потребность в эффективных средствах разработки программного обеспечения привели к появлению на рынке целого ряда систем программирования, ориентированных на так называемую "быструю разработку", среди которых особо следует отметить Microsoft Visual Basic и Borland Delphi. В основе систем быстрой разработки (RAD-систем, Rapid Application Development — среда быстрой разработки приложений) лежит технология визуального проектирования и событийного программирования, суть которой заключается в том, что среда разработки берет на себя большую часть работы по генерации кода программы, оставляя программисту работу по конструированию диалоговых окон и написанию функций обработки событий. Производительность программиста при использовании RAD систем фантастическая!
Успех и популярность Delphi вызвал желание фирмы Borland распространить методы быстрой разработки на область профессионального программирования, что и привело к появлению Borland C++ Builder.


Введение
C++ Builder — это среда быстрой разработки, в которой в качестве языка программирования используется язык C++ Builder (C++ Builder Language). Не вдаваясь в подробности, можно сказать, что язык C++ Builder — это расширенный C++. Например, в C++ Builder есть строковый (AnsiString) и логический (bool) типы, которых нет в классическом C++.
В настоящее время программистам стала доступна очередная, шестая версия пакета — Borland C++ Builder 6. Как и предыдущие версии, Borland C++ Builder 6 позволяет создавать различные программы: от простейших однооконных приложений до программ управления распределенными базами.
Borland C++ Builder может работать в среде операционных систем от Windows 98 до Windows XP. Особых требований, по современным меркам, к ресурсам компьютера пакет не предъявляет: процессор должен быть типа Pentium или Celeron (рекомендуется Pentium II 400 МГц); объем оперативной памяти должен составлять не менее 128 Мбайт (рекомендуется 256 Мбайт) и свободное дисковое пространство должно быть достаточным (для полной установки версии Enterprise необходимо приблизительно 750 Мбайт).

Начало работы
Запускается C++ Builder обычным образом, т. е. выбором из меню Borland C++Builder 6 команды C++Builder 6

Демонстрация возможностей C++ Builder
Для демонстрации возможностей C++ Builder и технологии визуального проектирования и событийного программирования займемся разработкой программы, используя которую можно вычислить силу тока в электрической цепи. Сила тока вычисляется по известной формуле: I = U/R, где U — напряжение источника (вольт); R — величина сопротивления (Ом). Вид диалогового окна программы во время ее работы (после щелчка на кнопке Вычислить)

Работа с графикой
C++ Builder позволяет программисту разрабатывать программы, которые работают с графикой. В этой главе рассказывается, что надо сделать, чтобы на поверхности формы появилась картинка, сформированная из графических примитивов, или иллюстрация, созданная в графическом редакторе или полученная в результате сканирования фотографии

Компонент Animate
Большинство современных программ, работающих в среде Windows, являются мультимедийными. Такие программы обеспечивают просмотр видеороликов и мультипликации, воспроизведение музыки, речи, звуковых эффектов. Типичные примеры мультимедийных программ — игры и обучающие программы

База данных и СУБД
С точки зрения пользователя, база данных — это программа, которая обеспечивает работу с информацией. При запуске такой программы на экране, как правило, появляется таблица, просматривая которую можно найти нужные сведения. Если система позволяет, то пользователь может внести изменения в базу данных, например, добавить новую информацию или удалить ненужную.

Выбор базового класса
Приступая к разработке нового компонента, следует четко сформулировать назначение компонента. Затем необходимо определить, какой из компонентов C++ Builder наиболее близок по своему назначению, виду и функциональным возможностям к компоненту, который разрабатывается. Именно этот компонент следует выбрать в качестве базового

Ввод/вывод
еред тем как приступить к созданию консольного приложения, рассмотрим функции, обеспечивающие вывод на экран и ввод с клавиатуры. Наиболее универсальными функциями, обеспечивающими вывод и ввод информации в консольных приложениях, являются функции printf и scanf. Для того чтобы программа могла их использовать, в начало программы надо включить директиву #include stdio.h.

Создание справочной системы
Каждая программа должна обеспечивать пользователя справочной информацией. Существует два способа отображения справочной информации: классический и современный, в "интернет-стиле". Классический способ отображения справочной информации применяется большинством приложений, в том числе и C++ Builder.

Программа InstallShield Express
Одним из популярных инструментов создания инсталляционных программ является пакет InstallShield Express. Borland настоятельно рекомендует использовать именно эту программу, поэтому она есть на установочном диске C++ Builder.

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

Приложение
Приложение представляет собой краткий справочник по компонентам и функциям C++ Builder. В этом разделе приведено краткое описание базовых компонентов C++ Builder. Подробное описание этих и других компонентов можно найти в справочной системе.

Описание функций Си

Функция Вставляет значение литерала непосредственно в код.
Синтаксис #include
void __emit__(argument,...);
Файл, содержащий dos.h прототип
Описание Функция __emit__ позволяет вам вставить значение литерала непосредственно в объектный код, как если бы он был откомпилирован. Она используется для генерирования машинных инструкций без использования встроенных операторов ассемблера.
Обычно аргументы __emit__ вызывают однобайтовые машинные команды. Однако возможности данной функции позволяют строить более сложные команды, вплоть до ссылок на переменные Си.

Emit
Количество байт, помещаемых в объектный код, опре- деляется типом аргумента, за исключением следующих случаев: - знаковая целая константа (например 0х90) значе- ние которой лежит в диапазоне от 0 до 255 рассмат- ривается как символ. - Когда используется адрес автоматической переменной или параметра, то если смещение переменной в BP лежит в диапазоне от -128 до 127 то записывается байт, иначе слово.

Abort
Описание Данная функция выводит сообщение о прекращении работы ("Abnormal program termination") в stderr, и прерывает программу посредством вызова функции _exit с кодом завершения 3. Возвращаемое Возвращает код завершения 3 в родительский процесс значение или в DOS. Переносимость Поддерживается в системах UNIX и определена в ANSI C.

Bar
Описание bar рисует двухмерный заполненный прямоугольник. Прямоугольник зарисовывается, используя текущий цвет и шаблон заполнения. bar не рисует контур прямоугольника; для того, чтобы нарисовать контур двухмерного прямоугольника, используйте функцию bar3d, с параметром depth равным 0.

Cabs
При использовании С++, можно воспользоваться ти- пом complex, определенном в файле complex.h, и функцией abs. Возвращаемое cabs возвращает абсолютное значение z типа double. значение При переполнении cabs возвращает HUGE_VAL и устанавливет errno в ERANGE - Результат превышает допустимые пределы.

Daylight
Функция Определяет, должна ли производиться установка летнего времени. Синтаксис extern int daylight; Объявлено в time.h Описание daylight используется функциями времени и даты. Устанавливается функциями tzset, ftime, localtime в "1" для летнего времени, "0" для стандартного времени.

Ecvt
Функция ecvt конвертирует значение value в строку с нулевым окончанием из ndig цифр и возвращает адресный указатель строки. Позиция десятичной точки относительно начала строки косвенным образом хранится в параметре decpt (отрицательное значение decpt означает левый отсчет полученных цифр). В самой строке десятичной точки нет.Если знак результата отрицательный, слово, на которое указывает адресный указатель sign, не равно 0, иначе оно равно 0. Младшие разряды округляются.

Fabs
Функция Возвращает абсолютное значение числа с плавающей точкой. Синтаксис #include double fabs(double x); Файл, содержащий math.h прототип. Описание fabs вычисляет абсолютное значение х и возвращает его как double. Возвращаемое fabs возвращает абсолютное значение х. значение



Gcvt
Описание - gcvt преобразует value в строку символов в коде ASCII, ограниченную нулем, и запоминает строку в buf. Если возможно, то она получает ndig значащих цифр в формате F Фортрана. В противном случае строка будет в формате E функции printf (ее сразу же можно печатать). Она может подавлять задние нули.

Harderr
Функция harderr устанавливает подпрограмму обработки сбоев электронного оборудования для текущей программы. Данная подпрограмма вызывается к работе, как только возникнет прерывание 0x24. (см. документ "Справочное руководство программиста для DOS"). При появлении данного прерывыания происходит вызов функции handler.

Imag
Комплексное число состоит из двух чисел с плавающей точкой. imag возвращает одно из них, мнимую часть. Возвращаемое Мнимая часть комплексного числа. значение Переносимость Комплексные функции требуют С++ и поэтому непере- носимы.

Kbhit
Функция kbhit проверяет, была ли нажата какая-либо клавиша клавиатуры. Нажатая клавиша может быть определена с помощью функций getch или getche. Возвращаемое Если какая-либо клавиша была нажата, функция значение kbhit возвращает ненулевое значение, если нет, она возвращает 0.

Labs
Функция Возвращает абсолютное значение длинного целого числа. Синтаксис #include long int labs(long int x); Файл, содержащий math.h, stdlib.h прототип. Описание labs вычисляет абсолютное значение параметра х. Возвращаемое Возвращает абсолютное значение х. Переносимость labs доступна в системах UNIX и поддерживается стандартом ANSI C.

Malloc
Функция обеспечивают выделение блока памяти, размером size байт.Она позволяет программе выделять память по необходимости и столько, сколько нужно. Динамическая область памяти доступна для динамического размещения блоков памяти переменной длины. Многие структуры данных, такие как "деревья" или "списки" - естественным образом используют динамическое распределение памяти.

Norm
При использовании norm может произойти переполнение, если действительная или мнимая часть будут слишком большими. Возвращаемое norm(x) возвращает real(x)*real(x)+imag(x)*imag(x). значение Переносимость Комплексные функции требуют С++ и поэтому непереносимы.

Open
Функция open открывает файл, имя которого определено параметром filename, и подготавливает его к последующим операциям чтения и/или записи, в зависимости от параметра access. Для создания файла в обычном режиме, вы можете присвоить соответствующее значение _fmode, или при открытии файла указать опции O_CREAT и O_TRUNC связанные операцией побитового логического сложения (OR) с необходимым режимом передачи.

Parsfnm
Функция parsfnm выделяет из строки символов (обычно командной строки) с адресным указателем cmdline имя файла. Имя файла помещается в блок FCB как имя устройства, имя файла и расширение имени файла. Указателем на блок FCB является указатель fcbptr. Параметр opt представляет собой значение, передаваемое в регистре AL, при вызове соответствующей функции DOS, выделяющий имя файла. Смотрите "Справочное руководство программиста по DOS", в котором вы можете найти подробное описание системного вызова 0x29, выполняющего вышеописанные действия.

Qsort
Функция qsort применяет алгоритм быстрой сортировки "средний из трех". Функция qsort сортирует содержимое таблицы постоянно вызывая функцию сравнения, определяемой пользователем и адресуемой с помощью указателя fcmp. - base адресует базу (нулевой элемент) сортируемой таблицы. - nelem - число элементов таблицы; - width - размер каждого элемента таблицы в байтах.

Raise
Описание - raise посылает сигнал sig программе. Если программа загрузила процедуру обработки сигнала, для сигнала sig, то запускается данная процедура. Если процедуры обработки для данного сигнала нет, то производятся действия, определенные для данного сигнала по умолчанию.

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

Tan
Файл, содержащий Вещественная версия Комплексная версия прототип math.h complex.h Описание tan вычисляет тангенс. Углы определяются в радианах. Обработка ошибок для данной функции может быть модифицирована посредством функции matherr. Коплексный тангенс определен следующим образом: tan(z)=sin(z)/cos(z) Возвращаемое Функция tan возвращает тангенс x, sin(x)/cos(x).

Ultoa
Описание - utoa преобразует value в строку, заканчивающуюсю нулевым символом и помещает результат в string. value имеет тип unsigned long. radix определяет основание, которое будет использовано в конвертируемом значении; оно должно быть заключено между 2 и 36.ultoa не обеспечивает проверку переполнения и если значение отрицательно и radix равно 10, это не устанавливает отрицательный знак.

Va_arg
Некоторые СИ-функции, такие как vfprintf и vprintf, принимают переменный список аргументов, в отличие от функций, имеющих фиксированное число аргументов. Макрокоманды семейства va_... обеспечивают простой путь доступа к данным спискам аргументов. Они используются для перебора аргументов в том случае, когда вызываемая функция не сообщает номер и тип передаваемого аргумента. В за- головочном файле stdarg.h объявлен один тип переменного списка аргументов (va_list), и три макро- команды (va_start, va_arg, va_end).

Wherex
Описание wherex возвращает координату X текущей позиции курсора (внутри текущего текстового окна). Возвращаемое wherex возвращает целое число от 1 до 80. значение Переносимость wherex действительна только для IBM PC и совмес- тимых с ней. Аналогичная функция существует в Turbo Pascal.