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

Файлы помощи и проблемы в CBuilder (FAQ)

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

Почему при нажатии F1 я получаю пустое окно сообщения?

Вам надо скачать обновленные файлы помощи с Web-сайта фирмы Borland. Адрес, по которому это можно сделать: http://www.borland.com/techpubs/bcppbuilde.

Почему нет помощи по TStringGrid?

Читать »

Создание полоски прогресса C++ Builder

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

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

Читать »

Добавление статического текста C++ Builder

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

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

Читать »

Scribble, часть вторая C++ Builder

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

Несмотря  на то  что  только  что  завершенная нами  программа Scribble выполняет  все,  для  чего предназначалась, делает она это не вполне корректно. На данном этапе мы не собираемся сделать

ее идеальной, но над улучшениями поработаем. Чтобы понять, в чем, собственно, проблема, запустите Scribble и при помощи мыши нарисуйте что-нибудь на пустом поле его окна (я обычно рисую что-то отдаленно напоминающее квадрат). Теперь минимизируйте окно программы, нажав кнопку минимизации (или выбрав команду минимизации из системного меню). Теперь, щелкнув на иконке программы на панели инструментов Windows 95 или NT, раскройте окно опять в полноразмерное состояние. И угадайте, что вы увидите — да-да, пустое поле окна. Что же случилось?

Читать »

Базы данных в CBuilder (FAQ)

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

Почему на файле Btrieve я получаю сообщение «Record/Key Deleted»?

Это как правило может быть вызвано двумя причинами<$FBtrieve – это тип базы данных, используемый, например, в системе Novell Netware. — Примеч. перев.>. Во-первых, вы могли включить в свои строки NULL (символы с кодом 0). Btrieve подразумевает, что BDE передает ему строки, в которых в качестве заполнителя используется пробел. Во-вторых, причиной может служить запись с неуникальным индексом. Когда вы добавляете  запись  в  таблицу, индексированные поля проверяются на допустимость значений. Так что убедитесь, что данные индекса корректны.

Читать »

Процесс разработки компонентов в CBuilder

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

Создание компонентов требует специального процесса. Этот процесс не является специфическим для какого-либо компонента, необходим он не только для создания компонентов для коммерческого использования, но степень проработки  каждого шага этого процесса может варьироваться в зависимости от универсальности разрабатываемого  компонента  и  степени важности защиты системы от сбоя компонента. Ниже приведен общий план этого процесса; чуть позже мы подробно остановимся на каждом пункте:

Читать »

Обзор BDE

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

Следующая часть нашего обзора инструментов относится к BDE, то есть Borland Database Engine (универсальная машина баз данных), которая представляет собой интерфейс со многими стандартными базами данных. BDE умеет напрямую работать с базами данных dBase и Paradox, а также  Interbase. Кроме того, в некоторых версиях поставки CBuilder (Professional и выше)  BDE

Читать »

Реализация круглой кнопки в CBuilder

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

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

В процессе изменения образа кнопки есть два шага и используются две функции API. Первый шаг — создание образа (shape), который будет  потом  применен  к кнопке. Можете считать, что на этом шаге мы делаем заготовку из теста. Вы делаете заготовку, а затем раскатываете ее и придаете ей форму (ну, например, у моих детей получается в таком случае наполовину съеденная заготовка, но это отдельный рассказ). Второй шаг — «раскатать» заготовку на   окне.   Первый   шаг   реализуется   с   помощью   функции   API   CreateEllipticRgn   (создать эллиптическую область). Эта функция — вариант функции CreatePolygonRgn (создать многоугольную область). На самом деле функций, создающих области, мало: CreateRectRgn, CreateEllipticRgn, CreateRoundRectRgn и CreatePolygonRgn. Каждая из них, как вы  можете узнать из файла Win32SDK.hlp, создает свой тип отображаемой области. Если вы хотите получить хитрую область, то можете вызвать несколько этих функций для создания нескольких областей, а затем скомбинировать их функцией API CombineRgn. Это позволит вам, например, создать область в виде бублика. Когда вы создали область, вы применяете ее  к  окну  («раскатываете тесто»), используя функцию SetWindowRgn.

Читать »

Создание базы данных на пустом месте

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

После того как вы разобрались, как связаны поля в базе данных, логично было бы научиться объединять поля в базу данных, не так ли? Конечно, именно этого вы и добиваетесь. В конце концов, все, что вам надо сделать, — это выбрать каталог базы данных, установить корректное имя, добавить несколько полей и установить свойство Active в true, правда? Действительно, вы не так далеки от правды. Наверняка случится ситуация, когда вам понадобится создавать базу данных в соответствии с требованиями пользователя, которые нельзя узнать заранее. Отлов ошибок, проверка баз данных и другие типы приложений требуют от вас предоставления пользователю права определять базы данных в том виде, в котором они должны фигурировать в приложении, вместо того вида, который постулировал какой-то программист (или, не дай Бог, проектировщик баз данных). Конечно, вам по-прежнему придется позже писать код для загрузки полей с данными, но, по крайней мере, сам процесс создания CBuilder может сделать молниеносным.

Читать »

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

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

Без сомнения, вы теперь захотите использовать в своих приложениях MFC все те развитые возможности работы с базами данных, которые могут предоставить объекты VCL. В последнем примере взаимодействия MFC и VCL мы посмотрим, как превратить предыдущий пример в приложение-записную книжку, использующую базу данных для хранения информации, введенной пользователем.

Читать »

Реализация меню в форме C++ Builder

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

Когда мы все добавили и проинициализировали, время вернуться к началам. Выберите главное меню формы и добавьте в него два пункта. Первы пункт должен иметь заголовок «Change &Font» («Изменить Шрифт»). Этот пункт будет использован для вызова окна диалога шрифтов и получения  нового  шрифта  от  пользователя.  Второй  пункт  должен  иметь  заголовок  «Change

Читать »

Круглое окно в CBuilder

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

Последний пример, который мы рассмотрим в этой главе, наиболее ярко иллюстрирует необходимость использования  Windows  API.  Возможность поддерживать непрямоугольные  окна

— одна из самых приятных вещей, добавленных в Windows API в Windows 95 и NT. В предыдущих версиях операционной системы Windows было невозможно сделать по-настоящему непрямоугольное окно, хотя вы могли нарисовать окно, выглядящее овальным или круглым, но реально область окна все равно оставалась прямоугольной.

Читать »

Использование форм Delphi в CBuilder

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

Когда был выпущен Visual C++ 4.0, фирма Microsoft громко рекламировала возможность прямого импорта форм Visual Basic. Через несколько месяцев она перестала ее рекламировать, а еще через некоторое время вообще перестала упоминать о ней. Это произошло не потому, что импорт не работал, он работал и весьма неплохо. И не потому, что существовали ограничения на импорт (не вполне адекватно воспринимался код Visual Basic, если воспринимался вообще). Не работало само преобразование. Язык Visual C++ использовал архитектуру просмотра документов, основанную на использовании MDI или SDI форм с меню и панелями состояния, а в Visual Basic, так же как и в Delphi, как и в CBuilder, применяется основанная на формах архитектура с независимыми окнами форм. Программисты на Visual C++ (и я в их числе) просто не могли заставить две столь разные концепции работать вместе.

Читать »

Приложение OnlyOnce CBuilder

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

На рис. 9.1 представлена форма, которую мы будем использовать для приложения OnlyOnce (ТолькоРаз). Как видите, ничего особенного на форме нет; на ней находится единственная метка статического текста, говорящая пользователю не запускать вторую копию. Хорошо запомните эту форму, так как больше мы на нее смотреть не будем.

Читать »

Рисуем элементы C++ Builder

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

Наконец-то настало время заняться самой прорисовкой элементов на экране. Как вы помните, мы добавляли метод DrawItem как обработчик события DrawItem в списке для  этой  работы.  Сам список не волнует, что вы рисуете и как вы это делаете. Вместо этого список занимается управлением выборкой элементов,  связью  определенных  пользователем  (программистом) объектов с элементами списка и обработкой выбора с помощью клавиатуры от конечного пользователя. С точки зрения программирования под Windows список является замечательным примером объектно-ориентированного дизайна системы.

Читать »