Новый проект создается автоматически при запуске C++ Builder. Также можно выбрать команду File->New Application или открыть т.н. "Хранилище новых объектов" командой File->New.
Итак, каким-то из способов мы сделали начальную программу. Теперь сделаем что-то, преследующее банальную, но подходящую цель - решение квадратного уравнения.
Перетащите на форму компоненты TLabel , TEdit и TButton и разместите, как показано на рисунке (чтобы разместить сразу несколько компонентов, нажмите на его кнопку при нажатой клавише Shift). Чтобы модифицировать размеры компонентов, нужно ввести соответствующие значения в свойства Top, Left, Width, Height Инспектора или мышью навести на угол компонента и перетащить его. Короче, визуально.
Для изменения имени выбранного компонента используйте свойство Name.
Чтобы модифицировать надписи этих компонентов, нужно изменить свойство Caption в Инспекторе объектов. Для определения обработчика события OnClick(), которое возникает при нажатии на объект кнопкой мыши, можно пойти двумя путями: ввести имя или выбрать его из списка доступных в правой вкладке Инспектора, или просто два раза щелкнуть по кнопке. После этого в Редакторе откроется место для ввода кода:
Это, собственно, и есть процедура обработки события. Сюда нужно ввести следующие строчки:
#include <math.h> void __fastcall TForm1::Button1Click(TObject *Sender) { double a,b,c; a=Edit1->Text.ToDouble(); b=Edit2->Text.ToDouble(); c=Edit3->Text.ToDouble(); int d=b*b+4*a*c; if (d<0){ Label6->Caption="Нет корней!!!"; return; }; double x1=(-b+sqrt(d))/(2*a); double x2=(-b-sqrt(d))/(2*a); Label6-<Caption=String(x1)+" ;\r\n "+String(x2); }
Здесь, по-моему, все понятно - Edit1, Edit2 и Edit3 - соответствующие области ввода, а Label6 - надпись, здесь невидимая, поскольку с нулевым текстом, а в программе выводящая результат. Свойство Text объектов класса TEdit содержит введенную строку. Программа выводит полученные корни или говорит, что их нет.
Честно говоря, пример далек от совершенства - программа не контролирует, вводятся числовые или символьные данные и при ошибке просто "вылетает". Но для общего ознакомления подходит (наверное).
В этом примере использованы три класса компонентных объектов. Ниже приведены наиболее необходимые и специфичные свойства объектов этих классов. Одинаковые свойства, для экономии места, я не буду приводить по два раза. Про общие свойства и иерархию VCL будет рассказано в следующих шагах.
Вот. На одном дыхании целый шаг написал. Ну, пока хватит, а то клавиатура устала ;)