第一部分:C++ Builder 6 简介
1 什么是 C++ Builder 6?
C++ Builder 6 是 Borland 公司(后来是 CodeGear,再后来是 Embarcadero)推出的一款集成开发环境,它的核心特点是:

- 语言:使用 C++ 作为编程语言。
- 框架:使用 VCL (Visual Component Library) 来构建用户界面,VCL 是一个原生 Windows 组件库,直接调用 Windows API,因此运行速度快,生成的应用程序是原生的
.exe文件。 - RAD (Rapid Application Development):支持快速应用程序开发,您可以通过拖拽组件的方式快速构建界面,IDE 会自动生成大量的基础代码,让您能更专注于业务逻辑。
- 数据库支持:内置强大的数据库引擎(BDE),对各种数据库(如 Paradox, dBASE, InterBase, Oracle, SQL Server 等)有很好的支持,可以快速开发数据库应用程序。
2 安装与启动
由于是老软件,您可能需要寻找安装镜像,安装过程相对简单,按照向导一步步操作即可。
启动后,您会看到主界面,它主要由以下几个部分组成:
- 主菜单栏:包含所有命令。
- 工具栏:常用命令的快捷按钮。
- 组件面板:这是核心区域,包含了所有可以拖放到窗体上的 VCL 组件(如按钮、文本框、标签等)。
- 窗体设计器:您在这里可视化地设计应用程序的界面。
- 代码编辑器:您在这里编写 C++ 代码。
- 对象查看器:用于查看和修改窗体及组件的属性。
- 项目管理器:管理项目中的所有文件(.cpp, .h, .bpr, .res 等)。
第二部分:创建第一个 "Hello, World!" 程序
这是学习任何新语言或工具的传统第一步。
步骤 1:创建新项目
- 启动 C++ Builder 6。
- 点击菜单
File -> New -> Application。 - IDE 会自动创建一个默认的窗体
Form1和一个对应的源文件Unit1.cpp。
步骤 2:设计界面
- 在左侧的 组件面板 上,找到
Standard选项卡。 - 找到
Label(标签) 组件,点击它,然后在Form1窗体上点击一下,一个标签Label1就被添加到窗体上了。 - 选中窗体上的
Label1,在右下角的 对象查看器 中找到Caption属性,将其值从Label1修改为Hello, World!,您会看到窗体上的文字实时改变了。
步骤 3:编写事件处理代码
我们想让程序在窗体加载时,在标签上显示当前时间。

- 选中
Form1窗体本身(点击窗体空白处或标题栏)。 - 在 对象查看器 中,切换到
Events(事件) 选项卡。 - 找到
OnCreate事件(窗体创建时触发),点击右侧的空白处,然后点击下拉箭头,选择Form1Create,IDE 会自动跳转到代码编辑器,并生成一个空的函数。
// 这是 IDE 自动生成的函数声明,在 Unit1.h 文件中
// __fastcall 是 C++ Builder 的快速调用约定
void __fastcall TForm1::FormCreate(TObject *Sender)
{
// 在这里添加您的代码
}
- 在
FormCreate函数中添加以下代码:
#include <System.SysUtils.hpp> // 包含 SysUtils 库,用于 FormatDateTime 等函数
void __fastcall TForm1::FormCreate(TObject *Sender)
{
// 获取当前系统时间,并格式化为 "yyyy-mm-dd hh:mm:ss" 的字符串
String CurrentTime = FormatDateTime("yyyy-mm-dd hh:mm:ss", Now());
// 将格式化后的时间字符串设置到 Label1 的 Caption 属性上
Label1->Caption = "当前时间是: " + CurrentTime;
}
代码解释:
#include <System.SysUtils.hpp>:包含了 C++ Builder 提供的实用函数库,这里需要它来使用FormatDateTime和Now()。String:C++ Builder 提供的字符串类型,功能比标准 C++ 的std::string更强大,与 VCL 组件无缝集成。FormatDateTime("格式", Now()):一个函数,用于将日期时间Now()格式化为指定的字符串。Label1->Caption:通过->操作符访问Label1组件的Caption属性,并为其赋新值。
步骤 4:运行程序
- 按下快捷键 F9,或者点击工具栏上的绿色运行按钮。
- 程序编译并运行,您会看到一个窗口,上面显示着 "当前时间是: " 以及当前的日期和时间。
恭喜!您已经成功创建了您的第一个 C++ Builder 应用程序。
第三部分:核心概念详解
要熟练掌握 C++ Builder,需要理解以下几个核心概念。
1 项目与文件
一个 C++ Builder 项目通常包含以下关键文件:

.bpr(Project Group):项目文件,定义了项目的编译设置、包含的文件等。.cpp/.h(Unit):单元文件,一个窗体通常对应一对.cpp(实现) 和.h(声明) 文件。Unit1.cpp和Unit1.h对应Form1。.dfm(Form):窗体定义文件,这是一个二进制文件,记录了窗体上所有组件的属性、位置、大小等信息,IDE 会自动维护这个文件。.res(Resource):资源文件,包含应用程序的图标、位图等资源。
2 VCL 组件
VCL 组件是构建 C++ Builder 应用的基石。
- 非可视化组件:在运行时不可见,但提供特定功能。
Timer:定时器,可以每隔一段时间触发一个事件。OpenDialog/SaveDialog:打开/保存文件对话框。ADOConnection:连接数据库。
- 可视化组件:在窗体上可见,用户可以与之交互。
Button(按钮)Edit(单行文本框)Memo(多行文本框)ListBox/ComboBox(列表框/下拉框)
如何使用组件?
- 从面板拖拽:最直观的方式。
- 动态创建:在代码中创建组件实例,这在需要动态生成界面元素时非常有用。
示例:动态创建一个按钮
void __fastcall TForm1::Button1Click(TObject *Sender)
{
// 1. 创建一个 TButton 对象
TButton *pNewButton = new TButton(this); // this 表示新按钮的所有者是当前窗体
// 2. 设置属性
pNewButton->Parent = this; // 必须设置 Parent,否则按钮不会显示
pNewButton->Caption = "动态按钮";
pNewButton->Left = 50; // 设置左边距
pNewButton->Top = 50; // 设置上边距
// 3. (可选) 为新按钮创建事件处理函数
// pNewButton->OnClick = MyButtonClicked; // MyButtonClicked 是一个已定义的函数
}
3 属性、方法与事件
这是面向对象编程的核心,在 VCL 中体现得淋漓尽致。
-
属性:组件的特征,如
Caption(标题),Text(文本),Color(颜色),Visible(是否可见),通过Object Inspector设置或在代码中读写。- 读写:
MyButton->Caption = "新标题";
- 读写:
-
方法:组件可以执行的动作,如
Show()(显示窗体),Hide()(隐藏),Refresh()(刷新)。- 调用:
MyForm->Show();
- 调用:
-
事件:组件可以响应的动作,如点击、鼠标移动、键盘按下等,您需要编写“事件处理函数”来告诉组件当事件发生时该做什么。
- 响应:在
Object Inspector的Events页面为OnClick事件指定一个函数。
- 响应:在
一个经典的例子:计算器界面
- 拖拽一个
TEdit组件到窗体上,命名为edtDisplay,用于显示数字。 - 拖拽一个
TButton组件,设置Caption为1。 - 复制这个按钮(
Ctrl+C,Ctrl+V),会自动生成Button2,修改其Caption为2,以此类推,创建0-9和 , , , 按钮。 - 为数字按钮(如
Button1)的OnClick事件编写代码:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
// 获取按钮的 Caption
String Digit = ((TButton*)Sender)->Caption;
// 将数字追加到显示框的末尾
edtDisplay->Text = edtDisplay->Text + Digit;
}
代码解释:
(TButton*)Sender:OnClick事件的Sender参数是一个指向触发事件的组件的通用指针TObject*,我们将其强制转换为TButton*,这样就可以访问它的Caption属性。- 这种写法非常巧妙,我们可以为所有数字按钮(0-9)指向同一个事件处理函数,避免了重复编写代码。
第四部分:进阶主题
1 数据库开发入门
C++ Builder 的强项之一是数据库开发。
- 连接数据库:使用
BDE Administrator工具配置一个数据库别名(Alias),指向您的数据库文件(如.dbParadox 文件或.gdbInterBase 文件)。 - 使用数据访问组件:
Table或Query:连接到数据库中的具体表或执行 SQL 查询。DataSource:作为Table/Query和数据控制组件之间的桥梁。
- 使用数据控制组件(在
Data Controls选项卡):DBGrid:以表格形式显示数据。DBEdit:用于编辑单条记录的字段。DBNavigator:提供浏览、添加、删除、修改记录的导航按钮。
基本设置流程:
Table1 -> DataSource1 -> DBGrid1
在 Object Inspector 中设置:
Table1->DatabaseName= 您配置的数据库别名Table1->TableName= 您要操作的表名DataSource1->DataSet=Table1DBGrid1->DataSource=DataSource1DBEdit1->DataSource=DataSource1DBEdit1->DataField= 您要绑定的字段名
运行程序,Table1 的 Active 属性设为 true,数据就会自动显示在 DBGrid1 中,您可以通过 DBNavigator1 进行数据操作。
2 菜单与工具栏
- 菜单编辑器:点击
Tools -> Menu Designer或使用快捷键Ctrl+E,可以可视化地创建主菜单和子菜单。 - 工具栏:拖拽
ToolBar组件到窗体,然后可以向其中添加ToolButton,可以右键点击ToolButton选择Glyph来为其添加图标。
第五部分:学习资源与注意事项
1 学习资源
- 官方文档:C++ Builder 6 自带了非常详尽的帮助文档 (
F1键),这是最权威的学习资料。 - 经典书籍:寻找一些关于 C++ Builder 6 或更早版本(如 5, 4)的书籍,虽然旧,但基础概念是相通的,C++ Builder 开发人员指南》等。
- 网络社区与论坛:
- CSDN:搜索 "C++ Builder",有很多老帖子和技术文章。
- Stack Overflow:英文社区,问题质量高。
- Embarcadero Community:虽然新版本是 Delphi 和 C++ Builder (RAD Studio),但很多 VCL 的核心问题在这里也能找到讨论。
- 国内的一些技术论坛:如 ChinaITLab 等,也可能有相关板块。
2 注意事项
- 环境老旧:C++ Builder 6 发布于 2002 年,在 64 位 Windows 系统上可能无法完美运行,或者需要一些兼容性设置。
- 编译器版本:它使用的是老版本的 Borland C++ 编译器,不支持 C++11 及以后的新标准。
- 现代替代品:如果您想进行现代 Windows 开发,可以考虑:
- Embarcadero RAD Studio:C++ Builder 的现代版本,支持 VCL 和 FM (FireMonkey) 框架,支持 64 位和 C++11/14/17。
- Visual Studio + Qt:这是目前最主流的 C++ 桌面应用开发方案,跨平台能力更强。
尽管如此,学习 C++ Builder 6 仍然非常有价值,它能帮助您深刻理解 Windows API、事件驱动编程和 RAD 开发的思想,祝您学习愉快!
