Главная » C++ Builder

Вторая стадия: добавление в базу данных – приложение просмотра классов в CBuilder

Добавлено Дата: 25 June, 2013 категория: C++, C++ Builder

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

Читать »

Работа с векторами (массивами) STL

Добавлено Дата: 25 June, 2013 категория: C++, C++ Builder

В библиотеке STL массивы переменной длины представлены классом vector, который предоставляет доступ к элементам любого типа (правда, только к одному типу в одном объекте vector) последовательно или случайным доступом. Такие объекты используются в вашем приложении всюду, где бы вы обычно писали объявления массива элементов этого типа. Например, если бы вам нужно было хранить 100 целых чисел, то в вашей программе могло бы быть такое выражение:

Читать »

Я хочу сделать это сам! БД в CBuilder

Добавлено Дата: 25 June, 2013 категория: C++, C++ Builder

У меня две маленькие дочки, и они часто заявляют, что хотят сделать что-нибудь сами, несмотря на то, что мне кажется, что у них это не получится. И что же — я постоянно не угадываю, и они справляются лучше, чем справился бы я сам. Мне кажется, таков уж  удел  родителей.  Фирма Borland столкнулась с такой же проблемой, когда ее программисты стали писать объекты VCL для работы с базами данных. Многие программисты напоминают моих дочерей в своем нежелании допустить, чтобы VCL делала всю работу по изменению, записи и удалению в базах данных посредством объекта DBNavigator. Они предпочитают сами проделать всю работу по перезаписи базы данных при добавлении, изменении или удалении. CBuilder позволяет вам делать собственноручно все, что вы сами пожелаете.

Читать »

Оператор using

Добавлено Дата: 25 June, 2013 категория: C++, C++ Builder

 

Оператор using в C++ убирает необходимость употреблять имя области namespace в данном блоке кода. Например, если у вас есть несколько классов, определенных  в области namespace std, то выражение

using namespace std;

позволяет вам обращаться к любому классу в этой области без указания  модификатора  std::. Однако такое изменение отразится также на всех других классах и областях namespace в системе. Предположим, что в нашем прошлом примере областей fred и george вы бы написали:

Читать »

Что такое Grep в CBuilder?

Добавлено Дата: 25 June, 2013 категория: C++, C++ Builder

Одна из самых полезных вспомогательных программ в поставке Borland CBuilder — GREP.EXE. Grep — это «Generalized Regular Expression Parser» (основная программа разбора регулярных выражений). Программа grep была стандартной в системе Unix в течение многих лет, а затем была переписана для DOS и Windows. Проще говоря, grep — инструмент поиска, она  умеет просматривать текстовые (и не только текстовые) файлы и искать в них строки, подходящие под заданный образец. Основные альтернативы утилите grep — программа Norton Text Search или команда Find в Windows Explorer. Ни одна из них, однако, не сравнится с grep мощью и гибкостью.

Читать »

Программа поиска в потоке CBuilder

Добавлено Дата: 23 June, 2013 категория: C++, C++ Builder

В нашем втором примере работы с потоками мы собираемся написать программу поиска, использующую потоки. Она позволит искать заданную строку в заданном каталоге. Также мы предоставим возможность выбрать маску файлов (например, все исходные файлы *.cpp), по которым будет происходить поиск. Когда будет нажата кнопка Начать  поиск,  форма  запустит поток, который станет искать файлы в заданном каталоге, которые содержат нужную строку, и выводить имена файлов в окно списка, находящееся в главной форме.

Читать »

Программа Database Desktop в CBuilder

Добавлено Дата: 22 June, 2013 категория: C++, C++ Builder

Снова и снова вам придется тестировать ваш код на тестовой базе данных, в то время как счастливые дизайнеры работают над «формальным» оформлением.  Database  Desktop  (рабочий стол баз данных) — наиболее удобный инструмент для разработки новых баз  данных, тестирования запросов, написания выражений SQL и просмотра данных, вводимых в систему.

Читать »

Пример программы просмотра полей базы данных в CBuilder

Добавлено Дата: 21 June, 2013 категория: C++, C++ Builder

 

Для того чтобы создать программу просмотра полей базы данных, вы должны кое-что узнать о внутреннем устройстве баз данных. Для этого вам понадобится база данных, с которой вы могли бы работать. В нашем примере мы предоставим пользователю возможность выбрать базу данных с диска. В данном случае мы наложим ограничение на тип базы данных — это будет dBase, так что вам не придется волноваться по поводу установленных драйверов ODBC, но все будет работать точно так же и для любого другого типа баз данных из числа поддерживаемых CBuilder.

Читать »

Сами рисуем свое меню C++ Builder

Добавлено Дата: 21 June, 2013 категория: C++, C++ Builder

Чуть ранее мы обсудили списки, прорисовываемые их владельцем. Такие списки позволяли вам отображать в качестве элемента списка все, что захотите (текст, графику, цвета, шрифты). Наверное, вы уже обратили внимание на то, что меню похоже на список. Оба эти объекта позволяют отображать некий список элементов. В этом они очень схожи. Еще они схожи в следующем: и тот, и другой позволяют отображать элементы списка в каком угодно формате. С этой точки зрения, меню даже лучше списков. Меню, как мы увидим в этом примере, позволяет вам отображать только те элементы, которые вы действительно хотите отобразить, и даже позволяет во время исполнения выбирать — осуществляет ли меню отображение того или иного элемента в каком-то своем формате, или нет. Итак, в этом примере мы рассмотрим некоторые возможности отображения элементов меню в CBuilder, а также возможности изменения их поведения в соответствии с целями и задачами вашего приложения.

Читать »

Реализация карт сообщений C++ Builder

Добавлено Дата: 19 June, 2013 категория: C++, C++ Builder

На рис. 4.9 представлена форма, которая покажет мощь системы карт сообщений в CBuilder. Для создания этой формы добавьте панель состояния в верхнюю часть формы, установив свойство Alignment (выравнивание) панели состояния в alTop. Это заставит  панель  состояния  «отъесть» часть пространства формы и урежет клиентскую область формы. Это необходимо, так как если мы разместим панель состояния внизу, то при  вертикальной прокрутке формы (чем мы собираемся заниматься) панель состояния будет находится на дне виртуальной формы, то  есть  довольно далеко. Сейчас панель состояния будет видна всегда, и ее можно использовать для отображения информации о текущем состоянии формы.

Читать »

Общие вопросы программирования CBuilder (FAQ)

Добавлено Дата: 19 June, 2013 категория: C++, C++ Builder

Что такое «Compiler Error #1» и как мне от нее избавиться?

Ошибка компилятора №1 (Compiler Error #1) может быть вызвана различными причинами. Как правило, вы сможете избавиться от нее, закрыв CBuilder, а затем запустив вновь и загрузив свой проект при помощи команды File ä Reopen. Если это не поможет, вам придется разобраться в том, что же происходит на самом деле. Перейдите в окно DOS, запустите программу make, задав ей в качестве параметра make-файл вашего проекта; изучите выдаваемые ошибки и исправьте их.

Читать »

Взглянем на файл описания формы (DFM) C++ Builder

Добавлено Дата: 19 June, 2013 категория: C++, C++ Builder

Для того  чтобы  просмотреть файл описания формы, вы должны открыть его в среде CBuilder. Ничего необычного в этом нет. Файл DFM вы открываете так же, как открыли бы исходный, заголовочный или вообще любой текстовый файл. Щелкните кнопку Open File (открыть файл) на панели инструментов и выберите файлы DFM в выпадающем комбинированном списке фильтра файлов по расширению. Выберите файл Unit1.dfm из отображенного списка файлов (вообще-то он должен быть там единственным, но в зависимости от того, как много вы успели написать приложений, их может быть и больше). Выделите файл и нажмите кнопку OK. Сразу же произойдут два события. Во-первых, исходный и заголовочный  файлы  пропадут  из  окна редактора. Во-вторых, в окне редактора отобразится файл DFM в виде простого текстового файла. Вот что вы там увидите, если правильно выполнили все мои указания:

Читать »

Компонент AngleText (повернутый текст) в CBuilder

Добавлено Дата: 19 June, 2013 категория: C++, C++ Builder

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

Читать »

Зачем нам нужно переустанавливать элементы списка?

Добавлено Дата: 18 June, 2013 категория: C++, C++ Builder

Вы могли бы подумать, что нам достаточно сообщить списку, что его изображение устарело и тогда он сам перерисуется, и вы были бы правы. Проблема в том, что список Windows слишком умен. Как только элемент занесен в список и установлена его высота, эта информация сохраняется в самом списке. Список не изменит эту информацию, даже если его очень хорошо об этом попросить. В результате, когда пользователь выбирает новый шрифт для списка, высота которого отличается от старого, список, не зная об этом, не станет перестраивать элементы. Изменения происходят один раз: когда элемент добавляется в список. Мы используем факт, что список перетряхнет себя при добавлении элементов. Мы будем просто убирать все существующие элементы в списке, переустанавливать шрифт и измерять высоту элементов, уже используя новый шрифт. Такой подход, однако, подразумевает знание того, что за элементы в списке и какие атрибуты с ними ассоциированы.

Читать »

Формы и события C++ Builder

Добавлено Дата: 18 June, 2013 категория: C++, C++ Builder

Форма — это наиболее существенный самостоятельный компонент системы CBuilder. Это  тот объект, с которым, скорее всего, будет взаимодействовать пользователь.

В большинстве примеров программ на CBuilder форма используется как вместилище для других компонентов.    В    этой    главе    мы     рассмотрим     форму     как     собственно     компонент. Что такое форма? Конечно, это просто окно. Как и все окна, она может иметь дочерние управляющие элементы, такие как панели задач, меню и панели состояния. Формы, как и окна, имеют собственные определенные уникальные свойства, такие как заголовки, системные меню, кнопки минимизации и максимизации, закрывающие кнопки, рамку изменяемого (или не изменяемого) размера и другие  изящные штучки. Давайте прервемся  на минуту и взглянем на форму и те ее части, которые CBuilder позволит нам изменять.

Читать »