Учись программированию на C++ Builder бесплатно!
  • Главная

Всё для программирования C++ Builder

5 причин использовать меню в приложениях

Практически любое приложение должно иметь меню, поскольку именно меню дает наиболее удобный доступ к функциям программы. Существует несколько различных типов меню: главное меню с выпадающими списками разделов, каскадные меню, в которых разделу первичного меню ставится в соответствие список подразделов, и всплывающие или контекстные меню, появляющиеся, если пользователь щелкает правой кнопкой мыши на каком-то компоненте.
В C++Builder меню создаются компонентами MainMenu (главное меню) и PopupMenu (всплывающее меню). Оба компонента расположены на странице Standard. Кроме того, в C++Builder 6 имеется возможность создания меню, настраиваемого пользователем во время выполнения, с помощью компонентов ActionManager и ActionMainMenuBar.

Простая посылка сообщений

Построим простую программу, демонстрирующую посылку сообщений. Создаем новый проект и в нем две формы Form1 и Form2, сохраните проект, назвав модули форм U1Mess1 и U2Mess1 соответственно, а файл проекта PMess1. Форма Form1 будет главной и она будет управлять видимостью формы Form2. Поэтому в ее модуль необходимо включить директиву препроцессора:

#include "U2Messl.h"

а свойство Visible формы Form2 должно быть равно false.

Перенесите на форму Form1 две кнопки, дав им надписи «Show Form2» и «Close Form2». В обработчике щелчка первой кнопки напишите оператор:

Form2->Show();

а в обработчике щелчка второй кнопки оператор:

Тип строк AnsiString

В C++ Builder AnsiString является типом строк, но в то же время реализован как класс, и объявлен в файле vcl/dstring.h. AnsiString аналогичен типу длинных строк в Delphi. Класс AnsiString имеет нулевой символ в конце строки. Объявленные переменные типа AnsiString инициализируются, как пустые строки.

Массивы символов

В С++ отсутствует специальный тип строк. Строки рассматриваются как массивы символов, оканчивающиеся нулевым символом ('\0'). Строка доступна через указатель на первый символ в строке. Значением строки является адрес ее первого символа. Таким образом, в С++ строка является указателем - указателем на первый символ строки. В этом смысле строки подобны массивам, потому что массив тоже является указателем на свой первый элемент.
Строка может быть объявлена либо как массив символов, либо как переменная типа char*. Каждое из двух приведенных ниже эквивалентных объявлений:

Арифметические типы данных

Арифметические типы данных – это целые и действительные типы. К целым типам относятся char, short, int и long вместе с их вариантами signed со знаком и unsigned без знака. Из этих ключевых слов может формироваться множество целых типов данных. Многие из них являются синонимами друг друга.

Спецификаторы signed и unsigned могут применяться только к char, short, int, long. Если тип обозначен просто как signed или unsigned, то подразумеваются соответственно signed int и unsigned int.

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

Технология dbExpress в С++ Builder

В основе технологии dbExpress лежит использование множества легковесных драйверов, компонентов, объединяющих соединения, транзакции, запросы и наборы данных, а также интерфейсов, реализующих универсальный доступ к соответствующим функциям. По сравнению с использованием механизма BDE технология dbExpress обеспечивает построение более легковесных (по объему кода) приложений для работы с базами данных. При ее применении для доступа к данным используются SQL-запросы. Технология dbExpress обеспечивает легкую переносимость приложений, допускает работу приложений баз данных под управлением Windows и Linux. Для использования технологии dbExpress достаточно включить в распространяемое приложение динамически подключаемую библиотеку с драйвером, взаимодействующим с клиентским программным обеспечением для нужного сервера базы данных.

Исключения и их стандартная обработка

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

Динамическое распределение памяти

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