Delphi程序设计基础:教程、实验、习题
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.6 Delphi程序设计过程

Delphi程序设计是可视化的,大多数开发的程序界面风格类似于其他各Windows应用程序。在开发过程中,基本上以一个项目文件管理一组窗体单元文件,而各个窗体根据功能需要,安排了不同的组件。运行时,这些组件与用户交互,这些组件所要实现的功能由其背后的事件(程序代码)实现。

在Delphi中创建应用程序的过程一般如下。

第1步:创建新的项目和窗体。

执行“File”→“New”→“Application”命令,创建新的项目和窗体。

第2步:在窗体中加入组件。

在组件板中选定需要的组件,然后在窗体的适当位置单击。接着可以对窗体和窗体上的组件进行适当的安排。

第3步:设置窗体和组件的属性。

根据程序需求在对象编辑器中设置组件的属性,包括组件的大小、颜色、位置、标题文字、特征等。这些属性也可以通过程序动态地设置和修改。

第4步:编写事件处理程序。

在对象编辑器中选择指定组件的事件项,进入代码编辑窗口,编写程序代码,以实现相应功能。

第5步:保存项目文件和单元文件。

使用“File”菜单中的“Save All”命令,保存项目、单元等文件。

第6步:编译、调试和运行程序。

使用“Run”菜单中的“Run”命令,运行应用程序。若出现问题或程序的运行结果达不到预期的结果,还可以使用Delphi提供的调试器来调试和修改,直到满意为止。

【例1.1】 本例介绍如何在Delphi集成开发环境中编写Windows应用程序。程序实现的功能是:在应用程序的窗体中显示时钟。

具体实现过程如下。

(1) 进入Delphi开发环境

可以通过Windows的“开始”菜单来运行Delphi,如单击“开始”→“所有程序”→“Borland Delphi 7”→“Delphi 7”。

(2) 创建项目

为了集中管理各个文件,可以创建一个“项目”进行统一管理。

① 创建项目文件夹

为了单独存放与项目有关的文件,先创建一个文件夹。可以通过Windows环境中的资源管理器来实现,如C:\Mypro。

② 创建一个新的项目

在Delphi集成开发环境中,单击“File”→“New”→“Application”命令,创建一个新的应用程序,Delphi会自动创建项目文件及相关的其他文件。

③ 保存项目及相关文件

使用“File”菜单中的“Save All”命令将保存与项目有关的所有文件。此时首先会弹出“Save Unit1 As”对话框,定位到目录“C:\Mypro”后,输入文件名“Unit1_1”,单击“确定”按钮,接着会弹出“Save Project1 As”对话框。这时目录自动定位到“C:\Mypro”中,输入文件名“Project1_1”,单击“确定”按钮。

(3) 向窗体中添加组件

为了在Form1窗体中显示文字,可以添加一个标签(Label)组件。标签组件是组件板的Standard组件页中的第4个组件。可以将鼠标指针移动到Standard组件页中的第4个组件上,稍停一下后会出现一个内容显示为“Label”的提示窗口;单击鼠标左键,然后移动鼠标指针到Form1窗体中,再单击左键,标签组件就被添加到窗体中。

为了使每隔1秒钟将显示的内容改变一次,采用同样的方法,向Form1窗体中添加一个定时器(Timer)组件。定时器组件是System组件页中的第1个组件。

在程序运行的过程中,定时器组件并不在窗体中显示,所以可以将定时器组件随便放置在窗体中的某个位置。

为了可以关闭显示,添加一个按钮(Button)组件,按钮组件在Standard组件页中的第7个位置,采用同样方法将其添加到窗体中。

(4) 设置组件属性

在Form1窗体中选中标签组件,然后在对象编辑器窗口中对标签组件的主要属性进行设置,具体如表1.2所示。

表1.2 例1.1中标签组件的属性设置

注意:改变字体属性时,可以单击组合框右面的“…”按钮,在弹出的“字体”对话框中设置字体、大小和颜色等。也可以展开Font属性,对子属性进行设置。

设置好组件的属性后,可以改变窗体的大小:将鼠标指针移到窗体的边缘,鼠标的形状会变成双箭头模式,然后按下鼠标左键进行拖动就可以改变窗体的大小。

然后,再在Form1窗体中选中按钮组件,在对象编辑器窗口中将按钮的Caption属性设置为“开/关”。

定制好的窗体如图1.13(a)所示。

(5) 添加代码

① 在Form1窗体中选中定时器组件,然后选中对象编辑器窗口中的事件(Events)页,为定时器组件添加OnTimer事件的处理过程。只要双击OnTimer栏右边的组合框,系统就会自动添加该事件的处理过程,并自动定位到相应的代码处。

在TForm1.Timer1Timer处理过程中添加以下代码。

          procedure TForm1.Timer1Timer(Sender: TObject);
          var                              //变量说明
            DateTime : TDateTime;
            str : string;
          begin
            DateTime := Time;              //取得当前日期和时间
            str := TimeToStr(DateTime);    //转换时间成字符串
            Label1.Caption := str;         //显示时间字符
            { 注意,这些语句也可直接用下列语句代替:
              label1.Caption := TimeToStr(Time); }
          end;

② 同样,在Form1窗体中选中按钮组件,然后选中对象编辑器窗口中的Events页,为按钮组件添加单击(OnClick)事件的处理过程(即运行时,单击按钮所要运行的功能程序)。双击OnClick栏右边的组合框,进入代码编辑器,给按钮组件添加单击事件。

          procedure TForm1.Button1Click(Sender: TObject);
          begin
  timer1.Enabled:=not timer1.Enabled;
          end;

(6) 运行程序

通过“Run”菜单的“Run”命令运行程序。如果程序没有编译和链接,则程序在运行前系统会自动进行编译和链接。运行结果如图1.13(b)所示。

图1.13 显示时钟例程

说明:例1.1通过定时器每秒执行一次TForm1.Timer1Timer处理过程,在该处理过程中,通过“Label1.Caption:=str;”语句将组件Label1的Caption属性改变了,也就是将窗体中显示的内容每秒改变了一次。而按钮的单击事件是通过“Label1.Visible:=not Label1.Visible;”语句将Label1组件的Visible属性在True和False之间切换,以达到开关目的。程序中“//”和“{}”符号代表注释文本。

读者可以自己尝试进行以下工作。

① 改变窗体中显示内容交替的频率。可以通过设置定时器的Interval属性来实现。

② 改变窗体标题栏的内容。如可以将Form1的Caption属性由“Form1”改为“小闹铃”。

③ 改变窗体的大小、显示内容、字体和颜色等。

④ 有兴趣的读者还可以让程序在运行过程中发出声音,这样提示的效果会更明显。可以在Tform1.Timer1Timer过程的末尾添加一条语句实现。

          procedure Tform1.Ttimer1Timer(Sender:TObject);
          begin
          …
          Beep;                    //发声
          End;

⑤ 如果想改成准点报时发声,可以把④中的语句加一判断:

          if MinuteOf(Time)=0 then Beep;       //发声

但由于该语句用到了MinuteOf()函数,所以必须在程序的uses引用说明中加入“DateUtils”单元文件名。