源。在
Delphi系统 中,通常有两种关闭窗体的形式。一种方式 是单击关闭按钮,另一种是使用Close方法来 关闭窗体,其格式如下:
窗体名.Close; 提示: 提示:当关闭窗体时,由该窗体派生出的所有窗体 也一同关闭。
6.1.3 多个窗体间的数据传递
在多窗体程序中,各个窗体之间需要交 换信息,在Delphi程序设计中通常使用公共 变量来共享数据。 在Delphi系统中,公共变量通常定义在程 序单元中的接口变量处(Interface),在此 处定义好变量后,其他窗体程序都可以通过 引用的方式来调用这些变量。为了更好地管 理公共变量,用户往往在程序设计过程中创 建一个独立的Unit单元,用以定义所有的公 共变量,供其它程序单元使用。下面给出定 义公共变量的具体步骤。
(1)执行File→New→Unit命令,在当前项目中 添加一个Unit程序单元,然后执行File→Save As 命令,将其重命名为CommUnit.pas文件并保存。 (2)在CommUnit单元中按如下格式定义变量。
unit CommUnit; interface 变量定义; implementation end.
(3)当某个程序单元需要使用公共变量时,执 行File→Use Unit命令,在Use Unit对话框中选择 CommUnit单元,单击Ok按钮即可。
下面通过实例介绍如何使用公共变量在窗 体之间传递传递数据。 【例6-3】
设计一个成绩录入系统,其包含一 个“控制程序”主窗体、一个“录入成绩”主 窗体和一个“计算成绩”窗体。通过主窗体可 以打开各个窗体以及退出程序。“录入程序” 窗体用于录入语文、数学和外语
课程的成绩, 录入完毕后可返回主窗体。“计算成绩”窗体 用于计算总成绩与平均成绩,同样也可以返回 主窗
体。 操作步骤如下: (1)在Form1窗体中添加3个Button组件,设 计如下图(a)所示的程序界面。
(2)执行Form→New→Form命令,在当前项 目中添加一个窗体,设计窗体的界面如下图( b)所示。
(a)“控制程序”主窗 (b)“录入成绩”窗 (c)“计算成绩”窗 体 体 体
(3)执行Form→New→Form命令,在当前项目 添加一个窗体,设计界面如上图(c)所示。 (4)执行File→New→Unit命令,在当前项目添 加一个Unit单元,执行如下代码,在单元中声 明公共变量。
unit CommUnit; interface var chinese, math,english :integer; total,average:integer; implementation end.
(5)执行File→Save As命令,将该Unit单元命 名为CommonUnit.pas并保存。 (6)选中“控制
程序”窗体,执行File→Use Unit命令,在打开的Use Unit对话框中选中 Unit2单元,然后单击OK按钮,完成对Unit2单 元的引用操作。 (7)为“录入成绩”按钮的OnClick事件添加如 下代码,实现单击“录入成绩”按钮时打开“录 入成绩”窗体。
procedure TForm1.Button1Click(Sender: TObject); begin Form2.ShowModal; end;
(8) 为“计算成绩”按钮的OnClick事件添加 如下代码,实现单击“计算成绩”按钮时能打 开“计算成绩”窗体。
procedure TForm1.Button2Click(Sender: TObject); begin Form3.ShowModal; end;
(9)为“退出系统”按钮的OnClick事件添加 如下代码,关闭程序。
procedure TForm1.Button3Click(Sender: TObject); begin Form1.Close; end;
(10)选中“录入成绩”窗体,执行File→Use Unit命令,在Use Unit对话框中选择CommUnit 单元。选中“返回”按钮,在其OnClick事件 中添加如下代码,实现录入数据并返回控制窗 体的功能。
procedure TForm2.Button1Click(Sender: TObject); begin chinese := StrToInt(Edit1.Text); math := StrToInt(Edit2.Text); english := StrToInt(Edit3.Text); Form2.Close; end;
(11)选中“计算成绩”窗体,执行File→Use Unit命令,在Use Unit对话框中选择中 CommUnit单元。在该窗体的OnCreate事件中添 加如下代码:
proc