参考书籍:Delphi8.0程序设计教程(张娟 编)
集成开发环境
程序的调试-断点法
1.单击代码行左侧空白处。代码在的code里
2.将鼠标点在想要设置断点的行中,按“F5”可设置断点,再次按“F5”可取消。如果F5被设为快捷键可同时按下“Fn”和“Esc”键取消快捷键设置
一个简单的开发实例(平闰年)
运行后主窗体显示一个输入框和两个按钮“确认”和“退出”,在输入框输入年份后,点击“继续”后弹出第二个窗体,点击“退出”后主窗体关闭;第二个窗体中根据输入的年份显示闰年还是平年!
需要注意,Delphi中的代码部分大小写
创建主窗体form1
创建第二个窗体form2
拖拽一个TEdit组件和两个TButton组件到主窗体form1中
鼠标拖拽调整一下组件的位置
设置组件的属性
Name是Edit1的名称,改为便于理解的名称,最好不要使用保留字;text是显示在Edit1中的文字,这里改为null,TextHint属性是默认显示在Edit中的文字,当点击Edit栏时文字隐藏。
修改两个Button的属性:Caption是显示的值,Name是组件的名称,一般更改为便于理解和记忆的名字(Button一般缩略为Btn)
form2中添加Tpanel组件,设置属性
form1引用form2
将界面显示为form1窗体,file -》 use Unit 出现新窗口,选择需要窗体的单元->OK。
然后form1的代码中就会出现引用的代码:
设置按钮的点击触发事件
按图操作后会跳转到窗体的代码中,此时光标就在触发事件的begin...end里,直接书写代码即可。
procedure TForm1.BtnConfirmClick(Sender: TObject);
var
ye:integer; //声明整型变量
begin
ye:=strtoint(EdiYear.Text); //将输入的年份读取并转化为整型赋值给ye
if ye>0 then
begin
if ye mod 400=0 then
form2.PanelShow.Caption:= inttostr(ye)+'年是世纪闰年'
else
if ye mod 4 =0 then
form2.PanelShow.Caption:=inttostr(ye)+'年是闰年'
else form2.PanelShow.Caption:=inttostr(ye)+'年是平年';
form2.Show
end
else
messagebox(Handle,'请输入大于0的整数','错误',MB_ICONSTOP) ;
end;
设置输入只能为整数
触发onKeyPress事件
procedure TForm1.EdiYearKeyPress(Sender: TObject; var Key: Char);
//限制TEdit输入字符只能为整型
begin
if not (key in ['0'..'9',#8]) then //如果输入字符不是整型
begin
MessageBeep(0); //声音警告
key :=#0;//取消输入
end;
end;
语法
保留字
系统规定的具有特殊意义、特殊用途的字符串,它不能被用户重新定义或者作为其他标识符使用。
保留字 | 保留字 | 保留字 | 保留字 | 保留字 | 保留字 | 保留字 |
---|---|---|---|---|---|---|
and | array | as | asm | begin | case | class |
const | constructor | destructor | dispinterface | div | do | downto |
else | end | except | exports | file | finalization | finally |
for | function | goto | if | implementation | in | inherited |
initialization | inline | interface | is | label | library | mod |
nil | not | object | of | or | out | packed |
procedure | program | property | raise | record | repeat | resourcestring |
set | shl | shr | string | then | to | try |
type | until | users | var | while | with | xor |
其中标色的大概是比较常用的,也是我学到现在用过的。
标识符
也叫指令字,和保留字的区别是命令符只有在特殊的情况下才有意义,一般情况下可以被用户定义为变量使用,程序不会出错,但是会条理不清。
常量
const 参数=常量;
const
age=56;
在程序中不能给常量赋值,否则编译出错!
类型常量:
const 常量名:类型名=常量值;
const
Pi:real=3.14;
Max:Integer=255;
Dd:string[4]='name';
变量
var 变量名1,变量名2:类型名; //声明
var 变量名:类型名=常量表达式;
var
X:integer;
Y,Z:string;
I:integer=12;
公有变量和私有变量:在单元接口(interface)中声明的变量属于公有变量,可以被其他单元引用,能够实现变量从一个单元传到另一个单元;在单元的实现(Implementation)部分声明的变量属于私有变量,只能在本单元使用。
全局变量和局部变量:全局变量是在子程序之前、单元的实现部分之后声明的变量可以被本单元任何一个子程序使用;局部变量是在一定区域范围内使用的变量,一个子程序使用了,其他子程序就不能使用。当局部变量和全局变量重名时,局部变量的优先级高于全局变量。注意:一般情况下不要把变量定义为全局变量。
数据类型
整型:integer(32位有符号),word(16位无符号)
实数:real
字符:char(表示ASCII字符集)
字符串:string(动态长度)
布尔:boolean(只有true和false两种取值)
枚举类型Enumerated:
type 类型定义符=标识符1,标识符2,...,标识符n;
Type
Week=(Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday);
var
D:Week;
var
D:(Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday);
D:=Sunday;//赋值