杰瑞科技汇

Delphi7编程实例教程适合零基础吗?

第一部分:Delphi 7 基础入门

实例 1:你的第一个 Delphi 程序 - "Hello, World!"

这是学习任何编程语言的经典第一步,我们将创建一个窗口,并在点击按钮后显示一个消息框。

Delphi7编程实例教程适合零基础吗?-图1
(图片来源网络,侵删)

目标:

  1. 创建一个新的 Delphi 项目。
  2. 在窗体上放置一个按钮。
  3. 为按钮编写点击事件,弹出一个 "Hello, World!" 的消息框。

步骤:

  1. 启动 Delphi 7

    • 打开 Delphi 7 IDE (集成开发环境)。
    • 选择 File -> New -> Application,这将创建一个默认的空白窗体(Form1)。
  2. 设计窗体

    Delphi7编程实例教程适合零基础吗?-图2
    (图片来源网络,侵删)
    • 在右侧的 Standard 组件面板中,找到 Button 组件(图标是一个按钮)。
    • 点击 Button 组件,然后在窗体上拖动鼠标,画出一个按钮,它的默认名称是 Button1
    • 选中 Button1,在对象查看器 中找到 Caption 属性,将其值从 Button1 修改为 点击我
  3. 编写代码

    • 双击窗体上的 点击我 按钮,Delphi 会自动切换到代码编辑器,并生成一个事件处理过程:

      procedure TForm1.Button1Click(Sender: TObject);
      begin
      end;
    • beginend; 之间输入以下代码:

      ShowMessage('Hello, World!');

      ShowMessage 是 Delphi 的一个标准函数,用于显示一个简单的消息框。

      Delphi7编程实例教程适合零基础吗?-图3
      (图片来源网络,侵删)
  4. 运行程序

    • F9 键,或者点击工具栏上的绿色运行按钮。
    • 程序编译并运行,你会看到一个窗口,上面有一个“点击我”的按钮。
    • 点击按钮,就会弹出一个包含 "Hello, World!" 文本的消息框。

代码解释:

  • procedure TForm1.Button1Click(Sender: TObject);:定义一个名为 Button1Click 的过程,它属于 TForm1 类,当 Button1 被点击时,这个过程会被自动调用。
  • Sender: TObject:是所有事件处理器的标准参数,代表触发该事件的控件。
  • ShowMessage('...'):调用一个内置函数,显示一个模态消息框。

实例 2:变量、常量与基本运算

目标: 学习如何在 Delphi 中声明和使用变量、常量,并进行基本的算术运算,并将结果显示在标签上。

步骤:

  1. 创建新项目

    • File -> New -> Application
  2. 设计窗体

    • Standard 面板拖放两个 TEdit 组件(文本框)到窗体,分别命名为 Edit1Edit2
    • Standard 面板拖放一个 TButton 组件,命名为 Button1Caption 设为 计算
    • Standard 面板拖放一个 TLabel 组件(标签),命名为 Label1Caption 设为 结果:
  3. 编写代码

    • 双击 计算 按钮,编写如下代码:

      procedure TForm1.Button1Click(Sender: TObject);
      var
        num1, num2, sum: Integer; // 声明三个整型变量
        pi: Real;                // 声明一个实型变量
        appName: String;         // 声明一个字符串变量
        const MaxValue = 100;     // 声明一个常量
      begin
        // 从文本框中获取值并转换为整数
        num1 := StrToInt(Edit1.Text);
        num2 := StrToInt(Edit2.Text);
        // 执行加法运算
        sum := num1 + num2;
        // 给其他变量赋值
        pi := 3.14159;
        appName := 'Delphi 7 算法演示';
        // 使用 Format 函数格式化字符串,显示在 Label1 上
        Label1.Caption := Format('%s: %d + %d = %d, PI = %.2f', [appName, num1, num2, sum, pi]);
      end;
  4. 运行程序

    • F9 运行程序。
    • Edit1Edit2 中输入数字,1020
    • 点击 计算 按钮,Label1 会显示格式化后的结果。

代码解释:

  • var ... begin ... end;var 块用于声明在过程中使用的局部变量。
  • Integer, Real, String:是 Delphi 的基本数据类型。
  • 是赋值运算符。
  • StrToInt():将字符串转换为整数。
  • Format():一个强大的函数,用于按照指定格式化字符串,类似于 C 语言的 printf

第二部分:核心组件与编程技巧

实例 3:使用 TStringGrid 创建一个简易表格

目标: 学习使用 TStringGrid 组件来显示和编辑一个二维表格数据。

步骤:

  1. 创建新项目

    • File -> New -> Application
  2. 设计窗体

    • Additional 面板拖放一个 TStringGrid 组件到窗体,默认名为 StringGrid1
    • Standard 面板拖放一个 TButtonCaption 设为 填充数据
  3. 编写代码

    • 使用对象查看器设置

      • 选中 StringGrid1,在对象查看器中找到 RowCount 属性,将其设为 5(5行)。
      • 找到 ColCount 属性,将其设为 3(3列)。
    • 在代码中设置

      • 双击窗体空白处,在 FormCreate 事件中初始化网格:
        procedure TForm1.FormCreate(Sender: TObject);
        begin
          StringGrid1.RowCount := 5;
          StringGrid1.ColCount := 3;
          // 设置表头
          StringGrid1.Cells[0, 0] := '姓名';
          StringGrid1.Cells[1, 0] := '年龄';
          StringGrid1.Cells[2, 0] := '城市';
        end;
    • 双击 填充数据 按钮,编写代码:

      procedure TForm1.Button1Click(Sender: TObject);
      var
        i: Integer;
      begin
        // 填充示例数据
        StringGrid1.Cells[0, 1] := '张三';
        StringGrid1.Cells[1, 1] := '25';
        StringGrid1.Cells[2, 1] := '北京';
        StringGrid1.Cells[0, 2] := '李四';
        StringGrid1.Cells[1, 2] := '30';
        StringGrid1.Cells[2, 2] := '上海';
        StringGrid1.Cells[0, 3] := '王五';
        StringGrid1.Cells[1, 3] := '28';
        StringGrid1.Cells[2, 3] := '广州';
      end;
  4. 运行程序

    • F9 运行,你会看到一个3列5行的表格。
    • 点击 填充数据 按钮,表格中会填入预设的数据,你还可以直接在网格中编辑单元格内容。

代码解释:

  • StringGrid1.Cells[Col, Row]:用于访问或设置指定单元格的文本,注意,索引是从0开始的。
  • FormCreate 事件:在窗体创建时触发,是进行初始化工作的好地方。

实例 4:文件操作 - 读写文本文件

目标: 学习使用 TFileStreamTStringList 来读写文本文件。

步骤:

  1. 创建新项目

    • File -> New -> Application
  2. 设计窗体

    • 添加一个 TMemo 组件(多行文本框),命名为 Memo1
    • 添加两个 TButton 按钮,Caption 分别为 读取文件保存文件
  3. 编写代码

    • 双击 读取文件 按钮:
      procedure TForm1.Button1Click(Sender: TObject);
      var
        sl: TStringList; // 使用 TStringList 来处理文本行
      begin
        sl := TStringList.Create; // 创建 TStringList 对象
        try
          // 假设文件名为 'C:\temp\mydata.txt',请确保该文件存在
          sl.LoadFromFile('C:\temp\mydata.txt');
          Memo1.Text := sl.Text; // 将文件内容加载到 Memo 中
        finally
          sl.Free; // 释放对象,避免内存泄漏
        end;
      end;
    • 双击 保存文件 按钮:
      procedure TForm1.Button2Click(Sender: TObject);
      var
        sl: TStringList;
      begin
        sl := TStringList.Create;
        try
          sl.Text := Memo1.Text; // 将 Memo 的内容赋给 TStringList
          sl.SaveToFile('C:\temp\mydata_saved.txt'); // 保存到文件
          ShowMessage('文件已成功保存!');
        finally
          sl.Free;
        end;
      end;
  4. 运行程序

    • C: 盘创建一个名为 temp 的文件夹,并在其中创建一个名为 mydata.txt 的文本文件,输入一些内容。
    • 运行程序,点击 读取文件Memo1 中会显示文件内容。
    • Memo1 中修改内容,点击 保存文件,程序会在 C:\temp\ 目录下创建一个新的文件 mydata_saved.txt

代码解释:

  • TStringList:一个非常方便的类,用于管理字符串列表,提供了 LoadFromFileSaveToFile 等便捷方法。
  • CreateFree:在 Delphi 中,几乎所有需要手动创建的对象(使用 Create),都必须在不再使用时手动释放(使用 Free),否则会造成内存泄漏。try...finally...end 结构可以确保即使发生错误,Free 也一定会被执行。

第三部分:数据库应用 (核心优势)

实例 5:使用 TADOTable 连接 Access 数据库

这是 Delphi 的强项之一,我们将创建一个程序来浏览和编辑一个 Microsoft Access 数据库。

准备工作:

  1. 创建 Access 数据库
    • 创建一个名为 db1.mdb 的 Access 数据库(可以使用 Microsoft Access 或 OLE DB 创建器)。
    • 在该数据库中创建一个名为 Employees 的表。
    • Employees 表结构如下: | 字段名 | 数据类型 | 说明 | | :--- | :--- | :--- | | ID | 自动编号 | 主键 | | Name | 文本 | 员工姓名 | | Department | 文本 | 部门 | | Salary | 数字 | 工资 |
  2. 配置 Delphi
    • 在 Delphi 7 中,选择 Project -> Options
    • Packages 选项卡中,确保 dbGo 包被勾选(它包含了 ADO 组件)。
    • Forms 选项卡中,确保 dbAware 被勾选(它使窗体数据感知)。

步骤:

  1. 创建新项目

    • File -> New -> Application
  2. 设计窗体

    • dbGo (ADO) 组件面板中,拖放以下组件到窗体:
      • TADOConnection:命名为 ADOConnection1
      • TADOTable:命名为 ADOTable1
      • TDataSource:命名为 DataSource1
    • Data Controls 组件面板中,拖放以下数据感知控件:
      • TDBEdit:用于编辑字段。
      • TDBComboBox:用于下拉选择。
      • TDBGrid:用于表格显示。
      • TDBNavigator:用于浏览记录。
    • 组件关联
      • 选中 ADOConnection1,在对象查看器中设置 ConnectionString 属性,点击 Build... 按钮,选择 Microsoft Jet 4.0 OLE DB Provider,然后选择你创建的 db1.mdb 文件。
      • 选中 ADOTable1,设置 Connection 属性为 ADOConnection1,设置 TableName 属性为 Employees
      • 选中 DataSource1,设置 DataSet 属性为 ADOTable1
      • 选中所有 DB 开头的控件(如 DBEdit1),设置它们的 DataSource 属性为 DataSource1,并分别设置 DataField 属性为 Name, Department, Salary 等。
      • DBNavigator1DataSource 也设置为 DataSource1
  3. 编写代码

    • 双击窗体空白处,在 FormCreate 事件中连接数据库并打开表:

      procedure TForm1.FormCreate(Sender: TObject);
      begin
        // 尝试连接,如果连接字符串为空则提示
        if ADOConnection1.ConnectionString = '' then
        begin
          ShowMessage('请先在 ADOConnection1 中设置连接字符串!');
          Exit;
        end;
        try
          ADOConnection1.Connected := True; // 打开连接
          ADOTable1.Active := True;         // 打开表
        except
          on E: Exception do
            ShowMessage('连接数据库失败: ' + E.Message);
        end;
      end;
  4. 运行程序

    • F9 运行程序。
    • 程序会自动连接到 db1.mdb 并显示 Employees 表的内容。
    • 你可以使用 DBNavigator 来浏览、添加、删除和修改记录。
    • 修改 DBEditDBGrid 中的数据,更改会自动保存到数据库中(因为 ADOTable1Active 属性为 True,它处于自动提交模式)。

代码解释:

  • 数据感知控件:这些 DB 开头的控件能自动与数据源(DataSource)关联,并显示、编辑当前记录的相应字段。
  • 组件链ADOTable1 (数据集) -> DataSource1 (数据源) -> DBEdit1 (显示控件),数据流从上到下传递。
  • ADOConnection1.Connected := True:建立与数据库的物理连接。
  • ADOTable1.Active := True:打开数据集,使其可以访问数据。

第四部分:进阶与实用技巧

实例 6:多窗体编程

目标: 学习如何在主窗体中打开一个子窗体,并进行数据交互。

步骤:

  1. 创建主窗体

    • File -> New -> Application,窗体名为 Form1
    • Form1 上放一个按钮 Button1Caption打开子窗体
  2. 创建子窗体

    • File -> New -> Form,会创建一个新的窗体 Form2
    • Form2 上放一个 TEdit (Edit1) 和一个 TButton (Button2),Button2Caption返回值
  3. 编写代码

    • 主窗体 (Form1) 代码
      // Button1 的点击事件
      procedure TForm1.Button1Click(Sender: TObject);
      var
        frm2: TForm2; // 声明一个 Form2 类型的变量
      begin
        frm2 := TForm2.Create(Self); // 创建 Form2 的实例
        try
          if frm2.ShowModal = mrOk then // 以模态方式显示
          begin
            // 如果用户点击了 Form2 的 "确定" 按钮 (mrOk)
            ShowMessage('子窗体返回的值是: ' + frm2.Edit1.Text);
          end;
        finally
          frm2.Free; // 关闭后释放子窗体
        end;
      end;
    • 子窗体 (Form2) 代码
      • private 部分添加一个方法,用于返回值:
        // 在 Form2 的 interface 部分的 type 下
        public
          function GetEditText: string;
      • implementation 部分实现这个方法:
        function TForm2.GetEditText: string;
        begin
          Result := Edit1.Text;
        end;
      • Button2OnClick 事件编写代码:
        procedure TForm2.Button2Click(Sender: TObject);
        begin
          ModalResult := mrOk; // 设置模态结果为 mrOk
          Close; // 关闭窗体
        end;
  4. 运行程序

    • 运行 Form1
    • 点击 打开子窗体Form2 出现。
    • Form2Edit1 中输入一些文字,如 "你好,主窗体!"。
    • 点击 返回值 按钮,Form2 关闭,Form1 的消息框会显示你输入的文字。

代码解释:

  • TForm2.Create(Self):创建 Form2 的一个实例。Self 表示所有者是 Form1,这有助于在窗体间正确管理内存。
  • ShowModal:以模态方式显示窗体,会阻塞父窗体,直到子窗体关闭。
  • ModalResult:一个属性,用于设置窗体的返回值,常用值有 mrOk (确定), mrCancel (取消), mrNone (无) 等。
  • mrOk:是 ModalResult 的一个预定义常量,表示用户点击了确定。

总结与学习建议

  1. 勤动手:不要只看代码,一定要亲手创建每一个实例,修改参数,观察结果。
  2. 善用帮助:Delphi 7 自带的帮助文档非常强大,选中任何组件、属性或方法,按 F1 键即可查看详细说明。
  3. 理解事件驱动:Delphi 是事件驱动的,理解哪个控件在什么情况下会触发哪个事件,是掌握 Delphi 的关键。
  4. 学习 VCL 框架:深入理解 TComponent, TControl, TWinControl 等类的继承关系,会让你对组件有更深刻的认识。
  5. 从简单到复杂:先掌握单窗体的基本操作,再学习多窗体、文件、数据库,最后挑战网络和自定义组件。

虽然 Delphi 7 已经比较老旧,但其核心的 VCL 框架和 Pascal 语言思想至今仍有很强的生命力,通过学习 Delphi 7,你可以打下坚实的桌面应用程序开发基础,祝你学习愉快!

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