Delphi控制语句
顺序结构是一种线性结构,这种结构是按从上到下的顺序依次执行各语句。
赋值语句
赋值语句是Delph7中最基本的一种语句,用于对变量赋值或设置组件的属性值。
语法:
变量名:=表达式;
对象.属性:=表达式;
输入语句
InputBox函数和InputQuery函数用于显示一个带有编辑组件的消息对话框,该提示框中有一个文本输入框和两个命令按钮,为用户提供输入文本的功能。
InputBox函数
语法:function InputBox(const ACaption,APrompt,ADefault:String):String;
ACaption,消息对话框的标题。
APrompt,消息对话框的提示信息。
ADefault,消息对话框首次出现时编辑框中显示的信息。
例:
procedure TForm1,ButtonClick(Sender:TObject);
var
S:String;
begin
S:inputbox('查询','请输入查询内容:','');
if S=Edit1.Text then
begin
ShowMessage('查询内容为:'+Edit1.Text);
end//此处不能多加分号
Else
ShowMessage('没有查询到此消息');
end;
InputQuery函数
显示一个带有编辑组件的对话框,为用户提供输入文本的功能,并判断用户是否按下了Ok按钮。
语法:function InputQuery(const ACaption,APrompt:string;var Value:string):Boolean;
ACaption,消息对话框的标题。
APrompt,消息对话框的提示信息。
Value,对话框首次出现在编辑框中显示的字符串,并得到用户在消息对话框中输入的字符串。
输出语句
MessageDlg函数可以将信息以对话框的形式输出并显示。
语法:function MessageDlg(const Msg:string;DlgType:TMsgDlgType;Buttons:TMesgDlgButtons;HelpCtx:Longint):Integer;
Msg,显示消息的内容。
Dlgtype,指定消息对话框的类型。
Buttons,指定消息对话框显示的按钮
HelpCtx,指定应显示帮助标题的正文ID
DlgType参数的取值:
mtInfromation,显示带感叹号图标的信息框。
mtWarnging,显示一个带有提醒符号图标的信息框。
mtCustom,无显示图标。
mtError,显示一个带有停止符号图标的信息框。
mtConfirmation,显示一个带有问好图标的信息框。
例:
MessageDlg('MessageDlg输出信息提示框',mtinformation,[mbok,mbyes],0);
2条件判断语句
使用if...then语句
语法:
if 条件 then
begin
语句
end;
if...then...else语句
语法:
if 条件 then
语句1
else
语句2
注意在使用if...then...else语句时,else前面的一条语句后面不能加分号;,否则将出现语法错误。例:
procedure TForm1.Button1Click(Sender:TObject);
begin
if Edit1.Text='' then
begin
ShowMessage('输入不能为空');
end//此处不能多加分号。
else
ShowMessage('您输入的内容为:'+Edit1.Text);
end;
if...then...else if语句
语法:
if 条件 then
begin
语句
end
else if 条件 then
begin
语句
end;
同样else if前面的一条语句后面不能加分号;。
case...of条件分支语句
case...of语句提供了一个可读性更好的多重if嵌套的解决方案。
语法:
case 条件表达式 of
条件1:语句1;
....
条件n:语句n;
else
其他语句;
end
例:
procedure TForm1.Button1Click(Sender:TObject);
var
C:Integer;
N:String;
begin
C:=2;
case C of
0:N:='条件值为1';
1:N:='条件值为2';
2:N:='条件值为3';
else N:='没有对应的条件';
end;
Edit1.Text:=N;
3循环结构
Repeat...until语句
Repeate...Unitl循环语句是直到型循环语句,该语句的操作是先执行一次循环,只要Repeat后的表达式为False。程序就继续执行,直到该表达式为真(True)才结束循环。
语法:
Repeat
循环体
until
布尔表达式
例:
procedure TForm1.ButtonClick(Sender:TObject);
var
i:Integer;
begin
i:=0;
Repeat
inc(i);
i:=i+1;
until
(i>=10);
Edit1.Text:=IntToStr(i);
end;
while...do语句
while...do语句为当型循环语句,该语句的执行过程是先判断while后的布尔表达,然后再执行。while...do语句是当条件表达式的值为True时,执行其中的循环体。
语法:
while 条件表达式 do
begin
循环体
end;
例:求1累加到100的和
procedure TForm1.ButtonClick(Sender:TObject);
var
i,j:Integer;
begin
i:=0;
j:=0;
while i<=100 do
begin
j=j+i;
i:=i+1;
end;
Edit1.Text:=IntToStr(j);
end;
for...do语句
for...do是经常能够用到的循环语句,该语句不同于while...do语句,它可以确定循环次数。另外,在for...do语句中使用to和downto关键字,可以实现递增循环和递减循环。循环中默认的步长在for...to...do情况下为1,for...downto...do情况下为-1。
递增循环的语法:
for 循环变量:=初值 to 終值 do
begin
循环体语句
end;
递减循环的语法:
for 循环变量:=初值 downto 终值 do
begin
循环体语句
end;
4其他控制语句
Break语句
Break语句用于强制跳出循环,当一个循环没有达到循环结束的条件并要结束循环时,可以使用Break语句。
Continue语句
Continue语句是强制结束本次循环,即跳过当前的循环后,继续执行下一次循环操作。
Exit语句
Exit语句主要用于退出当前的代码块,如果该段代码块是主程序,那么Exit语句将导致程序终止,如果程序块是被调用的模块,则跳到上一层程序继续执行。
Halt语句
Halt语句用于强制终止程序的执行,并返回到操作系统。
procedure TForm1.N21Click(Sender:TObject);
begin
if MessageDlg('真的要退出系统吗?',mtinformation,[mbyes,mbno],0)=mbyes then
begin
Halt;
end;
end;
RunError语句
RunError语句用于终止程序运行并产生一个运行期错误,错误号最高值为255。
procedure TForm.Button1Click(Sender:TObject);
begin
RunError(200);
end;
Abort语句
Abort语句用于中止程序的运行,产生一个特殊的"无记载异常",此异常与其他异常相同,只是不显示错误信息。
goto语句
goto语句使用起来十分方便,可以从程序的一个地方直接跳到另一个地方,尽量少用goto语句。
procedure TForm1.Button1Click(Sender:TObject);
Label AA;//在此声明一个标签。
var
sum,i:Integer;
begin
sum:=0;
i:=0;
AA://使用标签;
sum:=sum+i;
i:=i+1;
if i<=100 then
goto AA;//如果i不满足条件,则直接跳转到使用标签的位置。
Edit1.Text:=IntToStr(sum);
end;