Delphi
P1 第一个程序
直接在界面上可加入label、edit文本框以及button按钮
双击图标可进入编程界面
visible:是否可见
showhint hint:悬浮
edit1.text:给edit1添加文本
edit1.Text:='hello';
close:关闭
close;
:= :赋值符号
; :语句的结束
caption:修改文字
P2 基本数据与表达式1
整型:integer
实型:Real
字符型:Char
字符串型:String
布尔型:Boolean
P3 基本数据与表达式2
定义常量:const
const
TEMP= 111
类型常量:
const
TEMP:Integer = 111
声明变量:var
三层结构:
interface:其他引用该单元的可使用
implimentation:单元内所有函数可使用
procedure:函数内使用
var
temp: Integer
var
n1,n2,n3:Integer;
str:String;
r1:Real;
文字
选中edit表格时,可在objectinspector的events中选择onclick修改
MOD 是相除取余数,DIV是相除取商
StrToInt、IntToStr
P4 基本数据类型与表达式
算术运算符
取正:+,单目
取负:-,单目
加法:+
减法:-
乘法:*
除法:/,结果为实型数据
整除:div,结果为整型数据,结果为商
取余:mod,两个整数相除,结果为余数
函数:FloatToStr(展示于界面)、StrToFloat(数值运算)
字符串运算符
P5基本数据类型与表达式3
位运算符
Not、and、or、Xor、shl、shr
P6 基本数据类型与表达式5
数学类函数
绝对值函数:Abs(x):Extended;
取整数函数
Trunc(x):Int64; 返回实型数据x的整数部分,舍弃小数部分,类型为Int64
Int(x):Extended 返回整数部分,类似Trunc(x)
'Round(x):Int64;' 返回对实型数据x的小数部分四舍五入后的整数部分
取小数函数
Frac(x):Extended; 返回小数部分
x:=Frac(-2.5);
平方函数
Sqr(x):Extended;
x:=Sqr(-2.5);
平方根函数
Sqrt(x):Extended; 返回非负实数的算术平方根
三角函数
Sin(x):Extended; 返回弧度为单位的正弦函数值
Con(x):Extended;
ArcTan(x):Extended;
指数函数
Exp(x):Real;
自然对数函数
Ln(x):Real;
随机数函数
Random(x); 返回大于等于0,小于整数x的随机整数
P7 基本数据类型与表达式6(上)
字符串处理函数与过程
大小写转换函数
function 函数名(传入值):返回值
LowerCase(const s:String):String;
x1:=LowerCase('aBc');
UpperCase(const s:String):String;
UpperCase(const s :String):String;
字符串大小比较函数
CompareStr(const s1,s2:String):Integer;
区分大小写,若前者大于后者,比较终止,返回值大于0;若均相等,返回值为0;小于后者,返回值小于0
CompareText(const s1,s2:String):Intrger;
不区分大小写比较字符串大小
x1:=CompareStr('Abc','abc');返回值:x1: -32
x1:=CompareText('Abc','abc');返回值:x1: 0
求字符串长度函数
Lengths:Integer;
x:=Length('Fishc')
查找位置函数
Pos(s1,s2):Integer; 返回子字符串s1在字符串s2中首次出现的位置,若s2中不存在,则返回0。s1必须为s2的子串。
x:=Pos('bc','abcd'); 返回值为2
合并字符串过程
AppendStr(var s1,Const s2); 执行效率比"s1:=s1+s2;"高
截取子字符串函数
Copy(str,m,n):String; 在字符串str中截取从第m个字符开始长度为n的子字符串,并返回子字符串
Copy(IloveFishc!,6,5); s1值为'Fishc'
s3:=Copy('IloveFishc!',1,1)和s4:=Copy('IloveFishc!',0,1);相同
删除子字符串过程
Delete(str,m,n);
插入子字符串过程
Insert(str1,str,k); 将字符串str1插入到字符串str中的第k个字符处
数值和字符串相互转换函数
IntToStr(m):String;
StrToInt(s):Integer;
StrToFloat(s):Extended;
P9 结构化程序设计
顺序结构
选择结构
<>:不等于
in:等于
关系表达式:6>4(True)
关系运算符:9个,运算级别相同,从左到右运算,两边的数据类型必须一致
逻辑表达式
逻辑运算符(但不是位运算符):两边的数据为数值时,逻辑运算符转化为位运算符,结果为整数而非逻辑值
优先级:Not>And>Or、Xor:两个表达式的值不同则结果为True
主要用于条件判断:And、Or
单分支语句
If (条件) Then
语句1;
语句2;
双分支语句
If (条件) Then
begin
语句1;
语句2;
end;
Else
语句2;
语句1、2可为简单语句或复合语句(复合语句必须包含在begin 和end之间)
多分支case语句
Case (表达式) of
值1:语句1;
值2:语句2;
值n:语句n;
Else
语句n+1;
end;
弹窗消息
ShowMessage('文本');
MessageBox(handle,'内容','框标题',MB_OKCANCEL); uses要加上LCLType;推荐使用
MessageDlg();
设置edit文本在中间
SetWindowLong();
循环结构
P15结构化程序设计3
while语句
while (循环条件) do
循环体;(需用begin、end括起来)
Break和Continue语句
break:强制终止整个循环
Continue:结束本次循环
通常放在循环体的if语句之后,在满足某个条件时结束循环或本次循环
16 结构化程序设计4
repeat语句
Repeat
循环体(循环体不需要使用begin、end括起来)
Until(循环条件);
for语句
For 循环变量:=初值 To(DownTo【递减循环】) 终值Do
循环体;
循环变量自动会加1
P17 Delphi调试
F5打断点,右键-CPU-F7/8跳转
P18 关于数组的认识
一维静态数组定义与使用
type
数组类型名 = Array[下标类型] of 基类型
实例定义
Type number = Array[1..10] of Integer
var num_one:Array[1..10] of Integer;
使用
For i:=1 To 10 do
num1[i]:=i;
P19 关于数组的认识2
二维静态数组定义
格式1
type
数组类型名 = Array[下标类型1,下标类型2】 of 基类型
格式2
Type
数组类型名 = Array[下标类型1】 of Array [下标类型2] of 基类型
多维数组以此类推
P20关于数组的认识3
动态数组
Arr_Str:Array of Integer;
SetLength过程设置数组的大小
一维动态数组
var
Arr_Str:Array of Integer;
begin
SetLength(Arr_Str,10);//10个整型元素
end;
二维动态数组
var
Arrs:Array of Array of Integer;
begin
SetLength(Arrs,2,5);//2行5列的数组
End;
动态数组下标从0开始,静态不是
动态数组各行长度可以不同
Low、High、Length:返回数组的最小下标值、最大下标值、数组长度
Inputpox():3个参数,返回值为输入值
P23浅谈过程与函数1
形式参数若有多个,则用分号分隔,而函数或过程调用中,实参用逗号分隔
形参实参要求数量相同,顺序相同
P24浅谈过程与函数2
传值与传址
传值:复制值,不改变原来的值
传址:引用参数,操作的是原始值,会改变实参的值
P25浅谈过程与函数3
在语句中至少要给函数名或result赋值一次
Function 函数名(形参表):返回值类型;
局部声明
begin
语句;
end;
P26窗体与组件
P27窗体与组件2
label、StaticText、TabControl、PageControl
label、StaticText相似。StaticText:窗口型文本组件。具有窗口句柄。当组件的快捷键必须属于窗口型组件的时候,使用此组件,不可使用label。
TabControl组件:
Tabs属性:形成Tab标签
Tab width属性
Tabposition:更改tab的位置
TabIndex:tab的索引
Hottrack:鼠标移动时颜色改变
Multiline
MutiSelect:为true时,和style配合使用时可进行多选
pagecontrol组件
无代码呀,没写
右键添加newpage。每个页面可以有他单独的组件
P28窗体与组件3
按钮型组件
button BitBtn SpeedButton
button:不能显示位图
SpeedButton没有焦点,一般用于工具栏按钮
BitBtn有kind属性,更改为系统默认的标志,如?help的图像
layout属性:确定按钮中文本和图片的位置
Margin:调整图片与边框的位置,默认为-1
Spacing:图片与文字的间距
RadioButton :单选 使用check属性
CheckBox:两者共拥有check属性。state属性:cbGrayed变灰选中。可多选
编辑型组件
Edit组件:passwordchar:* readOnly:只能被读
事件:OnEnter OnChange OnKeypress
实例挑战:修改V3 计算器,使其只接受数字输入(不会啊)
MaskEdit组件:固定文本格式
Memo组件:处理多行文本。Edit处理单行文本
lines:表示memo中以行为单位的文本
memo1.lines.add('增加新行');
memo1.lines.delete(5);
memo1.lines.move(0,3);
memo1.lines.clear();
memo1.lines.Insert(3,'真对');
memo1.lines.count;
LoadFromFile('test.txt');
SaveToFile('test2.txt');
Modified:确定文本是否改动
Scroll Bars:滚动条
Word Wrap:设置文本是否可换行
RichEdit组件保存的是RTF格式
P37文件系统
文本文件:TextFile
二进制(记录型)文件:File
常见的实现方法
创建文件
读取文件
向一个文件的末尾添加数据
读文件中某一位置的数据(随机读)
修改文件中某一位置的数据(随机写)
文件指针自动移向下一个数据
定义文本文件变量
var FishcFile:TextFile;
文本文件的打开
procedure AssignFile(var F; FileName:string); AssignFile(FishFile,'Fishc.txt');关联文件变量,记得带上路径,关联后可使用reset,rewrite,append,rewrite使用得较多
Reset:只读
procedure Reset(var F[:File;RecSize:Word]);
Rewrite:只写
procedure Rewrite(var F:File[;Recsize:Word]); Rewrite(FishcFile);
若有同名文件将被删除
Append:添加
procedure Append(var F:Text);
word为可选参数
文本文件的关闭
procedure CloseFile(var F);' 成对出现 AssignFile(FishcFile,'Fishc.txt');
…………
CloseFile(FishcFile);`
文本的写操作
Write:将指定数据加入到文件中
procedure Write([var F:Text;]P1[,P2,...,Pn]);
Writeln:最常使用,自动加入换行符
write(F1,N1:10:5) //10:域宽 5:小数点后几位
P38文件系统2
文本文件的读操作
Read:不跳到下一行
Readln:读取若干个数据后跳到下一行
读取指定数量的字符型,变量类型建议是String[N]
行尾与文件尾的判断
判断当前文件是否处于行尾和文件尾,通过Eoln和Eof函数实现
Eoln
function Eoln[(var F:Text)]:Boolean;//若文件指针处于行尾,返回值为true,否则返回值为False
Eof(常用)
fuction Eof [(var F:Text)]:Boolean;//注意,若文件为空,Eof函数的返回值也是true
P39文件系统3
记录型文件变量定义
步骤一:定义记录类型
type
FishcOil:=record
name:=String[N];
rdate:Integer;//20111203
sex:Char;//'M' or 'F'
end;
步骤二:定义记录文件类型的变量
var
记录文件类型变量名:记录文件类型;
VFFishcOil:File of FishcOil
AssignFile:关联记录文件变量与实际的磁盘文件
Reset、Rewrite打开记录文件
CloseFile关闭记录文件
注意:不能使用Append打开记录文件,仅限于文本文件。关闭文件的操作对记录文件极为重要,否则可能破坏整个文件。
Reset:打开记录型文件是读或写
Rewrite:创建和写,若文件存在会把文件删除
记录型文件的读写
Read(VFFishcOil,v1,v2);
Read(VFFishcOil,v1);
Read(VFFishcOil,v2);
注意:用read读取记录,文件位置指针超过文件尾,将会发生运行时错误。因此读取数据时一般要对文件尾进行判断
Write(VFFishcOil,v1);
Write(VFFishcOil,v2);
或者Write(VFFishcOil,v1,v2);
记录型文件的记录数
每条记录都有一条编号。记录编号从0开始,最后一个记录的编号是N-1
function FileSize(var F):Integer;//返回记录数
移动与检测记录文件的文件指针
不管使用reset还是rewrite过程打开文件,文件指针都在文件首
记录的随机存取是通过Seek过程和FilePos函数来实现
procedure Seek(var F;N:Longint);//将文件指针指向文件尾
function FilePos(var F):Longint;
读取并修改记录
读取与VFFishcOil文件型变量相关联的文件的第五条记录:
Seek(VFFishcOil,4);
Read(VFFishcOil,v1);
读取、修改并更新文件中记录:(不明白)
Seek(VFFishcOil,1);
Read(VFFishcOil,v1);
v1.name:='小甲鱼';
Seek(VFFishcOil,1);
write(VFFishcOil,v1);若忘记第二次调用seek过程,结果将用更新后的信息覆盖第三条记录。

浙公网安备 33010602011771号