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


Демонстрация возможностей C++ Builder


В этой главе ...
В этой главе... Для демонстрации возможностей C++ Builder и технологии визуального проектирования и событийного программирования займемся разработкой программы, используя которую можно вычислить с...
Окно программы вычисления силы тока в электрической цепи
Рисунок 2.1. Окно программы вычисления силы тока в электрической цепи Чтобы начать разработку нового приложения (так принято называть прикладные программы), надо запустить C++ Builder или, если C+...
Форма
Форма Работа над новым проектом (так в C++ Builder называется разрабатываемое приложение) начинается с создания стартовой формы — главного окна программы. Стартовая форма создается путем изменения...
Таблица 2 1 Свойства формы (объекта Form)
Таблица 2.1. Свойства формы (объекта Form) СвойствоОписаниеNameИмя формы. В программе имя формы используется для управления формой и доступа к компонентам формыCaptionТекст заголовкаWidthШирина ф...
Изменение значения свойства Caption путем ввода значения
Рисунок 2.2. Изменение значения свойства Caption путем ввода значения Аналогичным образом можно установить значения свойств Height и width, которые определяют высоту и ширину формы. Размер формы,...
Установка значения свойства путем выбора из списка
Рисунок 2.3. Установка значения свойства путем выбора из списка...
Изменение значения уточняющего свойства
Рисунок 2.4. Изменение значения уточняющего свойства В результате выбора некоторых свойств (щелчка кнопкой мыши на свойстве), рядом со значением свойства появляется командная кнопка с тремя точкам...
Чтобы задать свойства шрифта щелкните
Рисунок 2.5. Чтобы задать свойства шрифта, щелкните на кнопке с тремя точками...
Таблица 2 2 Значения свойств стартовой формы
Таблица 2.2. Значения свойств стартовой формы СвойствоЗначениеКомментарийCaptionСила тока&nbsp Height200&nbsp Width330&nbsp BorderStylebsSingleТонкая граница не позволяет изменить раз...
Компоненты
Компоненты Программа вычисления тока в электрической цепи должна получить от пользователя исходные данные — напряжение и величину сопротивления. Эти данные могут быть введены с клавиатуры в поля р...
Компонент Edit — поле редактирования
Рисунок 2.6. Компонент Edit — поле редактирования...
Результат добавления в форму компонента Edit
Рисунок 2.7. Результат добавления в форму компонента Edit Каждому добавленному компоненту автоматически присваивается имя, которое состоит из названия компонента и его порядкового номера. Например...
Таблица 2 3 Свойства компонента Edit (объект типа TEdit)
Таблица 2.3. Свойства компонента Edit (объект типа TEdit) СвойствоОпределяет (задает)NameИмя компонента. Используется в программе для доступа к компоненту и его свойствам, в том числе к тексту, к...
Форма с двумя компонентами
Рисунок 2.8. Форма с двумя компонентами Значения некоторых свойств компонента, определяющих, например, размер и положение компонента на поверхности формы, можно изменить при помощи мыши....
Выбор компонента в окне Object Inspector
Рисунок 2.9. Выбор компонента в окне Object Inspector...
Выбор компонента в окне Object TreeView
Рисунок 2.10. Выбор компонента в окне Object TreeView Для того чтобы изменить положение компонента, необходимо установить курсор мыши на его изображение, нажать левую кнопку мыши и, удерживая ее н...
Отображение значений свойств Left
Рисунок 2.11. Отображение значений свойств Left и Тор при изменении положения компонента Для того чтобы изменить размер компонента, необходимо его выделить, установить указатель мыши на один из ма...
Отображение значений свойств Height
Рисунок 2.12. Отображение значений свойств Height и Width при изменении размера компонента В табл. 2.4 приведены значения свойств компонентов Edit1 и Edit2 разрабатываемого приложения (значения ос...
Таблица 2 4 Значения свойств компонентов Edit1 и Edit2
Таблица 2.4. Значения свойств компонентов Edit1 и Edit2 &nbsp СвойствоКомпонентEdit1Edit2Text&nbsp &nbsp Тор4872Left144144Width6565...
Форма после настройки компонентов Edit
Рисунок 2.13. Форма после настройки компонентов Edit Помимо полей редактирования в окне программы находится текст — краткая информация о программе и назначении полей ввода. Для вывода текста на по...
Компонент Label — поле вывода текста
Рисунок 2.14. Компонент Label — поле вывода текста...
Таблица 2 5 Свойства компонента Label
Таблица 2.5. Свойства компонента Label СвойствоОпределяет (задает)NameИмя компонента. Используется в программе для доступа к свойствам компонентаCaptionОтображаемый текстFontШрифт, используемый д...
Таблица 2 6 Значения свойств компонентов Label1 — Label4
Таблица 2.6. Значения свойств компонентов Label1 — Label4 Свойство&nbsp Компонент&nbsp Label1Label2Label3Label4AutoSizefalsetruetruefablseWordwraptruefalsefalsetrueCaptionВведите напряжен...
Вид формы после добавления и настройки полей вывода текста
Рисунок 2.15. Вид формы после добавления и настройки полей вывода текста Последнее, что надо сделать на этапе создания формы — это добавить в форму две командные кнопки: Вычислить и Завершить. Наз...
Командная кнопка — компонент Button
Рисунок 2.16. Командная кнопка — компонент Button После добавления к форме двух командных кнопок нужно установить значения их свойств в соответствии табл. 2.7....
Таблица 2 7 Свойства компонента Button (командная кнопка)
Таблица 2.7. Свойства компонента Button (командная кнопка) СвойствоОписаниеNameИмя компонента. Используется в программе для доступа к компоненту и его свойствамCaptionТекст на кнопкеEnabledПризна...
Окончательный вид формы программы "Сила тока"
Рисунок 2.17. Окончательный вид формы программы "Сила тока" Завершив работу над формой, можно приступить к созданию программы. Но перед этим рассмотрим два важных понятия: событие и функ...
Таблица 2 8 Значения свойств компонентов Button1 и Button2
Таблица 2.8. Значения свойств компонентов Button1  и Button2 &nbsp СвойствоКомпонентButton1Button2CaptionВычислитьЗавершитьTop144144Left16104Height2525Width7575  ...
Событие и функция обработки события
Событие и функция обработки события Вид созданной формы подсказывает, как работает приложение. Очевидно, что пользователь должен ввести в поля редактирования исходные данные и щелкнуть мышью на кн...
Таблица 2 9 События
Таблица 2.9. События СобытиеПроисходитOnClickПри щелчке кнопкой мышиOnDb1ClickПри двойном щелчке кнопкой мышиOnMouseDownПри нажатии кнопки мышиOnMouseUpПри отпускании кнопки мышиOnMouseMoveПри пе...
На вкладке Events перечислены
Рисунок 2.18. На вкладке Events перечислены события, которые может воспринимать компонент (в данном случае — командная кнопка)...
Шаблон функции обработки события сгенерированный C++ Builder
Рисунок 2.19. Шаблон функции обработки события, сгенерированный C++ Builder C++ Builder присваивает функции обработки события имя, которое состоит из двух частей. Первая часть имени идентифицирует...
Листинг 2 1
Листинг 2.1. Простейшая обработка события onclick на кнопке Вычислить void__fastcall TForml::ButtonlClick(TObject *Sender) { float u; // напряжение float r; // сопротивление float i; // ток // пол...
Листинг 2 2
Листинг 2.2. Процедура обработки события Onclick на кнопке Завершить void __fastcall TForml::Button2Click(TObject*Sender) { Forml->Close(); }  ...
Редактор кода
Редактор кода Во время набора текста программы редактор кода автоматически выделяет элементы программы: полужирным шрифтом — ключевые слова языка программирования (if, else, int, float и др.), кур...
Кнопка Toggle Form/Unit позволяет
Рисунок 2.20. Кнопка Toggle Form/Unit позволяет быстро переключаться между формой и редактором кода  ...
Система подсказок
Система подсказок Редактор кода поддерживает функцию контекстно-зависимой подсказки, которая во время набора текста программы автоматически выводит краткую справочную информацию о свойствах и мето...
Редактор кода автоматически выводит
Рисунок 2.21. Редактор кода автоматически выводит список свойств и методов объекта (компонента) Следует обратить внимание, что если список свойств и методов не появляется, то это значит, что в про...
Пример подсказки
Рисунок 2.22. Пример подсказки  ...
Навигатор классов
Навигатор классов Окно редактора кода разделено на две части (Рисунок 2.23). В правой части находится текст программы. Левая часть, которая называется навигатор классов (ClassExplorer), облегчает...
Окно ClassExplorer облегчает навигацию по тексту программы
Рисунок 2.23. Окно ClassExplorer облегчает навигацию по тексту программы Окно навигатора классов можно закрыть обычным образом. Если окно навигатора классов не доступно, то для того чтобы оно появ...
Шаблоны кода
Шаблоны кода В процессе набора текста удобно использовать шаблоны кода (Code Templates). Шаблон кода — это инструкция программы, записанная в общем виде. Например, шаблон для инструкции if выгляди...
Список шаблонов кода отображается
Рисунок 2.24. Список шаблонов кода отображается в результате нажатия <Ctrl>+<J>...
В поля диалогового окна надо ввести
Рисунок 2.25. В поля диалогового окна надо ввести имя шаблона и его краткое описание Программист может создать свой собственный шаблон кода и использовать его точно так же, как и стандартный. Для...
Пример шаблона кода программиста
Рисунок 2.26. Пример шаблона кода программиста  ...
Справочная система
Справочная система В процессе набора текста программы можно получить справку о конструкции языка, типе данных, классе или функции. Для этого нужно в окне редактора кода набрать слово, о котором на...
В диалоговом окне следует уточнить раздел
Рисунок 2.27. В диалоговом окне следует уточнить раздел Справочную информацию можно получить также, выбрав из меню Help команду C++ Builder Help. В этом случае на экране появится стандартное окно...
Поиск справочной информации по ключевому слову
Рисунок 2.28. Поиск справочной информации по ключевому слову  ...
Сохранение проекта
Сохранение проекта Проект — это набор файлов, используя которые компилятор создает выполняемый файл программы (ехе-файл). В простейшем случае проект составляют: файл описания проекта (bpr-файл), ф...
Сохранение модуля
Рисунок 2.29. Сохранение модуля...
Сохранение проекта
Рисунок 2.30. Сохранение проекта Обратите внимание, что имена файла модуля (срр) и файла проекта (bрr) должны быть разными, т. к. C++ Builder в момент сохранения файла проекта создает одноименный...
Компиляция
Компиляция Процесс преобразования исходной программы в выполняемую состоит из двух этапов: непосредственно компиляции и компоновки. На этапе компиляции выполняется перевод исходной программы в нек...
Результат компиляции в программе есть ошибки
Рисунок 2.31. Результат компиляции: в программе есть ошибки В случае если компилятор обнаружит в программе ошибки и неточности, диалоговое окно Compiling будет содержать информацию о количестве си...
Переход к фрагменту программы который содержит ошибку
Рисунок 2.32. Переход к фрагменту программы, который содержит ошибку Процесс компиляции можно активизировать, выбрав в меню Run команду Run, которая запускает разрабатываемое приложение. Если буде...
Ошибки
Ошибки Компилятор переходит ко второму этапу генерации выполняемой программы только в том случае, если исходный текст не содержит синтаксических ошибок. В большинстве случаев в только что набранно...
Таблица 2 10 Типичные ошибки
Таблица 2.10. Типичные ошибки СообщениеОшибкаUndefined symbol (неизвестный символ)Используется необъявленная переменная Имя переменной, функции или параметра записано неверно. Например, в програм...
Предупреждения и подсказки
Предупреждения и подсказки При обнаружении в программе неточностей, которые не являются ошибками, компилятор выводит подсказки (Hints) и предупреждения (Warnings). Например, наиболее часто выводим...
Таблица 2 11 Предупреждения компилятора
Таблица 2.11. Предупреждения компилятора ПредупреждениеВероятная причина... is declared but never used Possibly incorrect assignment. (вероятно, инструкция присваивания некорректная)В услови...
Компоновка
Компоновка Если в программе нет ошибок, то можно выполнить компоновку. Для этого надо в меню Compile выбрать команду Make или Build. Разница между командами Make и Build заключается в следующем. К...
Запуск программы
Запуск программы Пробный запуск программы можно выполнить непосредственно из среды разработки, не завершая работу с C++ Builder. Для этого нужно в меню Run выбрать команду Run или щелкнуть на кома...
Запуск программы из среды разработки
Рисунок 2.33. Запуск программы из среды разработки  ...
Ошибки времени выполнения
Ошибки времени выполнения Во время работы приложения могут возникать ошибки, которые называются ошибками времени выполнения (run time errors) или исключениями (exceptions). В большинстве случаев п...
Пример окна с сообщением об ошибке
Рисунок 2.34. Пример окна с сообщением об ошибке времени выполнения (программа запущена из Windows) Причина возникновения ошибки в следующем. В тексте программы дробная часть числа от целой отделя...
Пример сообщения о возникновении
Рисунок 2.35. Пример сообщения о возникновении исключения (программа запущена из C++ Builder) После возникновения исключения и щелчка на кнопке ОК в диалоговом окне Debugger Exception Notificatio...
Таблица 2 12 Типичные исключения
Таблица 2.12. Типичные исключения ИсключениеВозникаетEConvertError — ошибка преобразованияПри выполнении преобразования, если преобразуемая величина не может быть приведена к требуемому типу. Наи...
Листинг 2 3
Листинг 2.3. Обработка исключений void __fastcall TForml::ButtonlClick(TObject *Sender) { float u; // напряжение float r; // сопротивление float i; // ток // получить данные из полей ввода // в...
Сообщение выведенное функцией ShowMessage
Рисунок 2.36. Сообщение, выведенное функцией ShowMessage Следует обратить внимание на то, что в заголовке окна сообщения, выводимого функцией ShowMessage, указывается название приложения. Название...
Пример окна сообщения
Рисунок 2.37. Пример окна сообщенияЗначение функции MessageDig — число, проверив значение которого можно определить, выбором какой командной кнопки был завершен диалог. В общем виде обращение к фу...
Таблица 2 13 Константы определяющие тип сообщения
Таблица 2.13. Константы, определяющие тип сообщения КонстантаТип сообщенияЗначокmtWarningВнимание...
Таблица 2 14 Константы определяющие кнопки в окне сообщения
Таблица 2.14. Константы, определяющие кнопки в окне сообщения КонстантаКнопкаКонстантаКнопкаmbYesYesmbAbortAbortmbNoNombRetryRetrymbOKOKmblgnoreIgnorembCancelCancelmbAllAllmbHelpHelp&nbsp &am...
Таблица 2 15 Значения функции MessageDlg
Таблица 2.15. Значения функции MessageDlg Значение функции MessageDlgДиалог завершен нажатием кнопкиmr AbortAbortmrYesYesmrOkOkmrRetryRetrymrNoNomrCancelCancelmrlgnoreIgnoremrAllAll  ...
Внесение изменений
Внесение изменений После нескольких запусков программы "Сила тока" возникает желание усовершенствовать программу, внести в нее изменения. Например, такие, чтобы после ввода напряжения в...
Листинг 2 4
Листинг 2.4. Функции обработки событий на компонентах формы программы "Сила тока"// щелчок на кнопке Вычислить void__fastcall TForml::ButtonlClick(TObject *Sender) { float u; // напряжен...
Настройка приложения
Настройка приложения После того как программа отлажена, необходимо выполнить ее окончательную настройку: задать название программы и значок, который будет изображать исполняемый файл приложения в...
Название программы
Название программы Название программы отображается во время ее работы в панели задач Windows, а также в заголовках окон сообщений, выводимых функцией ShowMessage. Название программы надо ввести в...
Название программы надо ввести в поле Title
Рисунок 2.38. Название программы надо ввести в поле Title  ...
Значок приложения
Значок приложения Чтобы назначить приложению значок, отличный от стандартного, нужно в меню Project выбрать команду Options и в открывшемся окне на вкладке Application щелкнуть на кнопке Load Icon...
Начало работы над новым значком
Рисунок 2.39. Начало работы над новым значком После выбора типа создаваемого файла открывается окно Icon Properties (Рисунок 2.40), в котором необходимо выбрать характеристики создаваемого значка:...
Стандартные характеристики значка
Рисунок 2.40. Стандартные характеристики значка...
Начало работы над новым значком
Рисунок 2.41. Начало работы над новым значком Процесс рисования в Image Editor практически ничем не отличается от процесса создания картинки в обычном графическом редакторе, например в Microsoft P...
Палитра
Рисунок 2.42. Палитра Чтобы сохранить нарисованный значок, надо в меню File выбрать команду Save, в открывшемся диалоговом окне раскрыть папку проекта (приложения, для которого создан значок) и за...
Перенос приложения на другой компьютер
Перенос приложения на другой компьютер Небольшую программу, которая использует только стандартные компоненты и представляет собой один-единственный ехе-файл, можно перенести на другой компьютер вр...
Чтобы включить в выполняемый файл
Рисунок 2.43. Чтобы включить в выполняемый файл RTL-библиотеку, сбросьте флажок Use dynamic RTL...
Чтобы включить в выполняемый файл
Рисунок 2.44. Чтобы включить в выполняемый файл используемые программой пакеты (специальные DLL-библиотеки), сбросьте флажок Build with runtime packages  ...
Структура простого проекта
Структура простого проекта Проект представляет собой набор программных единиц — модулей. Один из модулей, называемый главным, содержит инструкции, с которых начинается выполнение программы. Чтобы...
Листинг 2 5
Листинг 2.5. Главный модуль (Amper.cpp) #include <vcl.h> #pragma hdrstop USEFORM("Amper_l.cpp", Forml); WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { try { Application->Ini...
Листинг 2 6
Листинг 2.6. Заголовочный файл модуля формы (Amper_1.h) #ifndef Amper_1H #define Amper_1H #include <Classes.hpp> #include «Controls.hpp> #include <StdCtrls.hpp> #include <F...
Листинг 2 7
Листинг 2.7. Модуль формы (Amper_1.cpp) #include <vcl.h> #pragma hdrstop #include "Amper_l.h" #ragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; __fastcal...








- Начало -    


Книжный магазин