循环是所有编程语言中的常见元素。Delphi有三个重复执行代码块的控制结构:例如,repeat。。。直到。。。做
假设我们需要将一个操作重复固定次数。
// show 1,2,3,4,5 message boxes var j: integer; begin for j := 1 to 5 do begin ShowMessage('Box: '+IntToStr(j)) ; end; end;控制变量(j)的值实际上只是一个计数器,它决定for语句的运行次数。用于设置计数器的关键字。在前面的示例中,计数器的起始值设置为1。结束值设置为5。当for语句开始运行时,计数器变量设置为起始值。Delphi than检查计数器的值是否小于结束值。如果该值较大,则不执行任何操作(程序执行跳转到for循环代码块后面的代码行)。如果起始值小于结束值,则执行循环体(此处:显示消息框)。最后,Delphi将1添加到计数器并再次启动该过程。
有时倒计时是必要的。downto关键字指定每次执行循环时计数器的值应递减一(不可能指定一个以外的增量/减量)。反向计数的for循环示例。
var j: integer; begin for j := 5 downto 1 do begin ShowMessage('T minus ' + IntToStr(j) + 'seconds') ; end; ShowMessage('For sequence executed!') ; end;注意:重要的是永远不要在循环中间改变控制变量的值。这样做会导致错误。
当您希望在表或网格中填充/显示数据时,在另一个for循环(嵌套循环)中编写for循环非常有用。
var k,j: integer; begin //this double loop is executed 4x4=16 times for k:= 1 to 4 do for j:= 4 downto 1 do ShowMessage('Box: '+ IntToStr(k)+ ',' + IntToStr(j)) ; end;下一个循环的嵌套规则很简单:在遇到外循环的下一个语句(k计数器)之前,必须先完成内循环(j计数器)。我们可以有三重或四重嵌套循环,甚至更多。
注意:如您所见,一般来说,开始和结束关键字不是严格要求的。如果未使用begin和end,则紧跟for语句之后的语句将被视为循环体。
如果您有Delphi2005或任何更新的版本,您可以在容器上的集合样式迭代中使用“new”for元素。下面的示例演示对字符串表达式的迭代:对于字符串中的每个字符,检查字符是否为“a”或“e”或“i”。
const s = 'About Delphi Programming'; var c : char; begin for c in s do begin if c in ['a','e','i'] then begin // do something end; end; end;有时我们不知道一个循环应该循环多少次。如果我们想重复一次手术,直到达到一个特定的目标,该怎么办?
while-do循环和repeat-until循环之间最重要的区别在于repeat语句的代码总是至少执行一次。
在Delphi中编写重复(和while)类型的循环时的一般模式如下:
repeat begin statements; end; until condition = true while condition = true do begin statements; end;下面是使用repeat Tour显示5个连续消息框的代码:
var j: integer; begin j:=0; repeat begin j := j + 1; ShowMessage('Box:'+IntToStr(j)) ; end; until j > 5; end;如您所见,repeat语句在循环结束时计算一个条件(因此,repeat循环肯定至少执行一次)。
另一方面,while语句在循环开始时计算条件。由于测试是在顶部完成的,我们通常需要在处理循环之前确保条件是合理的,如果这不是真的,编译器可能会决定从代码中删除循环。
var j: integer; begin j:=0; while j < 5 do begin j:=j+1; ShowMessage('Box:'+IntToStr(j)) ; end; end;中断和继续过程可用于控制重复语句流:中断过程使控制流退出for、while或repeat语句,并在loop语句后的下一个语句继续。Continue允许控制流继续执行重复操作的下一个迭代。
...行诸如检索、更新和插入XML数据之类的操作。 作为一名Delphi程序员,您应该知道如何使用XML文档。 xml与delphi 有关将Delphi与XML配对的更多信息,请阅读: 了解如何将TTreeView组件项存储到XML(保留树节点的文本和其他属性)...
希望掌握Delphi编程语言的初学者应该已经熟悉Microsoft Windows的基础知识。学习Delphi是最容易的,如果你从一个有指导的、基于教程的参考框架来学习它。 基本概念 从一堂历史课开始,介绍(Turbo)Pascal到Delphi 2005的演变,例...
简而言之,Delphi项目只是组成由Delphi创建的应用程序的文件集合。DPR是用于Delphi项目文件格式的文件扩展名,用于存储与项目相关的所有文件。这包括其他Delphi文件类型,如表单文件(DFM)和单元源文件(.PASs)。 由于Delphi...
如果您打算成为一名优秀的Delphi程序员,那么“接口”、“实现”和“使用”等词需要在您的编程知识中占有特殊的位置。 德尔福项目 当我们创建一个Delphi应用程序时,我们可以从一个空白项目、一个现有项目或Delphi的一...
...,以及如何处理这些错误。 以下内容包括: Excel和Delphi之间的数据传输方法。如何使用ADO(ActiveX数据对象)和Delphi连接Excel。 使用Delphi和ADO创建Excel电子表格编辑器 从Excel中检索数据。如何在Excel工作簿中引用表(或范围)...
...活动,最终降低计算机的速度。 02 2006年 何时在delphi应用程序中创建表单 假设您要设计一个包含主窗体和两个附加(模态)窗体的程序。通常,根据您的Delphi版本,Delphi将把表单插入到项目单元(DPR文件)中,并包...
...以暂停和重新启动,并且不显示任何用户界面。 使用delphi的服务应用程序 使用Delphi创建服务应用程序: 创建服务、安装和卸载服务应用程序、使服务执行某些操作,并使用TService.LogMessage方法调试服务应用程序。 使用Delphi...
从代码中调用函数“DoStackOverflow”一次,您将得到Delphi引发的EStackOverflow错误,并显示消息“stack overflow”。 function DoStackOverflow : integer; begin result := 1 + DoStackOverflow; end; 这个“堆栈”是什么?为什么使用上面的代码会...
...,Internet快捷方式指向URL(web文档)。下面介绍如何使用Delphi创建.URL文件或Internet快捷方式。 Internet快捷方式对象用于创建指向Internet站点或web文档的快捷方式。Internet快捷方式与指向文档或应用程序的常规快捷方式(包含二进...
TCheckBox Delphi控件显示一个复选框,该复选框可以打开(选中)或关闭(未选中)。Checked属性指定是否选中该复选框。 当用户单击复选框以更改其选中状态时,将触发复选框的OnClick事件。 更改复选框的checked属性 由于没有...