杰瑞科技汇

C++ Builder 6教程如何快速入门?

第一部分:C++ Builder 6 简介

1 什么是 C++ Builder 6?

C++ Builder 6 是 Borland 公司(后来是 CodeGear,再后来是 Embarcadero)推出的一款集成开发环境,它的核心特点是:

C++ Builder 6教程如何快速入门?-图1
(图片来源网络,侵删)
  • 语言:使用 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:创建新项目

  1. 启动 C++ Builder 6。
  2. 点击菜单 File -> New -> Application
  3. IDE 会自动创建一个默认的窗体 Form1 和一个对应的源文件 Unit1.cpp

步骤 2:设计界面

  1. 在左侧的 组件面板 上,找到 Standard 选项卡。
  2. 找到 Label (标签) 组件,点击它,然后在 Form1 窗体上点击一下,一个标签 Label1 就被添加到窗体上了。
  3. 选中窗体上的 Label1,在右下角的 对象查看器 中找到 Caption 属性,将其值从 Label1 修改为 Hello, World!,您会看到窗体上的文字实时改变了。

步骤 3:编写事件处理代码

我们想让程序在窗体加载时,在标签上显示当前时间。

C++ Builder 6教程如何快速入门?-图2
(图片来源网络,侵删)
  1. 选中 Form1 窗体本身(点击窗体空白处或标题栏)。
  2. 对象查看器 中,切换到 Events (事件) 选项卡。
  3. 找到 OnCreate 事件(窗体创建时触发),点击右侧的空白处,然后点击下拉箭头,选择 Form1Create,IDE 会自动跳转到代码编辑器,并生成一个空的函数。
// 这是 IDE 自动生成的函数声明,在 Unit1.h 文件中
// __fastcall 是 C++ Builder 的快速调用约定
void __fastcall TForm1::FormCreate(TObject *Sender)
{
    // 在这里添加您的代码
}
  1. 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 提供的实用函数库,这里需要它来使用 FormatDateTimeNow()
  • String:C++ Builder 提供的字符串类型,功能比标准 C++ 的 std::string 更强大,与 VCL 组件无缝集成。
  • FormatDateTime("格式", Now()):一个函数,用于将日期时间 Now() 格式化为指定的字符串。
  • Label1->Caption:通过 -> 操作符访问 Label1 组件的 Caption 属性,并为其赋新值。

步骤 4:运行程序

  1. 按下快捷键 F9,或者点击工具栏上的绿色运行按钮。
  2. 程序编译并运行,您会看到一个窗口,上面显示着 "当前时间是: " 以及当前的日期和时间。

恭喜!您已经成功创建了您的第一个 C++ Builder 应用程序。


第三部分:核心概念详解

要熟练掌握 C++ Builder,需要理解以下几个核心概念。

1 项目与文件

一个 C++ Builder 项目通常包含以下关键文件:

C++ Builder 6教程如何快速入门?-图3
(图片来源网络,侵删)
  • .bpr (Project Group):项目文件,定义了项目的编译设置、包含的文件等。
  • .cpp / .h (Unit):单元文件,一个窗体通常对应一对 .cpp (实现) 和 .h (声明) 文件。Unit1.cppUnit1.h 对应 Form1
  • .dfm (Form):窗体定义文件,这是一个二进制文件,记录了窗体上所有组件的属性、位置、大小等信息,IDE 会自动维护这个文件。
  • .res (Resource):资源文件,包含应用程序的图标、位图等资源。

2 VCL 组件

VCL 组件是构建 C++ Builder 应用的基石。

  • 非可视化组件:在运行时不可见,但提供特定功能。
    • Timer:定时器,可以每隔一段时间触发一个事件。
    • OpenDialog / SaveDialog:打开/保存文件对话框。
    • ADOConnection:连接数据库。
  • 可视化组件:在窗体上可见,用户可以与之交互。
    • Button (按钮)
    • Edit (单行文本框)
    • Memo (多行文本框)
    • ListBox / ComboBox (列表框/下拉框)

如何使用组件?

  1. 从面板拖拽:最直观的方式。
  2. 动态创建:在代码中创建组件实例,这在需要动态生成界面元素时非常有用。

示例:动态创建一个按钮

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 InspectorEvents 页面为 OnClick 事件指定一个函数。

一个经典的例子:计算器界面

  1. 拖拽一个 TEdit 组件到窗体上,命名为 edtDisplay,用于显示数字。
  2. 拖拽一个 TButton 组件,设置 Caption1
  3. 复制这个按钮(Ctrl+C, Ctrl+V),会自动生成 Button2,修改其 Caption2,以此类推,创建 0-9 和 , , , 按钮。
  4. 为数字按钮(如 Button1)的 OnClick 事件编写代码:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    // 获取按钮的 Caption
    String Digit = ((TButton*)Sender)->Caption;
    // 将数字追加到显示框的末尾
    edtDisplay->Text = edtDisplay->Text + Digit;
}

代码解释:

  • (TButton*)SenderOnClick 事件的 Sender 参数是一个指向触发事件的组件的通用指针 TObject*,我们将其强制转换为 TButton*,这样就可以访问它的 Caption 属性。
  • 这种写法非常巧妙,我们可以为所有数字按钮(0-9)指向同一个事件处理函数,避免了重复编写代码。

第四部分:进阶主题

1 数据库开发入门

C++ Builder 的强项之一是数据库开发。

  1. 连接数据库:使用 BDE Administrator 工具配置一个数据库别名(Alias),指向您的数据库文件(如 .db Paradox 文件或 .gdb InterBase 文件)。
  2. 使用数据访问组件
    • TableQuery:连接到数据库中的具体表或执行 SQL 查询。
    • DataSource:作为 Table/Query 和数据控制组件之间的桥梁。
  3. 使用数据控制组件(在 Data Controls 选项卡)
    • DBGrid:以表格形式显示数据。
    • DBEdit:用于编辑单条记录的字段。
    • DBNavigator:提供浏览、添加、删除、修改记录的导航按钮。

基本设置流程: Table1 -> DataSource1 -> DBGrid1Object Inspector 中设置:

  • Table1->DatabaseName = 您配置的数据库别名
  • Table1->TableName = 您要操作的表名
  • DataSource1->DataSet = Table1
  • DBGrid1->DataSource = DataSource1
  • DBEdit1->DataSource = DataSource1
  • DBEdit1->DataField = 您要绑定的字段名

运行程序,Table1Active 属性设为 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 开发的思想,祝您学习愉快!

分享:
扫描分享到社交APP
上一篇
下一篇