Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика первый курс / ЛИТЕРАТУРА / Builder для начинающих.doc
Скачиваний:
286
Добавлен:
27.03.2015
Размер:
3.96 Mб
Скачать

Borland C++ Builder 6 для начинающих

УСТАНОВКА

Вместо предлагаемого для установки каталога с длинным названием C:\Program Files\ Borland C++ Builder 6\ рекомендую создать каталог с коротким названием С:\СВ6\ и установить пакет именно в него. При запросе на установку специального пакета СОRВА для базы данных можно снять галочку установки.

НАЧАЛО

Для начала работы в среде Borland C++ Builder 6.0 нам понадобится только один файл C:CB6\Bin\bcb.exe. Я советую поместить значок (ярлык) этой программы на рабочий стол

После запуска программы на экране монитора появится окно, изображенное на рис. 1, которое демонстрирует процесс загрузки:  

Рис.1

Это окно может отображаться несколько секунд, пока программа загружается. После загрузки программы это окно сменяется новыми окнами. Все эти окна представляют собой интерфейс программы Borland C++ Builder 6.0, который изображен на рис. 2.  Рис.2

 

 

Этот интерфейс называется средой быстрой разработки приложений RAD (Rapid Application Development). Такое название этот интерфейс получил за то, что создание программы в нем сводится в основном к простому конструированию окна будущей программы из готовых кубиков, а большую часть стандартных и рутинных операций за человека выполняет компьютер. Например, компьютер создает автоматически заготовку текста программы для функций обработки событий. В верхнем окне интерфейса программы расположена строка заголовка C++ Builder 6-Projectl. Она отражает название всего программного пакета и имя нового проекта. Проектом называется вся группа файлов, которые необходимы для создания конечной исполняемой программы. Так, например, в состав проекта могут включаться файлы с текстами программ, файл ресурсов с рисунками курсоров и иконок (значков), звуковые файлы и т. п.

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

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

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

В левой нижней части экрана располагается инспектор объектов Object Inspector. В этом окне производится настройка основных свойств визуальных компонентов. Расположение окна инспектора объектов в программе не фиксировано и при желании его можно переместить в ту часть рабочей области программы, которая для вас наиболее удобна. Для этого необходимо нажать левую кнопку мыши на строке заголовка окна и, удерживая ее, переместить окно.

Над окном инспектора объектов расположено окно просмотра объектов Object Tree View. Оно отображает в виде дерева всю структуру проекта, состоящего из форм, кодов (текстов) программ и других ресурсов (файлов). Справа от инспектора объектов располагается окно дизайнера форм (окон будущей программы). Это окно содержит строку заголовка, в котором отображается название формы Forml (созданное по умолчанию) и кнопки управления окном. Над ним располагается окно редактора кода Unitl.cpp, (также созданное по умолчанию) в котором производится набор и редактирование кода программы. Советую вам некоторое время самостоятельно познакомиться с этим интерфейсом для того, чтобы вы привыкли к нему и появились вопросы, на которые хочется получить ответы. Ведь только интерес порождает процесс изучения. Данный интерфейс будет нашим самым главным инструментом при создании программ. ПЕРВАЯ ПРОГРАММА

Думаю, многим читателям уже не терпится написать первую программу под Windows. Пожалуйста, нет ничего проще. Фактически она уже написана, и сделал это за вас RAD- интерфейс. Выполните команду Run из главного меню Run или щелкните левой кнопкой мышки по зеленой кнопкестрелке на панели быстрых кнопок или просто нажмите клавишу F9 на клавиатуре. После этого произойдет компиляция проекта (преобразование программы в машинный код, понятный компьютеру) с отображением на экране окна, подобного изображенному на рис. 3, и программа запустится.

рис.3 На экране появится изображение пустого окна вашей первой программы (рис. 4).  

рис.4  

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

Итак, мы создали новую программу, не написав при этом ни строчки кода! Какая же польза от такой программы? Что она умеет делать? Пока не очень много, но кое-что все же умеет. Во-первых, мы получили полноценное оконное приложение, которое работает в операционной системе Windows. Во-вторых, это приложение имеет интерфейс Windows и привычные стандартные органы управления, расположенные справа вверху. Вы можете сворачивать данное приложение и разворачивать его на весь экран, изменять размеры окна программы и перемещать его с помощью мышки. А мы с вами создали такую программу в считанные секунды. Конечно же, это заслуга RAD интерфейса. Именно благодаря такому интерфейсу нам удалось создать приложение так быстро и легко. Это одно из его замечательных свойств, поэтому он и получил очень большое распространение и признание во всем мире.

Обратите внимание, что приложение имеет имя Project 1.

Теперь перед нами встают вопросы, как сделать наше приложение полезным, изменить его название и значок и т. д. Очень хорошо, что эти вопросы появились. Они пробуждают в нас интерес и жажду к знаниям - основной источник прогресса. Остановим работу нашей программы, щелкнув левой клавишей мышки по крестику в верхней правой части ее окна и продолжим обучение. Теперь рассмотрим более подробно каждое из описанных выше окон интерфейса и других органов управления пакета Borland C++ Builder 6.0. ГЛАВНОЕ МЕНЮ

Главное меню предоставляет доступ к основным командам программы Borland C++ Builder 6.0, объединенным в группы. Первая группа меню под названием File (Файл) изображена на рис. 5.

Рис.5  

Команды этого меню осуществляют работу с файлами и предоставляют доступ к операциям создания (New) новых форм (окон) и приложений, открытия (Open), сохранения (Save) и закрытия (Close) файлов и проектов, печати текстов программ (Print) и добавления заголовков модулей (Include), т. е. файлов с расширением h. Обратите внимание на то, что перед некоторыми командами этого и последующих меню находятся значки-иконки. Эти же значки изображены на кнопках быстрого запуска, что позволяет без труда понять их назначение. Кроме того, справа от некоторых команд меню написано соответствие команд горячим клавишам, т. е. клавишам, с помощью которых вызывается данная команда. Еще правее этих надписей кое-где имеются треугольные стрелки, которые говорят о том, что данная команда имеет расширенные возможности, которые становятся доступными после наведения на эту стрелку курсора мышки. Вторая по порядку группа команд меню называется Edit (Редакторова-ние), она изображена на рис. 6.

Рис.6  

В этом меню собраны команды редактирования, такие как отмена (Undelete) и повторение (Redo) операций, вырезание (Cut), копирование (Сору) вставка (Paste) и удаление (Delete), команды выделения всего текста (Select All), выравнивания компонентов (Align) и настройки редактора кода (текста программы). Следующая группа команд Search (Поиск) изображена на рис. 7.

Рис.7  

Команды данного меню позволяют осуществить поиск текста в файле, продолжить поиск после запуска программы, произвести автоматическую замену, быстро перейти к строке кода, задав ее номер. Группа команд View (Вид) изображена на рис. 8.

Рис.8  

Из этого пункта меню вызываются основные диалоговые окна управления проектом и компонентами, такие как менеджер проектов Project Manager, список компонентов Component List и список окон Windows List Также из этого пункта меню открываются все окна отладки программ Debug Windows, работу с которыми мы рассмотрим позже. Группа команд Project (Проект) приведена на рис. 9.

 Рис.9  

В этом меню собраны команды управления проектом. С их помощью можно добавлять и удалять модули (файлы с текстами программ), добавить библиотеку компонентов VCL, откомпилировать проект и так далее. Группа команд Run (Выполнить) изображена на рис. 10.

Рис.10  

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

Рис.11

Из этого меню вызываются команды добавления в систему новых компонентов и конфигурации их палитры.

Рис.12

Группа Database (База данных) представлена на рис. 12, она содержит команды для работы с базами данных. Изучение компонентов этой группы не входит в содержание данной статьи ввиду большого объема. Группа Tools (Инструменты) изображена на рис. 13.

Рис.13

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

Рис.14

Группа Windows приведена на рис. 14. С помощью команд данного меню производится управление окнами интерфейса. Замыкает главное меню группа команд Help, представленная на рис. 15.

Рис.15

В нее включены команды, с помощью которых можно получить справку как о языке C++, так и о работе с пакетом Borland C++ Builder 6 и всеми его компонентами. Выбрав в данном меню команду About, вы увидите сведения о данном пакете и некоторые сведения о вашем компьютере. Это окно изображено на рис. 16.

Рис.16

БЫСТРЫЕ КНОПКИБыстрые кнопки расположены под главным меню (рис. 2). С их помощью осуществляется быстрый доступ к основным и часто используемым командам главного меню. Все эти кнопки имеют вплывающие меню, появляющиеся при наведении на них курсора мыши, и горячие клавиши, показываемые в скобках. Все быстрые кнопки также, как и главное меню, разделены на группы. Кнопки Standard (Стандартные) позволяют создавать новые объекты программы. Для этого необходимо нажать кнопку New. При этом появится диалоговое окно New Items, в котором можно выбрать необходимый для создания программы объект. Также кнопки этой группы позволяют сохранять (Save) и открывать (Open) как отдельные файлы, так и целые проекты. Замыкают группу две кнопки управления проектами, с помощью которых можно добавлять файлы к проекту (Add File To Project) и удалять их из него (Remove File From Project). Кнопки View (Вид). В эту группу собраны кнопки, управляющие просмотром форм и модулей, а также кнопка создания новой формы. Для создания новой формы необходимо нажать кнопку New Form. При этом появится новое окно дизайнера форм в заголовке, в котором будет отображаться название новой формы Form2. Для переключения между формой и редактором кода служит кнопка Toggle Form Unit (F12). Если в вашей программе используется несколько форм, то с помощью кнопки View Form (Shift+F12) вы можете выбрать форму для просмотра. Кнопки Debug (Отладка). В этой группе собраны кнопки для отладки программы. Кнопка Run (F9) запускает проект на выполнение. Кнопка Pause позволяет приостановить выполнение проекта. С помощью кнопок Trace Into (F7) и Step over (F8) задается запуск программ в пошаговом режиме для детальной отладки программы. Положение кнопок быстрого доступа в среде разработки не фиксировано и их можно разместить на главной панели по своему усмотрению. Для этого необходимо подвести курсор к левому краю группы кнопок и, нажав и удерживая левую кнопку мыши, переместить группу на новое место. Если группа вынесена за пределы главной панели, ей отводится отдельное окно. Кроме того, нажав правую кнопку мыши на панели быстрых кнопок, можно открыть окно для настройки отображения любой группы кнопок на главной панели системы.Продолжение следует...

Программирование: Borland C++ Builder 6 для начинающих (статья вторая) НаписалMACTEPв 18.9.2008 0:20:00 (3875 прочтений)

Borland C++ Builder 6 для начинающих (статья вторая)

Статья  123456

ПАЛИТРА VCL-КОМПОНЕНТОВ

Разработка программ на Borland C++ Builder построена на основе выбора необходимых VCL-компонентов и расположения их на поле форм (окон будущей программы). Компоненты, таким образом, служат кирпичиками, из которых строятся программы. Кстати, слово Builder в переводе на русский язык означает «строитель». Все компоненты VCL располагаются на палитре, расположенной ниже и правее главного меню. Палитра состоит из закладок. Закладки позволяют разделить большое число компонентов на группы, близкие по назначению. Щелкая левой клавишей мыши по закладкам, можно выбрать необходимую группу компонентов, которая при этом будет отображаться на экране. Например, после щелчка мышью по закладке «стандарт» на экране появятся компоненты, изображенные на рис. 1.  

Рис.1  

Среди них легко заметить компоненты-кнопки Button с названием Ok и этикетки Label с названием А. С назначением этих и других компонентов мы познакомимся позже. Все компоненты некоторых групп могут не уместиться на экране. Для их просмотра существуют кнопки прокрутки в виде треугольных стрелок слева и справа от компонентов. Нажимая на эти кнопки мышью можно сдвигать все компоненты группы влево или вправо. Все компоненты видны на экране в виде иконок. При наведении на них курсора с помощью мыши эти иконки приподнимаются как кнопки, а иод курсором появляется строка с надписью, отображающей название данного компонента. Любой из компонентов можно поместить па форму двумя способами. Первый способ заключается в двойном щелчке левой клавишей мыши по самому компоненту. При этом компонент появится на форме строю по центру. После этого его можно переместить с помощью мыши в любую часть формы, изменить размеры так же, как это делается с окнами программ. Второй способ заключается в том, что сначала производится один щелчок левой клавишей мыши по компоненту, а затем в нужном месте формы. При этом можно сразу задать расположение компонента на форме и его размеры, для чего необходимо перед щелчком на форме выбрать место расположения левого верхнего угла компонента и щелкнуть мышью в этом месте. Не отпуская кнопки необходимо продвинуть указатель мыши на место, выбранное для правого нижнего угла компонента, и отпустить кнопку мыши. Во время такой операции ниже указателя мыши будет высвечиваться окно с координатами курсора для справки о его местоположении в сетке координат формы. Удаление компонента с формы производится клавишей клавиатуры Delete после его выделения щелчком левой кнопки мыши. Палитру компонентов можно совсем убрать с экрана, как и другие элементы главной панели интерфейса. Для этого необходимо нажать правую кнопку мыши на панели главного меню или быстрых кнопок и в открывшемся контекстном меню (рис. 2) убрать галочку напротив наименования Component_palette (палитра компонентов) щелчком левой кнопки мыши.  

Рис.2  

Положение палитры компонентов на главной панели интерфейса Borland C++ Builder нефиксированное и ее можно разместить по своему усмотрению. Для этого необходимо подвести курсор к левому краю палитры» нажать левую кнопку мыши и, удерживая ее, переместить палитру на новое место. Если группа вынесена за пределы главной панели, ей отводится отдельное окно. Для доступа к дополнительным командам и настройке палитры компонентов необходимо нажать правую кнопку мыши на поле палитры. При этом на экране появится окно контекстного меню команд палитры (рис. 3).  

Рис.3  

В этом окне содержатся команды быстрого перехода к любой закладке Tabs, показа подсказки Show Hints, скрытия палитры Hide, вызова справки Help и изменения настроек Properties. После щелчка левой кнопкой мыши по команде настроек Properties откроется окно настроек палитры компонентов (рис. 4).  

Рис.4  

В этом окне можно настроить каждую из закладок палитры и всю палитру в целом. С помощью команды Rename... можно переименовать любую из закладок. Команда Add... позволяет добавить новую закладку, а команда Delete удалить любую закладку. Для того чтобы, например, закладка System следовала сразу за закладкой Standard, необходимо выделить строку System, щелкнув по ней левой кнопкой мыши и с помощью кнопки Move Up (двигать вверх) переместить строку вверх до строки Standard, после чего нажать кнопку Ок. Теперь закладка System на палитре компонентов будет располагаться сразу же за закладкой Standard. Аналогично можно перемещать сами компоненты внутри закладки с помощью кнопок Move Up и Move Down (двигать вниз) или скрыть с помощью кнопки Hide. Предварительно перемещаемый компонент необходимо выделить щелчком левой кнопки мыши.

ДИЗАЙНЕР ФОРМ

Для размещения визуальных компонентов на окне будущей программы и изменения размеров самого окна служит дизайнер форм. Строка заголовка будущего окна находится в верхней части дизайнера форм. Правее заголовка расположены стандартные кнопки свертывания, разворачивания и закрытия окна. Остальная область дизайнера форм покрыта сеткой привязки в виде точек, которая служит для облегчения визуального выравнивания компонентов. При перемещении компонентов на окне дизайнера форм с помощью мыши изменение положения компонентов происходит дискретно с шагом сетки. Этот шаг можно изменить, вызвав из главного меню Tools команду Environment Option... (рис. 5).  

Рис.5  

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

Рис.6  

Шаг сетки в пикселях но горизонтали и вертикали задается с помощью изменения величины параметров сетки X и Y. Кроме того, сетку можно совсем отключить, сняв галочку в иоле Display grid. Для перемещения компонентов на форме без привязки к сетке необходимо снять галочку в строчке Snap to grid. Все эти элементы размещены в группе Grid options. Соседняя группа Options объединяет в себе элементы управления показом заголовка компонента Show component captions, подсказки Show designer hints и расширенного управления подсказок Show extended control hints. Ниже расположена группа Module creation options. Эта группа содержит элемент управления New form as text, который определяет, что сохранять файл описания формы необходимо как текст или как двоичный файл. Второй элемент управления этой группы Auto create forms & data modules показывает, что новые формы будут автоматически созданы. Перемещать компоненты по окну формы без привязки к сетке можно также с помощью клавиш курсора, удерживая при этом нажатой клавишу Ctrl. С помощью этих же клавиш можно изменить размеры компонента, удерживая нажатой клавишу Shift Предварительно компонент необходимо выделить, щелкнув по нему левой клавишей мыши. Для практики разместите на поле формы два компонента кнопок Button и один компонент этикетки Label, после чего измените их местоположение, размеры компонентов и самой формы по примеру на рис. 7.  

Рис.7  

Удалите эти компоненты с формы с помощью клавиши Delete. РЕДАКТОР КОДАДля создания, просмотра и редактирования текста программ служит редактор кода. Внешний вид окна редактора кода представлен на рис. 8.

Рис.8  

В среде разработки Borland C++ Builder файл с текстами программ (кодовая часть) и файл заголовков с описаниями функций и переменных (интерфейсная часть) принято называть модулями. Каждый модуль состоит из двух частей. Кодовая часть хранится в файле с расширением «срр» (сокращение от C++), а интерфейсная — в файле с расширением «h». Таких модулей в программе может быть несколько в зависимости от числа форм (окон) в программе и ее сложности. По умолчанию файлам модулей даются названия Unitl, Unit2 и т. д., которые могут быть изменены разработчиком программы при создании и сохранении проекта. Названия этих файлов видны на соответствующих закладках (рис. 8) внизу окна. Щелкая левой кнопкой мыши по этим закладкам, можно выбрать файл для редактирования. Кроме того, для каждого модуля предусмотрена страница Diagram, которая позволяет строить диаграммы, показывающие взаимосвязи компонентов всей программы. Набор текста программ, их просмотр и редактирование производится в центральном окне редактора кода. Левее этого окна находится поле для установки закладок и точек останова при отладке программы. Редактор кода можно настроить по своему вкусу. Для этого необходимо щелкнуть правой кнопкой мыши правее названия файла в верхней части окна, после чего откроется окно команд, приведенное на рис. 9.  

Рис.9  

В этом окне появляется доступ к командам открытия файла исходных кодов или файла заголовков Open Source/Header File, закрытия страницы Close Page, открытия нового окна редактирования New Edit Window, выбора редактируемой страницы Pages, установки атрибута только чтения Read Only, открытия окна сообщений Message View и настройки свойств Properties редактора кода. Выбрав команду Properties щелчком левой кнопки мыши, мы можем открыть окно настройки редактора кодов (рис. 10).  

Рис.10  

Это окно содержит несколько закладок. В первой из них — General — производится настройка режимов форматирования текста и схема раскладки клавиатуры. Если выбрать закладку Display, откроется окно, приведенное на рис. 11.  

Рис.11  

В этой закладке устанавливается форма курсора, ширина нолей отступа и подшивки и шрифт редактора. Закладка Key Mappings (рис. 12) позволяет определить действующие наборы раскладок клавиатуры.  

Рис.12 Рис.13

Закладка Colors (рис. 13) содержит параметры, управляющие цветом и типом шрифта для выделения синтаксических конструкций языка про граммировапия C++.  

Рис.14

Закладка Code Insight (рис. 14) содержит параметры, управляющие суфлером (подсказчиком) кода и настройкой шаблонов кода. Продолжение следует...

Программирование: Borland C++ Builder 6 для начинающих (статья третья) НаписалMACTEPв 20.9.2008 12:40:00 (4648 прочтений)

Borland C++ Builder 6 для начинающих (статья третья)

Статья  123456

 

 

 

 

ИНСПЕКТОР ОБЪЕКТОВИнспектор объектов предназначен для редактирования свойств объектов (форм и визуальных компонентов) во время разработки программы. С его помощью можно установить начальные свойства объектов и назначить обрабатываемые события. Рассмотрим окно инспектора объектов (рис. 1).

Рис.1  

В верхней части окна инспектора находится поле выбора объектов, в котором отображается название выбранного объекта. Для выбора нового объекта необходимо открыть автоматически раскрывающийся выпадающий список щелчком левой кнопки мыши по кнопке со стрелкой, затем выбрать необходимый объект из списка. После этого можно редактировать аюйства выбранного объекта. Второй способ выбора объекта заключаегся в том, что производится щелчок левой кнопкой мыши по самому объекту. Третий способ выбора объекта состоит в том, что производится щелчок левой кнопкой мыши по названию объекта в окне просмотра дерева объектов Object Tree View (рис. 2).  

Рис.2  

Ниже поля выбора объектов находятся кнопки закладок свойств Properties и событий Events. На закладке Properties располагаются все нескрытые свойства выбранною объекта. Закладка состоит из двух полей. В левом поле отображается название свойств, а в правом — их значение. Свойства могут быть вложенными с обозначением в виде плюса в квадратике левее названия свойства. Для их раскрытия и редактирования необходимо щелкнуть левой кнопкой мыши по этому значку» а затем по самому свойству. Если свойств много, их можно просматривать с помощью кнопки прокрутки. Например, свойство Caption отражает заголовок объекта, а свойство Name — имя объекта. На закладке Events располагаются события, на которые может реагировать объект. Эта закладка позволяет связать объект с событиями, происходящими в момент выполнения программы. Закладка Events так же разделена на два поля. В левом поле отображается название событий, на которые может реагировать объект, а в правом — название методов их об работки, или, проще, функций подпрограмм обработки. Для создания обработчика необходимо выполнить двойной щелчок левой кнопкой мыши в правом поле напротив названия выбранного события. При этом появится окно редактора кода, в котором автоматически создается заготовка текста программы обработчика события. Между фигурными скобками заготовки разработчиком дописывается программа обработки событии. В результате при возникновении событии для выбранного объекта будет выпол-нитьси данная программа. Например, событие OnClick означает щелчок левой кнопкой мыши по объекту. Рассмотрим пример простой программы. Пусть эта программа будет иметь всего одно окно, содержащее единственную кнопку, щелчок по которой будет закрывать приложение. Запустите Borland C++ Builder 6 и поместите на форму Forml одну кнопку Button 1. Уменьшите размеры формы и переместите кнопку в центр формы. Выберите в инспекторе объектов форму Forml и выделите се свойство Caption. Замените слово Forml на слово Программа 1. Вы увидите, что заголовок самой формы тоже изменился. Теперь выберите в инспекторе объектов Button 1 и также измените его свойство Caption с Button! на Выход. Обратите внимание, что кнопка на форме стала называться Выход, /(алее переключи тесь в инспекторе объектов на закладку событий Events и щелкните дважды в поле напротив события OnClick. При этом откроется окно редактора кодов с заготовкой текста программы обработчика события. Впишите между фигурными скобками текста программы строку Close();. Это команда закрытия приложения. В результате должен получиться код (текст) программы, приведенный ниже. void __fastcall TForm1::Button1Click(TObject*Sender){Close();}//----------------------------------------------------Здесь в начале записан заголовок функции-подпро1раммы обработки события щелчка Click по кнопке Button 1 на форме Forml. Тип void означает, что функция не возвращает параметры в основную программу. Между фигурными скобками могут записываться операторы, команды и функции. Последняя строка текста является комментарием-разделителем. Если вы допустите ошибки при написании команды, в инспекторе кода откроется окно сообщений, в котором будет выведен текст сообщения об ошибке. Для вызова справки о команде Close() поместите курсор на текст этой команды и нажмите клавиши Ctrl+Fl. Аналогично вы можете вызывать справку и по любым другим командам и операторам. Теперь запустите программу, выполнив команду Run из главного меню, из панели быстрых кнопок, или нажав клавишу F9 на клавиатуре. После компиляции программа запустится и появится ее окно, подобное тому, что приведено на рис. 3.

Рис.3  

Щелкните левой кнопкой мышки по кнопке Выход, и приложение закроется. Программа работает и уже выполняет команды, пусть даже такие простые. Если в программе имеются ошибки и она не будет закрываться, выполните команду Program reset из главного меню или нажмите клавиши Ctrl+F9 на клавиатуре. После этого проверьте программу и, устранив ошибки, запустите ее снова. Для доступа к дополнительным командам и настройкам инспектора объектов необходимо нажать правую кнопку мыши на окне инспектора. При этом на экране появится окно контекстного меню команд (рис. 4).  

Рис.4  

В этом окне содержатся команды просмотра View свойств и событий по группам, размещения Arrange записей полей по категории или имени, размещения окна поверх всех других окон Stay on top, скрытия окна Hide, вызова справки Help, изменения настроек Properties и прочие. После щелчка левой кнопкой мыши по команде настроек Properties откроется окно настроек инспектора объектов (рис 5). Это же окно можно открыть, вызвав команду главного меню Tools Environment Options и открыв закладку Object Inspector.  

Puc.5  

В данном окне можно настроить цвета записей свойств и событий на полях инспектора объектов, а также осуществить выбор (Options) отображения некоторых свойств и событий, в том числе и тех, на которые имеются ссылки (References). При изучении визуальных компонентов и разборе новых примеров программ мы еще не раз вернемся к инспектору объектов. А пока для закрепления материала на практике я предлагаю самостоятельно попробовать изменить некоторые свойства формы и кнопки и посмотреть» что при этом получается при выполнении программы. ФАЙЛЫ ПРОЕКТА Теперь пора познакомиться подробнее с файлами проекта и операциями над ними. При работе в среде разработки Borland C++ Builder 6 довольно час-го приходится открывать и сохранять файлы. Все изменения в проекте перед запуском программы необходимо сохранять в файлах проекта для избежания их потери в случае возникновения ошибок или зависания компьютера. При этом можно производить сохранение всего проекта целиком или сохранять отдельно необходимые файлы. Для сохранения всего проекта целиком вызовите из главного меню команду Save Project As... (сохранить проект как...), либо Save All (сохранигь все)> либо нажмите клавиши Shift+Ctrl+S на клавиатуре. На экране отобразится стандартное диалоговое окно сохранения файлов (рис 6).  

Рис.6  

В данном окне необходимо выбрать место сохранения проекта в имеющихся каталогах или создать для этого отдельный каталог (папку). Последний вариант предпочтительнее, поскольку позволяет систематизировать все проекты и устраняет возможность наложения файлов с одинаковыми именами друг на друга. После этого следует последовательно произвести сохранение всех файлов проекта. Среда разработки предлагает по умолчанию свои имена для сохраняемых файлов. Например, для сохранения файлов с текстами программ предлагается имя Unitl.cpp, Unit2.cpp и т. д. Для сохранения файлов проектов будут предлагаться имена Projectl.bpr, Project2.bpr и т. д., вы вправе изменять эти имена файлов на собственные названия. Это даже полезно сделать, поскольку по окончании разработки программы ее исполняемый файл с расширением схе будет иметь имя Projectl.exe.  Согласитесь, что это имя не очень подходит для названия любой программы. При переименовании файлов рекомендуется использовать только англоязычные названия или названия, состоящие из латинских букв алфавита. Рассмотрим сохранение проекта на примере простой программы, описанной выше. Нажмите клавиши Shift+Ctrl+S на клавиатуре или на соответствующий данной команде значок в панели быстрых кнопок. В открывшемся окне (рис 6) замените имя сохраняемого файла Unitl.cpp на uprogl.cpp и нажмите кнопку Сохранить. Далее замените предлагаемое для сохранения имя файла проекта Projectl.bpr на Progl.bpr и вновь нажмите кнопку Сохранить. Теперь запустите программу на выполнение с помощью команды Run из главного меню. После того как на экране появится окно программы, сверните его. Вы увидите, что в свернутом виде программа имеет название ProgI, а не Project 1, как раньше. Таким образом можно давать программе осмысленные имена.  Завершите работу приложения (программы). Теперь, если вы просмотрите содержимое каталога, в котором сохраняли файлы проекта, с помощью, например, проводника (Explorer) из среды Windows, то обнаружите в этом каталоге множество файлов, в том числе и с именами, которые задали вы сами. Ценными файлами в этой группе являются файлы с текстами программ с расширением срр, файлы заголовков с расширениями h и hpp, файл установок формы проекта с расширением dfm, файл ресурсов с расширением res, и файл проекта с расширением bpr, bpg или bpk. Файлы с расширениями ~Ьр, ~df, ~ср, ~h, obj, tds и ехе создаются в момент компиляции проекта и могут быть восстановлены после удаления в любое время. Наибольшим объемом обладает файл с расширением tds, предобладает файл с расширением tds, предназначенный для отладки программы.  Со временем у вас будет расти число проектов и для их хранения может понадобиться значительный объем на жестком диске. Для рационального использования места на диске рекомендуется не хранить вспомогательные файлы проекта, а обходиться хранением только кодов программ, файлов проектов, исполняемого файла и созданных вами файлов рисунков, иконок, фонов, курсоров, звуковых файлов и пр. Для облегчения данной задачи, я предлагаю использовать командный файл очистки проекта от всех вспомогательных файлов. Текст данного командного файла приведен ниже.

del  *.~* del  *.obj del  *.tds

Как видите, он состоит всего из трех строчек с командами удаления вспомогательных файлов с некоторыми расширениями. Создайте с помощью любого текстового редактора файл с именем bcbclr.bat и занесите в него данные строки команд. После этого поместите файл в каталог с файлами проекта, закройте среду разработки Borland C++ Builder 6 и запустите файл bcbclr.bat на выполнение. В результате каталог будет очищен от лишних файлов и освободит тем самым немало места на жестком диске. Теперь рассмотрим» как можно открыть сохраненный проект для продолжения работы с ним или для его корректировки. Запустите среду разработки Borland C++ Builder 6. Вызовите из главного меню команду Open Project (открыть проект) или нажмите клавиши Qrl+Fll на клавиатуре. На экране огобразится стандартное диалоговое окно открытия файлов (рис. 7).  

Рис 7  

В данном окне необходимо выбрать место расположения сохраненного проекта в имеющихся каталогах и выделить имя проекта, после чего нажать кнопку Открыть. Перед вами появится проект в том виде, в котором вы закончили с ним работу перед сохранением. Аналогично можно открыть отдельно любой файл проекта, используя команду Open главного меню. Для закрытия всего проекта или файла без сохранения необходимо использовать команду Close All (закрыть все) или команду Close главного меню соответственно. Кроме того, интерфейс среды разработки Borland C++ Builder 6 запоминает пути хранения несколько проектов и позволяет быстро загрузить их без поиска по каталогам с помощью команды Reopen главного меню. Для практики сохраните, а затем откройте проект описанными выше способами. Создайте файл очистки bcbclr.bat и запустите его для удаления вспомогательных файлов. ВЫВОД НА ПРИНТЕР При разработке программ вам может потребоваться распечатать какой-либо файл. Для этого необходимо предварительно выделить этот файл и выполнить настройки для печати. Выделите небольшой блок в файле инспектора кода и выполните команду File Print из главного меню. При этом откроется окно (рис. 8), в котором производится настройка параметров печати.  

Рис. 8  

В верхней части окна находится группа под названием File (о print, в которой отображается имя выделенного файла для печати. Если в файле предварительно был выделен блок, то становится доступной возможность печати только данного блока путем установки флажка перед строкой Print selected block. Под группой выбора модулей для печати File to print располагается группа установок параметров печати специальных полей Options. С помощью установки флажка перед строкой Header/Page numbers можно обеспечить автоматическую нумерацию страниц текста при печати. Флажок, установленный перед строкой Line numbers, обеспечивает нумерацию сгрок печатаемого текста. Установка флажка перед строкой Syntax print позволяет печатать жирный шрифт, курсив, символы подчеркивания и другие выделения шрифт. Для использования цвета необходимо установить флажок перед строкой Use color. Для переноса строк, выходящих за пределы правой границы листа, необходимо установить флажок перед строкой Wrap lines. Поле Left margin позволяет при печати задать отступ слева. Для установки дополнительных параметров печати необходимо нажать кнопку Setup. При этом откроется окно настройки принтера (рис. 9). Здесь можно осуществить стандартные настройки принтера и формата бумаги для печати.  

Рис 9  

Кроме текстовых файлов в среде разработки Borland C++ Builder 6 можно распечатать и графические, например, форму приложения. Для этого необходимо открыть форму в инспекторе форм, выделив ее тем самым, и выполнить команду File Print из главного меню. При этом откроется окно подобное тому, что приведено на рис 10.  

Рис.10  

Это диалоговое окно позволяет определить масштабирование формы при печати, оно имеет три опции. Опция Proportional позволяет осуществить пропорциональное масштабирование, т. е. распечатать форму в таком масштабе, в котором она видна на экране. Опция Print To Fit Page позволяет растянуть печатаемую форму на всю ширину страницы бумаги. Опция No Scaling никак не масштабирует форму и при печати использует настройки режима экрана. Если вы выберете эту опцию» форма может напечататься на нескольких страницах. При распечатке формы ее заголовок не печатается. Продолжение следует...

Программирование: Borland C++ Builder 6 для начинающих (статья четвертая) НаписалMACTEPв 23.9.2008 0:00:00 (4076 прочтений)

Borland C++ Builder 6 для начинающих (статья четвертая)

Статья  123456

 

При разработке программ, особенно в первое время, возможны синтаксические и логические ошибки. Чем сложнее программа, тем труднее их обнаружить. Для облегчения обнаружения и устранения ошибок в среде разработки Borland C++ Builder 6 существует встроенный отладчик программ. Он позволяет выполнять программу по шагам, устанавливать точки останова, просматривать переменные и производить другие операции.

 

 

ОТЛАДКА ПРОГРАММНесмотря на то, что созданные нами программы очень просты, я хочу рассказать об их отладке. Дело в том, что рано или поздно в создаваемой программе могут появиться ошибки. Это могут быть синтаксические или более сложные для обнаружения логические ошибки. И тогда потребуется инструмент для их устранения. Чем быстрее мы познакомимся с таким инструментом, тем легче нам будет создавать более сложные программы. После разработки любого приложения необходимо произвести его компиляцию, компоновку и тестирование. Эти операции выполняются автоматически каждый раз при выполнении команды Run из главного меню среды разработки Borland C++ Builder 6. Однако данные процедуры можно произвести по отдельности с целью сокращения времени на отладку всего проекта в целом. В нашем очередном примере мы будем пользоваться различными командами трансляции (компиляции и компоновки) проекта. Рассмотрим, в чем состоит отличие между этими командами. Например, компиляцию отдельного модуля программы можно выполнить с помощью команды главного меню Project Compile. При этом не будет затрачено времени на компиляцию и компоновку всего проекта в целом. Команда главного меню Project Make позволяет выполнить компиляцию только тех модулей, которые были отредактированы, после чего выполняет компоновку проекта с созданием исполняемого модуля ехе. Таким образом, эта команда также экономит время на трансляцию проекта в целом. И только команда Project Build компилирует все модули независимо от того редактировались они или нет> а затем компонует проект и готовит исполняемый файл с расширением ехе. Данная команда необходима для переработки всего проекта после изменения настроек компилятора или среды разработки в целом. Команда Project Run, в отличие от Project Build, автоматически запускает исполняемый файл. На этапе компиляции происходит автоматический поиск средой разработки синтаксических ошибок, неправильного объявления или использования переменных и т. п. При обнаружении подобных ошибок в инспекторе кодов будет выведено соответствующее сообщение об ошибке или предупреждение. Предупреждение, в отличие от ошибки, не блокирует выполнение программы, но не гарантирует корректность ее работы. Если ошибок в программе нет, компилятор создает объектный (машинный) код программы в модулях (файлах) с расширением obj. При компоновке программы также выявляются некоторые виды ошибок, связанные с отсутствием объявления переменных, функций, библиотек и т. п. и выполняется объединение всех объектных модулей и библиотек при необходимости в один исполняемый файл с расширением ехе. Вместо исполняемого файла может создаваться библиотечный файл с расширением lib или dll при соответствующих установках среды разработки. Рассмотрим выполнение описанных процедур на конкретном примере. Создадим небольшое приложение на форме Forml с двумя кнопками Button 1, Button2 и одним элементом надписи Label 1. О том, как размещаются эти элементы на форме, рассказывалось в предыдущих статьях цикла. Это приложение должно сообщать о числе нажатий на первую кнопку. При нажатии на вторую кнопку приложение должно закрываться. Разместите эти элементы на форме Forml и измените размер формы в соответствии с рис. 1.

Рис.1  

Теперь замените свойство Caption всех объектов приложения в инспекторе объектов на заголовки Программа 2, Кнопка 1, Выход и пустую строку соответственно. В результате у вас должно получиться окно, приведенное на рис. 2. Обратите внимание, что элемента Labell, располагающегося выше кнопок, не видно, поскольку мы заменили его свойство Caption на пустую строку, т. е. очистили это свойство.  

Рис.2  

Щелкните дважды левой кнопкой мыши по созданной кнопке Выход и в открывшемся окне инспектора кодов впишите между фигурными скобками заготовки обработчика события команду закрытия приложения CloseQ;. Вернитесь к окну формы и щелкните дважды левой кнопкой мыши по кнопке с названием Кнопка 1. В отрывшемся окне инспектора кодов впишите между фигурными скобками строку команд: Label1->Caption="Кнопка 1 нажата " + IntToStr(++i)  +"  раз";В этой строке команд выполняется присвоение (знак равенства) свойству Caption элемента надписи Label 1 текстовой строчки, состоящей из трех слагаемых частей. Поскольку свойство Caption элемента надписи Labell предназначено для отображения текста, мы должны присваивать этому свойству только текстовые (строковые) значения. В языке C++ такие строковые значения заключаются в кавычки. Первая и последняя части присваиваемого значения таковыми и являются. Счетчиком числа нажатий на кнопку в программе будет служить переменная i, которая должна автоматически увеличиваться на единичку перед выводом. Для этой цели перед ней записаны два знака плюс. Данная операция в языке C++ называется автоинкрементом. Для превращения числовой переменной i в строковую используется встроенная функция C++ преобразования целых чисел в строки IntToStrQ. Итак, в одной строке команд мы осуществили целый ряд операций. Разве это не изящный язык программирования?! Сохраните проект под именем butct. bpr, а программный модуль — под именем Ubutct.cpp. Впрочем, имена вы можете дать другие. Не изменяйте только расширения файлов. Теперь попробуем скомпилировать, скомпоновать и выполнить данное приложение, а заодно проверить, нет ли в нем ошибок. Выполните команду Compile из группы Project главного меню или нажмите «горячую» комбинацию клавиш для компиляции программы Alt+F9. Перед вами откроется окно, приведенное на рис. 3.

Рис.3  

В верхней строке этого окна отображается путь размещения и имя проекта программы. В следующей строке вначале отображается процесс компиляции, сменяющийся записью о завершении данной операции Done и сообщением об обнаруженных ошибках There are errors (здесь есть ошибки). Ниже отображается номер текущей строки программы Current line и общее количество арок программы Total line. В нижней строке отображается обнаруженное на данный момент число замечаний Hints, предупреждений Warnings и ошибок Errors. Как видим, в программе есть одна ошибка. Нажмите кнопку ОК в окне, и перед вами окажется окно инспектора кода с выделенной строкой, имеющей ошибку, и сообщением о типе ошибки внизу окна (рис. 4).  

Рис.4  

Сообщение «[C++ Error] Ubutct.cpp(25): E2451 Undefined symbol 'i'» говорит о том, что компилятор C++ обнаружил ошибку в 21-й строке модуля Ubutct.cpp. Код ошибки Е2451 означает, что обнаружен необъявленный символ. В нашем случае это переменная с именем i. Действительно, мы не объявили ее в программе, хотя и сделали это намеренно, с целью получения сообщения об ошибке в качестве примера. В языке C++, как впрочем и в других языках программирования, все переменные, используемые в программе, необходимо объявлять. Это делается для того, чтобы компилятор знал, сколько ячеек памяти необходимо резервировать в памяти компьютера для ее хранения. Поскольку различные типы переменных требуют для своего хранения различное количество ячеек памяти (байт), рационально резервировать для них лишь необходимый объем памяти. В нашем случае переменная i является целой, т. е. принимающей только целочисленные значения. Для ее объявления необходимо использовать директиву int (от integer — целый). Можно сделать такое объявление непосредственно в тексте программы обработчика событий, но тогда эта переменная будет недоступна в Других функциях обработчика. Поэтому мы объявим ее в блоке public (общедоступный) файла описания заголовков Ubutct.h. Для этого необходимо щелкнуть левой кнопкой мыши по закладке Ubutct.h инспектора кодов и вписать строку объявления переменной с комментариями сразу же после строчки public. Ниже приведена эта запись полностью. public: // User declarations    int i;  // Переменная - счетчикТеперь снова выполним компиляцию и обнаружим, что ошибок нет. Но не спешите радоваться. Дело в том, что мы не присвоили переменной i начального значения. Компилятор не обращает на это внимания и не выдает никаких сообщений по этому поводу. Однако в программе это может привести к недоразумениям. Поэтому выполним присвоение начального значения переменой i, сделав запись i=0; в тексте программы обработчика создания формы (ведь при запуске программы Кнопка 1 не была нажата ни разу). Для этого щелкните дважды левой кнопкой мыши по форме приложения и в открывшемся окне инспектора кода впишите между фигурными скобками текста программы строкуi=0;Выполним компоновку проекта с помощью команды Make из группы Project главного меню или просто нажав «горячую» комбинацию клавиш для компоновки программы Ctrl+F9. В результате мы должны получить безошибочную компоновку приложения. Теперь приложение можно сохранить и запустить на выполнение с помощью команды Run или воспользоваться «горячей» кнопкой запуска программы F9. На экране появится окно нашей программы. Щелкая левой кнопкой мыши но кнопке с названием Кнопка 1 вы увидите, что каждый раз в окне будет появляться сообщение о числе нажатий этой кнопки. В будущем каждый раз перед запуском приложения после редактирования не забывайте сохранять проект. Это позволит избежать потери информации при зависании программы, вызванном наличием ошибок в ней. Потренируйтесь самостоятельно, специально внося ошибки в программу и изучая возникающие при этом сообщения об ошибках при компиляции и компоновке проекта.СТРУКТУРА ФАЙЛОВТеперь рассмотрим более подробно структуру основных файлов программы для того, чтобы не теряться при возникновении сложных ошибок и иметь представление о том, как работает программа устранения ошибок. Вернемся к нашему примеру, приведенному выше, и рассмотрим состав файлов проекта. Для лучшего понимания текста программ тем, кто не знаком с языками программирования, я рекомендую почитать, например, книгу [1]. В языке C++ главной функцией проекта является функция main. В программах, написанных для операционной системы Windows, главной функцией является WinMain. Данная функция содержится в программном модуле butct.cpp нашего примера. Ниже приведено его содержимое. //--------------------------------------------------------------------------- #include #pragma hdrstop //--------------------------------------------------------------------------- USEFORM("Ubutct.cpp", Form1); //--------------------------------------------------------------------------- WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {         try         {                  Application->Initialize();                  Application->CreateForm(__classid(TForm1), &Form1);                  Application->Run();         }         catch (Exception &exception)         {                  Application->ShowException(&exception);         }         catch (...)         {                  try                  {                          throw Exception("");                  }                  catch (Exception &exception)                  {                          Application->ShowException(&exception);                  }         }         return 0; } //---------------------------------------------------------------------------      В этих нескольких строчках содержатся директивы и команды, с помощью которых формируется программа. Строчки, начинающиеся с символов //, являются строками комментариев для разделения или снабжения текстовым описанием частей программы. В языке С допускается также заключать комментарии между символами I* и */. В этом случае комментарии могут состоять из нескольких строк, заключенных между этими символами. Строка #include является строкой препроцессора, т. е. программы, которая будет подключать к нашим модулям дополнительные файлы библиотек и описаний. В данном случае строка #include говорит препроцессору о том, что ему необходимо подключить к нашей программе заголовочный файл vclh, в котором содержатся описания визуальных компонентов Borland C++ Builder. Директива #pragma hdrstop завершает список файлов заголовка для препроцессора. Строка макрокоманды USEFORMC^'Ubutct.cpp", Forml); подключает к проекту модуль Ubutctcpp и форму Forml. Далее следует заголовок программы главной функции проекта WINAPI WinMain(HINSTANCE, H1NSTANCE, LPSTR, int). Перед названием главной функции находится дескриптор W1NAPI, который позволяет использовать множество полезных готовых функций Windows в нашем приложении. В скобках заключены параметры главной функции, необходимые для опознания нашего приложения среди множества других работающих приложений, передачи параметров в программу в командной строке и для определения конфигурации окна нашего приложения. После заголовка главной функции следует блок кода, в котором может произойти исключение — аварийная ситуация (останов, ошибка программы и пр.). Такой блок должен начинаться с ключевого слова try. В этом блоке заключены операторы инициализации компонентов приложения Application->Initialize();, создания формы приложения Application- >CreateForm(__classid(TForml), &Forml); и выполнения приложения Application->Run();. Блок catch (Exception &exception) предназначен для включения операторов, вызываемых при возникновении аварийной ситуации. В нашем примере программы таким оператором является стандартный обработчик исключений Application- >ShowException (&exception);. В следующих примерах мы рассмотрим, как его использовать. Аналогичная конструкция блоков повторяется для копии приложения, запущенного вторично. Последним оператором тела функции WinMain является return 0; — оператор, завершающий приложение с кодом 0. Данный файл можно редактировать, изучив предварительно команды и функции Windows и получив некоторый опыт разработки программ. Поскольку этот файл создается средой разработки автоматически, мы в нашем курсе обучения не будем его изменять намеренно, чтобы не отягощать себя лишними проблемами. Тем не менее, при возникновении ошибок компилятора или компоновщика, не лишним будет посмотреть содержимое данного файла и отредактировать его в случае необходимости. Например, при создании новой формы и последующем ее удалении в этом файле могут сохраниться записи о несуществующей форме, приводящие к ошибкам во время трансляции. В таком случае необходимо удалить лишние записи из этого файла для устранения подобных ошибок. Далее рассмотрим структуру файла butct.cpp. Содержимое этого файла целиком приведено ниже.//--------------------------------------------------------------------------- #include #pragma hdrstop //--------------------------------------------------------------------------- USEFORM("Ubutct.cpp", Form1); //--------------------------------------------------------------------------- WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {         try         {                  Application->Initialize();                  Application->CreateForm(__classid(TForm1), &Form1);                  Application->Run();         }         catch (Exception &exception)         {                  Application->ShowException(&exception);         }         catch (...)         {                  try                  {                          throw Exception("");                  }                  catch (Exception &exception)                  {                          Application->ShowException(&exception);                  }         }         return 0; } //---------------------------------------------------------------------------   Большинство строк этого файла нам уже известно из предыдущего описания и самого примера программы. Рассмотрим лишь неизвестные строки. Строка #pragma package(smart_init) определяет последовательность инициализации составных частей программы. Строка #pragma resource «*.dfm» сообщает препроцессору о том, что для формы необходимо использовать файл *.dfrn с именем данного файла. В строке TForml *Forml; объявляется класс TForml для формы Forml. Далее следуют подпрограммы создания формы приложения и обработчики событий, рассмотренные выше. Обратите внимание на строку #include «Ubutct.h», которая подключает к модулю заголовочный файл Ubutct.h, представленный ниже.//--------------------------------------------------------------------------- #ifndef UbutctH #define UbutctH //--------------------------------------------------------------------------- #include #include #include #include //--------------------------------------------------------------------------- class TForm1 : public TForm { __published:    // IDE-managed Components         TButton *Button1;         TButton *Button2;         TLabel *Label1;         void __fastcall Button2Click(TObject *Sender);         void __fastcall Button1Click(TObject *Sender);         void __fastcall FormCreate(TObject *Sender); private:    // User declarations public:        // User declarations int i;      // Переменная - счетчик         __fastcall TForm1(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TForm1 *Form1; //--------------------------------------------------------------------------- #endif Ранее мы уже редактировали его в примере, вставляя строку инициализации переменной i. Рассмотрим этот файл подробнее. Строчка #ifiidef UbutctH является директивой условной компиляции. Эта директива проверяет, не был ли ранее определен идентификатор UbutctH директивой #define. Если не был, то предваряемый директивой фрагмент кода компилируется. В противном случае компиляция фрагмента не производится. Затем в строке #de-fine UbutctH определен идентифика тор UbutctH. Далее следуют четыре строки #include включения файлов, описывающие компоненты, переменные, константы и функции, которые будут использованы в данном модуле. Сюда можно добавлять дополнительные директивы, не создаваемые средой разработки автоматически. После этих строк следует описание класса формы с тремя разделами. Раздел__published: содержит объявления размещенных на форме компонентов и обработчиков событий, которые среда разработки записывает в файл автоматически в процессе проектирования формы. Раздел private: предназначен для объявления закрытых переменных, т. е. доступных только для данного модуля. Раздел public: предназначен для объявления открытых переменных, т. е. доступных не только для данного модуля, но и для других классов и модулей. Именно в этот раздел мы включили (записали) переменную — счетчик L Строка extern PACKAGE TForml *Forml; объявляет класс TForml как доступный из других модулей. Завершает файл строка #endif окончания условной директивы tifndef. Следующие два файла butct.bpr и Ubutct.dfm представляют собой текстовые файлы установок проекта и формы данного проекта соответственно. Они создаются и редактируются автоматически в процессе разработки и изменения проекта в среде разработки. Файл butct.bpr содержит директивы и макрокоманды настроек среды разработки и его не следует корректировать вручную для избежания внесения ошибок, хотя просмотреть содержимое можно с помощью любого текстового редактора. Файл Ubutct. dfrn представляет собой текстовые записи содержания и свойств формы. Его можно просмотреть и даже отре дактировать в самой среде разработки. Для этого необходимо щелкнуть левой кнопкой на форме для ее выделения, а затем щелчком правой кнопки мыши открыть контекстное меню (рис. 5) и выбрать в нем команду View as Text.

Рис.5

Перед вами должно открыться окно формы (рис. 6), в котором представлено содержимое файла формы в текстовом виде.

Рис.6

Здесь можно просмотреть и отредактировать любую запись. Естественно, это нужно выполнять, зная, что вы делаете, чтобы не внести новые ошибки. Например, в строках Left = 192, Тор = 107, Width = 220 и Height = 140 можно изменить левый и верхний отступ, а также ширину и высоту формы соот ветственно. В строчках Caption - 'Программа 2' и Color = clBtnFace можно изменить соответственно заголовок формы и цвет ее фона и т. д. Вернуться к исходному виду формы можно с помощью комбинации «горячих» клавиш Alt+F12 или через контекстное меню по команде View as Form. Файлы butct.res и Ubutct.ddp являются двоичными, хранящими ресурсы и диаграммы проекта соответственно, и не подлежат ручному редактированию. Исполняемый файл проекта имеет имя butct.exe. Наконец, файл с расширениями tds является отладочным файлом проекта, который можно всегда создать в среде разработки повторно, имея исходные файлы проекта. Помимо описанных выше файлов среда разработки позволяет создавать дополнительные файлы, которые являются вспомогательными и не подлежат ручной корректировке. Этот материал может показаться на первый взгляд очень трудным. Но со временем описанные директивы станут привычными и не будут казаться непонятными. В следующей части статьи мы рассмотрим инструменты отладчика, которые помогут нам при отладке программ.ИНСТРУМЕНТЫ ОТЛАДЧИКА Основными инструментами отладки любой программы являются команды выполнения программы по шагам и установки точек останова. Естественно, что такие команды имеются и в среде разработки Borland C++ Builder 6. Команды пошагового выполнения программы вызываются из главного меню в группе Run или с помощью «горячих» клавиш. Список этих команд с соотвегствием «горячим» клавишам и описанием назначения приведен в табл. 1.Команды установки точек останова и некоторые другие вызываются из контекстного меню инспектора кода через раскрывающийся список команды Debug (рис. 7), а также с помощью «горячих» клавиш.Рис.7 Попробуйте применить эти команды на практике, используя нашу программу. Поместите курсор в инспекторе объектов на строку Labell>Caption=«KHonKa 1 нажата» + IntToStr(++i) +«раз»; и нажмите клавишу F5. При этом строка окрасится в красный цвет, что свидетельствует о том» что на ней установили точку останова. Теперь при выполнении программы произойдет автоматический останов на этой строке. Проверьте это, выполнив команду Run с помощью клавиши F9. Программа запустится, и на экране появится ее форма. Но стоит щелкнуть левой кнопкой мыши по кнопке с названием Кнопка 1, программа остановится и откроется окно (рис. 8) инспектора кода с зеленой стрелкой напротив нашей строки.

Рис.8 Теперь, нажимая клавишу F8 на клавиатуре, можно продолжить выполнение программы по шагам. Для прерывания программы необходимо нажать комбинацию клавиш Ctrl+F2. Можно продолжить выполнение программы с помощью клавиши F9, а затем щелкнуть по кнопке Выход в окне программы для ее завершения. Попробуйте на практике выполнить и другие команды отладчика для того, что бы понять их назначение. Помимо команд отладки среда разработки позволяет просмотреть переменные, используемые в программе, состояние регистров процессора, процессы, происходящие в программе и т. п. Для этих целей используются окна отладчика. ОКНА ОТЛАДЧИКА Доступ к окнам отладчика производится через пункт главного меню View—»Debug Windows. Откроется окно (рис. 9), в котором расположены команды открытия окон отладчика.

Рис.9 Команда Break Points открывает окно (рис. 10), в котором отображаются и редактируются точки останова. Из этого окна через контекстное меню, вызываемое щелчком правой кнопки мыши, можно осуществлять добавление, удаление и редактирование точек останова (рис. 11).

Рис.10

Рис.11 Для вызова данной команды отладчика можно использовать «горячие» клавиши Ctrl+AIt+B. Остальные команды можно вызывать аналогично. Комбинация «горячих» клавиш для каждой из команд изображена правее самой команды (рис. 9). Команда Call Stack вызывает окно просмогра стека программы (рис. 12). Данное окно позволяет увидеть вызовы функций в программе в момент ее отладки.

Рис.12 Команда Watches открывает окно переменных (рис 13), в котором можно просматривать переменные, используемые в программе во время ее работы

Рис 13 Из этого окна можно вызвать контекстное  меню  (рис    14)  щелчком правой кнопки мыши При этом появляется возможность редактировать, добавлять, активизировать, делать невидимыми и удалять переменные из окна отображения переменных

Рис.14 Окно редактирования свойств переменных Watch Properties (рис 15) вызывается из контекстного меню командой Edit Watch или с помощью клавиш Ctrl+E Оно позволяет выбрать (Expression) отображаемые переменные, разбить переменные на группы (Group name), задать число элементов массива (Repeat count) для отображения, ограничить разрядность (Digits) отображаемых значений, разрешить (Enabled) отображение переменной, разрешить (Allow Side Effects) отображение выражений и выбрать один из девяти форматов отображения переменных Команда Local Variables показывает текущие локальные переменные в отладочном режиме работы (рис.16) Команда Threads отображает окно процессов, происходящих в режиме отладки программы (рис 17) В частности, в нем можно увидеть имя исполняемой про!раммы, состояние процесса отладки и адрес точки останова Команда Modules вызывает окно (рис 18), в котором можно просмотреть все программные модули, их адреса и точки входа.

Рис.15

Рис.16

Рис.17

Рис.18

Рис.19 Команда Event Log отображает окно регистрации событий программы (рис.19) Команда Code Guard Log вызывает окно сообщений (рис 20), сгенерированных специальной утилитой отладки CodeGuard С помощью команды CPU вызывается окно (рис.21), в котором отображается работа программы в машинных кодах и содержимое регистров процессора. Если программа не запущена, данная и следующая    команда недоступны.   

Рис.20

Рис.21

Рис.22 Наконец, команда FPU вызывает окно (рис. 22) для просмотра состояния математического сопроцессора компьютера. Рекомендую читателям для тренировки поочередно открыть эти окна во время  пошагового выполнения программы с    помощью    «горячих» клавиш.  

       Продолжение следует

Программирование: Borland C++ Builder 6 для начинающих (статья пятая) НаписалMACTEPв 12.4.2009 9:00:00 (1637 прочтений)

Borland C++ Builder 6 для начинающих

Статья  123456

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

 

ЦИФРОВЫЕ ЧАСЫ КАЛЕНДАРЬПрежде, чем продолжить теоретическое изучение Borland C++ Builder 6, создадим на практике еще одну полезную программу, которую можно будет использовать для отображения текущей даты и времени. Назовем эту программу «Цифровые часы-календарь». Запустите Borland C++ Builder 6 и начните создание нового проекта. Пoместите на форму Form1 компонент Static Text из закладки Additional визуальных компонентов, щелкнув по нему дважды левой кнопкой мыши. Этот элемент будет служить нам циферблатом часов. В качестве такого элемента можно было бы взять и компонент Label, но в отличие от него Static Text обладает более богатыми возможностями оформления (т. е. расширенным набором свойств). Изменим некоторые свойства этого компонента. Вначале заменим свойство Alignment (выравнивание) на taCenter для того, чтобы показания часов были в центре окна. Затем установим свойство BorderStyle (стиль границы) в sbsSunken (утопленный) для придания циферблату часов элегантного внешнего вида. Свойство AutoSize (автоматический размер) должно иметь значение True (истина). Теперь раскроем свойство Font щелчком левой кнопки мыши по символу плюса перед ним. Аналогично щелчком левой кнопкой мыши по троеточию напротив свойства Font откроем окно для изменения шрифта текста, который будет служить для отображения цифровых показаний времени нашей программы часов (рис. 1).

Рис.1

Здесь необходимо выбрать жирный шрифт Times New Roman или любой другой понравившийся вам и установить синий цвет и размер шрифта, равным 30 единицам. Заметьте, что в списке размера шрифтом отсутствует размер номер 30. Для того, чтобы его установить, необходимо выделить текущий размер шрифта с помощью левой кнопки мыши и ввести с клавиатуры новый размер. В дальнейшем вы всегда сможете изменить эти установки по своему усмотрению. Теперь очистим свойство Caption, чтобы при запуске программы не появлялась надпись Static Tcxtl на циферблате программы часов. Компонент Static Textl свернется при этом до минимальных размеров. Пусть вас это не пугает. При работе программы он автоматически примет необходимые размеры благодаря его свойству AutoSize. Теперь поместите на форму компонент таймера Timer из закладки System, щелкнув по нему дважды левой кнопкой мыши. Он позволит нам автоматически обновлять показания часов с заданной частотой. Место его размещения не имеет значения, поскольку этот компонент является невидимым и не отображается на экране при работе программы. В дальнейшем мы будем применять в программах и другие подобные скрытые компоненты. Щелкните левой кнопкой мыши по компоненту таймера на форме. В открывшемся окне инспектора кода необходимо написать программу обработчика события. Ее текст будет состоять из двух строчек: StaticText1->Caption=Now().TimeString(); Forml->Caption=Now().DateString(); Первая строка присваивает свойству Caption (заголовок) компонента StaticTextl значение текущего показания часов. Для этого используется функция извлечения из операционной системы текущего времени Now и выделения из него показания часов TimeString в строковом формате записи. Следующая строка выполняет аналогичные действия, но уже для формы и выделяет при этом показания даты. Свойства компонента таймера должны соответствовать значениям, приведенным в табл. 1.

 

Таблица 1. Свойства компонента Timer Свойство    Значение   Enjblcd            Ttue   Interval           1000   Name              Timerl   Tag                 0

Данные свойства разрешают автоматическую работу таймера с интервалом (периодичностью) 1000 мс. Теперь изменим свойства формы. Очистим свойство Caption, чтобы при запуске программы не появлялась надпись Forml на заголовке окна, и установим свойство AutoSize в True. 11осле этого форма свернется до минимальных размеров. Последнее свойство мы сделали таким для того, чтобы размер наших программных часов устанавливался автоматически в зависимости от шрифга индикаторов. (Сохраните модуль (текст) программы и сам проекг под названием utirne_date.cpp и timcdate.bpr соответственно. Для сохранения проекта создайте новую папку (каталог), например с именем TIMEDATE. Теперь запустите программу с помощью клавиши F9 с клавиатуры. После трансляции проекта программа должна заработать и на экране монитора отобразится окно часов, подобное тому, что приведено на рис. 2.

Рис.2

Итак, наши часы отображают текущее время на циферблате и дату в заголовке программы. Их можно перемещать в любое место экрана с помощью мыши или сворачивать. Если щелкнуть левой кнопкой мыши по кнопке «развернуть», то часы переместятся в левый верхний угол экрана, где не будут закрывать собой окна других программ. Однако, если вы запустите новую программу, например Word, и развернете ее во весь экран, то наши часы пропадуг. Для того, чтобы устранить этот недостаток, отредактируем еще одно свойство формы нашей программы. Остановите программу и замените свойство FormStyle (стиль формы) на fsSlayOnTop (оставаться сверху). Сохраните проект и вновь запустите программу. Убедитесь, что теперь часы всегда находятся поверх остальных окон других программ и не могут быть скрыты ими. Заметьте, что при создании программ все они имеют значок (иконку) с одним и тем же рисунком. Конечно, удобно иметь готовую заготовку рисунка для значка новой программы, но согласитесь, если все наши программы будут иметь один и тот же значок, смысл таких значков в качестве пиктограмм просто теряется — ведь они предназначены для графического отождествления назначения программы. Поэтому давайте научимся изменять значки для наших программ. Для этого необходимо воспользоваться встроенным в Borland C++ Builder 6 инструментом редактора рисунков Image Editor. Вновь остановите программу часов и щелкните левой кнопкой мыши по кнопке Tools главного меню. В открывшемся списке запустите графический редактор Image Editor. На экране должно появиться окно, приведенное на рис. 3.

Рис.3

Рис.4

Выполните в графическом редакторе команды File->New->Icon File и в открывшемся окне Icon Properties (рис. 4) выберите Size (размер) 32x32 и Color (цвет) 16 color. Эти установки соответствуют стандартным иконкам для программ.

Рис.5

После этого щелкните по кнопке Ок. Перед вами откроется новое окно (рис. 5), в котором слева приведено пустое поле новой иконки в увеличенном масштабе для рисования, а справа — в масштабе 1:1 для просмотра. С помощью инструментов, расположенных слева на поле инструментов графического редактора, можно нарисовать на пустом поле иконки произвольный рисунок и раскрасить его, а также сделать любые символьные надписи. Редактор позволяет создавать иконки, курсоры, битовые рисунки и файлы ресурсов. В дальнейшем мы еще не раз будем прибегать к его помощи. Встроенная в редактор справка позволяет довольно быстро научиться пользоваться этим инструментом. Фон иконки бирюзового цвета является прозрачным по умолчанию, поэтому области иконки с таким цветом будут просвечиваться на любом фоне. Нарисуйте на пустом поле любой рисунок, например табло с цифрами, и сохраните иконку с помощью команды File-xSave as->Iconl.ico в каталоге с программой цифровых часов-календаря. Закройте графический редактор. Теперь у нас есть файл иконки для программы и остается лишь внедрить его в программу. Для этого необходимо открыть свойства проекта с помощью команды Project->Options в среде разработки Borland C++ Builder 6 или нажать горячие клавиши Ctrl+Shift+FI 1. В открывшемся окне свойств проекта (рис. 6) необходимо открыть закладку Application и с помощью кнопки Load Icon выбрать созданный нами файл иконки Iconl.ico.

Рис.6

Закройте окно свойств проекта, щелкнув по кнопке Ok, и запустите проект с помощью клавиши F9. Мосле запуска программы вы увидите, что теперь она имеет созданную нами иконку, которую можно поместить на рабочий стол в качестве ее пиктограммы. Программа готова!

Рис.7

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

Продолжение следует

Программирование: Borland C++ Builder 6 для начинающих (статья шестая) НаписалMACTEPв 12.4.2009 13:10:00 (2829 прочтений)

Borland C++ Builder 6 для начинающих

Статья  123456

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

 

ВИЗУАЛЬНЫЕ КОМПОНЕНТЫ

Теперь давайте изучим более подробно основные компоненты среды разработки Borland C++ Builder 6, которые применяются при разработке программ. Как было сказано в предыдущих статьях, все визуальные компоненты, из которых строится любое приложение, размещаются на палитре компонентов, состоящей из закладок. Закладки объединяют компоненты по группам. Перечень закладок с описанием состава компонентов, которые они включают в себя, приведен в табл. 1.

Таблица 1

Закладка

Состав

 Standard

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

 Additional

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

 Win32

 Содержит 32-битные компоненты в стиле Windows

 System

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

 Data Access

 Доступ к данным. Содержит компоненты для создания программ, работающих с базами данных и обеспечивающих доступ к этим базам

 Data Controls

 Управление данными. Компоненты отображения и редактирования данных

 dbExpress

 Связь с данными с использованием языка баз данных SQL

 DataSnap

 Компоненты для связи с сервером приложений при построении многопоточных приложений, работающих с данными

 BDE

 Доступ к данным через Borland Database Engine (BDE)

 ADO

 Связь с базами данных через Active Data Objects (ADO) — множество компонентов ActiveX, использующих для доступа к информации баз данных Microsoft OLE DB

 InterBase

 Прямая связь с Interbase, минуя Borland Database Engine и Active Data Objects

 WebServices

 Компоненты клиентских Internet приложений, использующие доступ к службам Web с помощью SOAP

 InternetExpress

 Построение приложений Internet Express — одновременно приложений Web сервера и клиента баз данных с параллельными потоками

 Internet

 Компоненты для создания Web серверов

 WebSnap

 Компоненты для создания Web серверов, содержащих сложные страницы, управляемые данными

 FastNet

 Различные протоколы доступа к Internet

 Decision Cube

 Компоненты для многомерного анализа данных

 QReport

 Компоненты для подготовки отчетов (диаграмм, графиков и т. п.)

 Dialogs

 Диалоги. Содержит системные диалоги типа «Открыть файл», «Закрыть файл» и т. п.

 Win 3.1

 Windows 3.1. Содержит компоненты в стиле Windows 3.1

 Samples

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

 ActiveX

 Содержит некоторые компоненты ActiveX

 COM+

 Содержит компонент, дающий доступ к каталогу СОМ+. содержащему данные по конфигурации СОМ+

 Servers

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

 Indy Clients

 Содержит компоненты клиентских приложений Internet Direct (Indy), дающих доступ к различным протоколам Internet из приложений Delphi, C++ Builder и Kylix

  Indy Servers

 Содержит компоненты серверных приложений Internet Direct

 Indy Mask

 Различные вспомогательные компоненты приложений Internet Direct

 Office97

 Оболочки VCL для распространенных серверов СОМ офисных приложений Microsoft

Пусть вас не пугают неизвестные аббревиатуры в таблице типа BDE, ADO, COM и др. С этими понятиями вы разберетесь позже, когда начнете их использовать в собственных программах. Здесь они приведены лишь для общего обзора. Теперь рассмотрим назначение наиболее часто используемых компонентов. С некоторыми из них мы уже познакомились ранее. Начнем знакомство с закладки Standard.

Рис.1

Компоненты Standard На этой закладке располагаются компоненты (рис. 1), с помощью которых происходит подключение к программе стандартных интерфейсных элементов, имеющихся во всех версиях операционной системы Windows. Рассмотрим эти компоненты но порядку слева направо. Компонент Frames (кадр) предназначен для создания контейнера (окна) для размещения других компонентов. Данный компонент очень похож на форму Form. Для размещения этого компонента на форме необходимо первый раз создать его с помощью команд File—>New—>Frame. Именно такое сообщение появляется при попытке размещения этого компонента стандартным образом (рис. 2).

Рис.2

Дело в том, что компонент Frame первый раз должен быть создан через главное меню, поскольку является слюжным. После его создания или создания нескольких разных компонентов можно пользоваться стандартным способом размещения их на форме путем выбора имеющихся фреймов в раскрывающемся списке. Для практики создайте компонент Frame2 с помощью команды File—>New—>Frame, a затем перейдите на форму и щелкните дважды но компоненту Frames на закладке Standard панели визуальных компонентов. Перед вами должно открыться окно (рис. 3), из которого можно выбрать компонент Frame2. Компонент  MainMenu (главное меню) предназначен для создания главного меню программы. С этим и другими компонентами мы познакомимся поближе чуть позже н процессе создания новых программ.

Рис.3

 

Приведем краткие описания некоторых компонентов.

  • PopupMenu(всплывающее меню) предназначен для создания всплывающего меню некоторых компонентов. Обычно с помощью этого компонента создается контекстное меню.

  • Label(этикетка) создает на форме текстовую метку или надпись.

  • Edit(редактирование) создает на форме поле для редактирования текстовой строки.

  • Memoотображает на форме поле для редактирования множества текстовых строк. Обычно служит для создания редакторов и полей, для вывода блоков данных.

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

  • Checkbox(ячейка состояния) позволяет создавать на форме приложения ячейку с двумя состояниями (без галочки и с галочкой) и строкой названия. Щелчок левой кнопкой мыши по этому компоненту во время работы программы вызывает каждый раз изменение состояния компонента на противоположное. В программе всегда можно узнать состояние этого компонента и тем самым выполнять то или иное действие.

  • RadioButton(радиокнопка) создает круглое поле с двумя состояниями (с точкой и без точки) и текстовой строкой, поясняющей ее назначение в программе. Обычно несколько таких компонентов, расположенных на форме, позволяют переключить только один элемент из группы. Для наглядности сказанного и закрепления материала на практике создайте новое приложение и расположите на форме несколько компонентов RadioButton. После этого запустите приложение на выполнение и пощелкайте левой  кнопкой мыши поочередно по каждому из них. Вы увидите, что можно изменить состояние только для ОДНОГО из этих компонентов, т. к. остальные компоненты переключают при этом свое состояние автоматически.

  • ListBox(окно списка) создает прямоугольное поле для отображения текстовых сгрок с возможностью их выбора, добавления или удаления при работе программы.

  • ComboBox(комбинированный список) позволяет создавать на форме элемент, являющийся комбинацией строки ввода и выпадающего списка для выбора. Фактически объединяет в себе компоненты ListBox и Edit.

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

  • GroupBox(окно группы) служит для создания области, визуально объединяющей на форме несколько интерфейсных элементов.

  • RadioGroup(группа радиокноиок) позволяет создавать на форме контейнер в виде прямоугольной рамки для объединения группы взаимоисключающих радиокнопок.

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

  • Action  List(список действий) осуществляет управление взаимодействием между интерфейсными  элементами и логикой программы. На рис. 4 приведено окно формы, на которой расположены все перечисленные выше компоненты в порядке их описания слева направо и сверху вниз, начиная с MainMenu.

Рис.4

Компоненты Addition

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

Рис.5

Рассмотрим компоненты, расположенные на этой закладке.

  • BitBtn(графическая кнопка) служит для создания на форме приложения кнопки с изображением и надписью.

  • SpeedButton(быстрая кнопка) позволяет создать на форме кнопку с изображением без надписи. Знаком нам из панели быстрых кнопок.

  • MaskEdit(форматированный ввод) предназначен для создания прямоугольного поля ввода данных в специально заданном формате. Позволяет проверить корректность вводимых данных с помощью маски.

  • StringGrid(строковая таблица) служит для создания таблицы (сетки), состоящей из текстовых строк.

  • DrawGrid(графическая таблица) создает на форме двумерную таблицу для отображения графических данных.

  • Image(образ) предназначен для создания на форме невидимого контейнера, в который можно поместить один графический файл с битовым образом, пиктограммой или метафайл.

  • Shape(фигура) позволяет рисовать на форме простые геометрические фигуры, такие как окружность, квадрат, эллипс или прямоугольник при изменении свойства Shape. Допускает изменение цвета фигур и их штриховки при изменении свойств Color (цвет) и Style (стиль) группы Brush (кисть).

  • Bevel(скос) создает объемные рамки для различных групп объектов. Служит только для обрамления и не позволяет выполнять программную функцию.

  • ScrollBox(контейнер прокрутки) позволяет создавать контейнер для объектов. Автоматически снабжается линейками прокрутки, если помещенный в него объект превышает размеры самого контейнера на экране.

  • ChecklistBox(список с ячейками) отображает список элементов, у каждого из которых есть собственная ячейка состояния.

  • Splitter(разделитель) разделяет рабочую область программы на две части изменяемой ширины и позволяет менять их размеры во время работы программы.

  • StaticText(статический текст) создает на форме текстовую строку с некоторыми возможностями ее оформления.

  • Chart(диаграмма) предназначен для создания и вывода на печать многоцветных графиков и диаграмм.

Компоненты Win32

Рис.6

Компоненты, расположенные на закладке Win32 (рис. 6), обеспечивают подключение к программе интерфейсных элементов, используемых в 32-разрядных версиях операционной системы Windows. Использование данных компонентов позволяет придать программе современный и профессиональный вид. Рассмотрим основные компоненты данной закладки.

  • TabControl(управление табуляцией) служит для создания перекрывающих друг друга закладок и интерфейсов в стиле палитры компонентов.

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

  • Image List(список образов) создает на форме невидимый контейнер для набора графических изображений одинакового размера. Позволяет выбирать изображение из списка.

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

  • TrackBar(дорожка с полосками) создает на форме шкалу с метками и регулятором текущего положения. Применяется в программе как регулятор громкости звука, регулятор размера изображения и т. п.

  • Progress Bar{индикатор прогресса) создает на форме прямоугольный индикатор для отображения процесса выполнения длинных процедур в программе (копирования, поиска и т. п.).

  • UpDown (вверх-вниз) служит для создания интерфейсных элементов с возможностью увеличения или уменьшения какого-либо значения с помощью кнопок данного компонента «вверх» и «вниз».

  • HotKey(горячая клавиша) обеспечивает возможность создания пользователем «горячих» клавиш, определяющих быстрый доступ к разделам меню.

  • Animate (аниматор) создает на форме невидимый контейнер для воспроизведения видеозаписей в формате avi.

  • DataTimePicker(сборщик даты и времени) создает в программе интерфейс для ввода даты и времени.

  • MonthCalendar(месячный календарь) размещает на форме календарь с отображением всех дней месяца и возможностью перелистывания месяцев и корректировки даты текущего дня.

  • TreeView(просмотр дерева) позволяет создавать в программе иерархическое древовидное отображение данных.

  • ListView(вид списка) создает список элементов с отображением в различных стилях (крупные значки, мелкие значки, таблица и пр.).

  • HeaderControl(управление заголовком) служит для управления панелями, расположенными под данным компонентом.

  • StatusBar(панель состояния) создает контейнер в нижней части формы для отображения в ней статусной информации. Например, состояние кнопок Caps Lock, Num Lock и Scroll Lock.

  • ТооBar(панель инструментов) позволяет создать на форме контейнер для размещения на ней быстрых кнопок.

  • CoolBar(холодная панель) позволяет строить перестраиваемые панели, состоящие из полос.

  • PageScroller(страница прокрутки) создает на форме контейнер для прокрутки элементов, не умещающихся па экране целиком,

  • ComboBoxEx(расширенный выпадающий список) позволяет создать на форме выпадающий список элементов.

Компоненты System

Рис.7

Компоненты закладки System (рис. 7) обеспечивают подключение к программе специальных элементов управления и элементы межпрограммного интерфейса. Рассмотрим расположенные на данной закладке компоненты. • Timer(таймер) предназначен для создания невидимого на форме элемента, с помощью которого можно отслеживать интервалы времени в программе. Данным компонентом мы уже пользовались в программе timedate. •PaintBox(рамка рисования) создает на форме элемент, на котором можно рисовать. •MediaPlayer(многофункциональный проигрыватель) создает на форме панель для проигрывания файлов с различными форматами и управления устройствами мультимедиа. С помощью него можно управлять проигрывателем компакт-дисков, звуковым адаптером и т. д. •OleContainer(контейнер OLE) реализует в программе механизм внедрения и связывания объектов OLE (Object Linking and Embedding — связывание и встраивание объектов)} с помощью которого можно передавать данные между различными программами в среде Windows. •DdeClientConv(клиент DDE) реализует в программе механизм динамического обмена данными DDE (Dynamical Data Exchange), являющийся расширением операционной системы Windows. Данный механизм предназначен для передачи данных от одной программы (сервера), к другой — приемнику (клиенту). • DdeClientltem(элемент клиента данных DDE) определяет элемент динамического обмена и реализует в программе механизм динамического обмена данными между клиентами. •DdeServerConv(сервер DDE) устанавливает режим динамического обмена между программами сервера DDE. •DdeServerltem(элемент данных сервера DDE) определяет режим динамического обмена данными сервера DDE.Компоненты Dialog

Рис.8

Компоненты закладки Dialog (рис. 8) позволяют создавать диалоги с пользователем программы. Диалоги придают программе гибкость и позволяют пользователю манипулировать объектами программы во время ее работы. Закладка содержит десять компонентов стандартных диалогов. • OpenDialog(диалог открытия) позволяет создать в программе диалог открывания файлов. Данный диалог имеет возможность установки фильтров на имя и расширение открываемых файлов. •SaveDialog(диалог сохранения) создает в программе диалог с возможностью выбора в программе имени файла для сохранения. Данный диалог обычно используется в связке с компонентом OpenDialog. •OpenPictureDialog(диалог открытия рисунка) предназначен для создания диалогов открытия файлов с графическим изображением. Он отличается от компонента OpenDialog возможностью предварительного просмотра файла изображения непосредственно в окне диалога. •SavePict are Dialog(диалог сохранения рисунка) создает диалог сохранения файла с изображением. Так же, как и OpenPictureDialog, имеет возможностью предварительною просмотра файла изображения непосредственно в окне диалога. •FontDialog(диалог выбора шрифта) предоставляет возможность создания диалога для выбора шрифта текста в программе. •ColorDialog(диалог выбора цвета) предназначен для создания диалога для выбора цвета из палитры цветов Windows. Полученный числовой параметр цвета после этого можно передать любому компоненту, имеющему свойство Color. • PrintDialog(диалог выбора принтера) позволяет организовать в программе диалог выбора печатающего устройства из числа установленных на компьютере. Кроме того, данный диалог позволит задать число копий, выбрать или задать диапазон печатаемых страниц и т. п. •PrinterSetupDialog(диалог установки принтера) создает в программе диалог настройки параметров печатающего устройства, к числу которых относятся выбор типа бумаги и ее ориентация, параметры отображения графики и т. д. •FindDialog(диалог поиска) открывает в программе диалог поиска текста с возможностью настройки параметров поиска. •Replace Dialog(диалог замены) открывает в программе диалог поиска текста с возможностью замены найденного фрагмента на заданный пользователем. Обладает всеми возможностями компонента FindDialog.

Кроме рассмотренных выше закладок с компонентами на палитре присутствует множество других закладок (Samples, Office2k, Internet Express, BDE, ADO и т. п.) для более сложных компонентов, используемых профессиональными программистами. Описание всех компонентов выходит за рамки данной статьи. Поэтому далее приведено краткое описание содержимого лишь некоторых из этих закладок. Компоненты Samples

Рис.9

Компоненты закладки Samples (рис. 9) представляют собой примеры компонентов для управления программой. Пользователь имеет возможность создавать собственные компоненты, которые будут помешаться на этой закладке. Поскольку это всего лишь примеры, они снабжены в Borland C++ Builder 6 сокращенной документацией. Рассмотрим некоторые компоненты данной закладки. • Tray Icon(икона поддона) позволяет сворачивать программу в правое подвальное окно, имеющее системное название tray (поддон). •Performance Graph(график исполнения) служит для наглядного отображения используемых ресурсов компьютера. •CSpinButton(кнопка вращения) используется для создания кнопок-счетчиков. •CSpinEdit(редактор вращения) применяется для создания окна редактирования в комбинации с кнопкой-счетчиком. •CColorGrid(цветная сетка) служит для создания таблицы цветов, в которой пользователь может выбирать требуемый цвет. •CGauge(измеритель) предназначен для отображения изменения какой-либо переменной в программе. •CDirectory Outline(схема каталога) используется для отображения структуры каталогов выбранного диска. •CCalendar(календарь) применяется для отображения календаря На указанный месяц в стандартном формате. • Pie(сектор) используется для создания индикатора хода процесса в виде секторной диаграммы. Имеет встроенный редактор Edit Angles для изменения углов сектора, который вызывается через контекстное меню компонента.Компоненты Office2k

Рис.10

Компоненты закладки Office2k (рис. 10) позволяют интегрировать приложения с программами из пакета Microsoft Office. Рассмотрим назначение компонентов данной закладки. Первые пять компонентов позволяют работать с документами, созданными в формате Microsoft Word. Они управляют шрифтами и форматированием документа, а также определяют режим динамического обмена данными (DDE) сервера. Следующие три компонента позволяют внедрить в приложение возможность создания презентаций Microsoft Power Point. За ними следует группа компонентов, позволяющая внедрять в приложение сервисные функции почтовых программ. Затем следует группа компонентов, предназначенная для работы с электронными таблицами Microsoft Excel. Кроме того, компонент ExcelChart данной группы позволяет создавать в программе специальные диаграммы. Далее на закладке следуют компоненты, с помощью которых производится работа с базами данных Microsoft Access. Компоненты данной группы разделены по назначению. Часть из них отвечает непосредственно за работу с данными, а другая часть — за создание инструментов оперирования данными. Компоненты Data Access

Рис.11

Компоненты закладки Data Access (рис. 11) служат для создания в приложении элементов управления доступом к базам данных. Эти компоненты позволяют включать в создаваемую программу возможность работы пользователя с информацией базы данных. Компоненты Data Control

Рис.12

Компоненты закладки Data Control (рис. 12) создают специальные элементы управления базами данных, доступные пользователю из приложения. Компоненты данной закладки позволяют создавать в приложении интерфейсы баз данных. Это могут быть поля для редактирования базы данных текста, списков, рисунков и т. п. Компоненты Internet Express

Рис.13

Компоненты закладки Internet Express (рис. 13) позволяют осуществить построение приложений с архитектурой клиент-сервер, которые действуют по протоколам TCP/IP и HTTP. Кроме того, они позволяют создать распределенное сетевое приложение, WEB-сервер, который будет выступать в роли клиентского приложения MIDAS (Multi-tier Distributed Application Services — многоуровневый сервис распределенных приложений). Это технология» разработанная компанией Inprise/Borland для создания и эксплуатации надежных высокопроизводительных распределенных систем на основе многозвенной архитектуры. Компонент XML Broker (XML брокер) представляет пакеты данных от поставщика сервисного приложения с кодировкой HML. Компонент IneiXPage Producer (производитель Интернет-страниц) позволяет сгенерировать страницу HTML с информацией, полученной от сервисного приложения MIDAS. Компоненты Internet

Рис.14

Компоненты закладки Internet (рис. 14) обеспечивают подключение к программе специальных элементов для создания клиентских и серверных приложений с протоколами TCP/IP и HTTP. Компонент ClientSockets (клиент подключений) позволяет создавать приложения для клиентов сетевого подключения по протоколу TCP/IP. Компонент ServerSockets (сервер подключений) превращает приложение в сервер TCP/IP. Данный сервер позволяет контролировать определенный порт на предмет распознавания запросов и установления соединений. Как видно из описания компонентов, среда разработки Borland C++ Builder 6 позволяет создавать программы самого разнообразного назначения во многих сферах компьютерных технологий.   Продолжение следует

Статья  123456

ЛИТЕРАТУРА: 1. В. В. Подбельский. Язык C++ — М.: Финансы и статистика, 2003.

9.4. Справочная система C++Builder и программа ее конфигурирования OpenHelp.

C++Builder Help

вызов справки по C++Builder и C++

C++Builder Tools

вызов справок по инструментарию C++Builder 6

Windows SDK

вызов справок по Windows

STLport Help

вызов справки по стандартной библиотеке шаблонов (Standard Template Library), реализованной в виде файлов HTML

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

  • в разделе Главного меню Help через Интернет;

  • непосредственно в разделе Главного меню;

  • из любого окна C++Builder можно получить контекстно-зависимую справку;

  • выделением на форме компонента, нажать F1, чтобы получить тему справки по выделенному комп.;

  • находясь в окне Редактора Кода, установите курсор на имени какой-то функции, свойства или метода какого-то компонента и нажмете F1, то вам также будет показана справка по интересующему вас вопросу; так же можно получить контекстную справку о свойстве компонента из окна Инспектора Объектов, выделив соответствующее свойство.

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

Если вас интересует справка по C++ или C++Builder, то в подобных случаях можно посоветовать выходить на требуемую тему через страницу справки Содержание. Если вам требуется информация о компоненте, свойстве, методе, событии, то наиболее удобно раскрыть на этой странице книжку "Visual Component Library Reference" (Обзор библиотеки визуальных компонентов), затем раскрыть "Alphabetical Object and Component Listing" (Алфавитный список объектов и компонентов) и в этом списке отыскать по алфавиту требуемый компонент. А из окна справки компонента всегда можно найти все его свойства, методы и события.

Если вам нужно найти справку по функциям, объявленным в библиотеке компонентов, и обычный контекстный поиск не помогает, то удобно на странице справки Содержание открыть книжку "Visual Component Library Reference" (Обзор библиотеки визуальных компонен-тов), затем раскрыть "Alphabetical Routines Listing" (Алфавитный список функций) или "Categorical Routines Listing" (Список функций по категориям), а затем найти нужную функцию в соответствующем разделе.

Если вам нужно найти справку по типам и функциям С или C++, то удобно на странице справки Содержание открыть одну из книжек "С Runtime Library Reference" (Обзор библиотеки С) или "Standard C++ Library". В соответствующих подразделах вы найдет списки всех функций и типов.

Для получения справки по API Windows, по сообщениям Windows и т.п. надо воспользоваться разделом Windows SDK меню Help. Контекстные справки по Windows из окон ИСР C++Builder не вызываются.

Настройка справочной системы. Вызов программы Borland OpenHelp командой Help | Customize. Окно этой программы показано на рис. OpenHelp предоставляет вам простой путь конфигурирования файлов справки .hlp. При этом можно добавлять и убирать файлы справки, которые будут появляться в таблице содержания и в предметном указателе справки. В частности, можно встроить в систему собственные справочные файлы на русском языке. OpenHelp хранит информацию о справочной системе в проекте. Файл этого проекта имеет расширение .ohp и хранится в каталоге /Help. Вы можете изменить состав справочной системы: таблицы Содержание (Contents), таблицы Предметный Указатель и контекстной справки, доступ к которой осуществляется из ИСР C++Builder клавишей F1.

OpenHelp позволяет также удалить ссылки системного реестра на устаревшие файлы справки. Дело в том, что нередко системный реестр и файл WINHELP.INI загромождаются ссылками на устаревшие файлы справок. Вы можете быстро очистить от них реестр, выполнив в окне OpenHelp команду File Clean Registry

Ниже изложена методика модификации справочной системы. Таблица Содержание хранится в файле с расширением .toc, подобном файлам содержания Windows .cnt, только без предложений Include. Чтобы добавить файлы в таблицу Содержание, надо сделать следующее: 1. Перейти в окне OpenHelp на страницу Contents (см. рис.). 2. Выполнить команду Edit | Add Files. 3. Выбрать или написать имена одного или более добавляемых файлов .toc или .cnt. 4. Щелкнуть на ОК. 5. Вы можете переместить файл на желательное вам место среди других файлов. Для этого выделите файл и переместите его, пользуясь кнопками со стрелками на странице Contents. 6. Выполнить команду File | Save Project или File | Save Project As. Для удаления файла из таблицы Содержание надо: 1. Перейти в окне OpenHelp на страницу Contents. 2. Выделить удаляемые файлы. 3. Выполнить команду Edit | Remove. 4. Выполнить команду File | Save Project или File | Save Project As.

Таблица Предметный Указатель хранит ссылки на файлы справок .hlp. Чтобы добавить файлы в таблицу Предметный Указатель или удалить файлы из нее надо произвести те же операции, которые были рассмотрены выше, но только работать на странице Index и добавлять или удалять файлы .hlp. Контекстно-зависимый поиск справки состоит из файлов .hlp, доступных с помощью так называемых макросов ALink. Эти макросы используются в C++Builder при нажатии клавиши F1 в Инспекторе Объектов, Редакторе Кодов, палитре компонентов. Чтобы добавить файлы в контекстно-зависимый поиск, надо произвести те же операции, которые описаны выше, но на странице Link.

10.1. Компиляция и компоновка проекта.

(1) команда Run=>Run(производится выполнение приложения после компиляции); (2) горячая клавишаF9(производится выполнение приложения после компиляции); (3)Cancel- прервать процесс компиляции; (4) командаRun=>Parameters- передача параметров перед компиляцией; (5) командаProject=>Compile Unit- компиляция отдельного модуля в obj-файл; (6) командаProject=>Make Project- компиляция модулей, тексты которых изменены с момента предыдущей компоновки проекта, в obj-файл, а затем в exe-файл (не производится выполнение приложения); (7) командаProject=>Build Project- компиляция всех модулей независимо от того, когда они в последний раз изменялись (не производится выполнение приложения, подходит при изменениях в опциях компиляции); (8) Еще команды компиляции:Project=>Make All ProjectиProject=>Build All Projectподобны командам Make и Build, но при работе с группой проектов; (9) командаTools=>Environment Options=>страница Preferences=>опция Background Compilationвключена, то компиляция будет производиться в фоновом режиме.

О фоновом режиме компиляции.

Если фоновый режим компиляции отключен, то после окончания компиляции рассмотрен-ными командами в Окне компиляции и компоновки появляется одно из трех итоговых сооб-щений: (1), (2), (3) (1) "Done: Make" - "Результат: выполнено"; (2) "Done: There are errors" - "Результат: имеются ошибки"; (3) "Done: There are warnings" - "Результат: имеются предупреждения".

  • Просматривайте все замечания компилятора и старайтесь найти и устранить причины, вызвавшие эти замечания. Игнорируя их, вы рискуете снизить надежность и эффективность своего приложения.

  • Выдача компилятором всех своих замечаний устанавливается: Project => Options => страница Compiler => группа опций Warning => опция All включенная.

  • Двойной щелчок мышью на предупреждении в Окне замечаний приводит к выделению строки в Окне Редактора Кода, в которой может быть скрыта ошибка.

  • Включение Окна замечаний в Окне Редактора Кода: (1) щелчок правой кнопки мыши в Окне Редактора Кода, (2) выбор в контекстном меню команды Message Viev.

  • Включение опции вывода на экран значений переменных: (1), (2) (1) View => Debug Window => Watchersили (2) Подвести курсор к переменной и нажатьCtrl-F5.

10.3. Выполнение приложения по шагам.

Чаще для того, чтобы найти причину ошибки, надо выполнить какой-то фрагмент программы, наблюдая изменения переменных при выполнении каждой команды.

Для прохода фрагмента программы по шагам можно использовать команды:

Команда

Горячие" клавиши

Пояснения

Step Over (По шагам без захода в...)

F8

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

Trace Into (Трассировка с захо-дом в...)

F7

Пошаговое выполнение программы с заходом в вызываемые функции.

Trace to Next Source Line (Трас-сировка до следующей строки)

Shift+F7

Переход к следующей исполняемой строке.

Run to Cursor (Выполнить до курсора)

F4

Команда выполняет программу до того выполняемого оператора, на котором расположен курсор в окне редактора кода.

Run Until Return (Выполнить до выхода из функции)

Shift+F7

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

Show Execution Point (Показать точку выполнения)

--

Команда помещает курсор на операторе, который будет выполняться следующим.

Чтобы ввести простую (безусловную) точку прерывания, достаточно в окне Редактора Кода щелкнуть мышью на полоске левее кода требуемой строки. Строка окрасится в красный цвет и на ней появится красная точка. Если вы теперь запустите приложение на выполнение и начнете с ним работать, то произойдет прерывание выполнения, как только управление перейдет к строке, в которой указана точка прерывания.

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

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

Точки прерывания можно устанавливать только на выполняемых операторах. Условные точки прерывания - мощный инструмент отладки приложений, содержащих циклы.

В C++Builder 6 и 5 имеется еще одно средство отладки - Инспектор Отладки Debug Inspector. Инспектор Отладки позволяет вам получить исчерпывающую информацию о любой переменной в приложении и дает возможность, как и окно оценки и модификации Evaluate/Modify, изменить значение пе-ременной и продолжить выполнение приложения с этим новым значением.

Вызов этого инструмента осуществляется командой Run | Inspect, которая доступна только во время выполнения приложения при останове средствами отладки или вследствие генерации исключения. При останове вы можете поставить курсор в окне Редактора Кода на имя интересующей вас переменной и выполнить команду Run | Inspect. Другой способ - вызвать ту же команду из всплывающего меню (Debug | Inspect). Ну, а проще всего - нажать "горячие" клавиши Alt+F5. Попробуйте сделать это при генерации исключения в нашем тестовом приложении. Если после прерывания выполнения вы поставите курсор на пустое место в коде и вызовите Инспектор Отладки, перед вами откроется окно, в котором вы можете написать имя интересующей вас переменной, например, А и щелкнуть ОК. Инспектор Отладки позволяет исследовать различные данные: переменные, массивы, классы, функции, указатели. Находясь в окне Инспектора Отладки, можно щелкнуть правой кнопкой мыши и выбрать одну из команд:

Range

Просмотр данных в заданном диапазоне.

Change

Перейти в окно Change для изменения значения элемента.

Show Inherited

Если этот флаг включен, то на страницах окна отображаются все свойства и методы, как объявленные в данном классе, так и наследуемые. Если флаг выключен, то отображается только то, что объявлено в данном классе.

Show Fully Qualified Names

Отображение наследуемых элементов с их полными именами.

Inspect

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

Descend

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

New Expression

Эта команда позволяет вам задать новое выражение для анализа.

Type Cast

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

CUI - Graphical User Interface - графический интерфейс пользователя11.1.1. Общие рекомендации по разработке графического интерфейса.

Соседние файлы в папке ЛИТЕРАТУРА