delphi快速入门一、基本语法
<p>1、文件构成<br>delphi的主模块文件格式为.dpr(类似C++的.sln文件),其它模块文件为.pas(类似C++的.cpp文件)。所以一个完整的程序由一个.dpr和若干个.pas组成</p><p>(1).dpr程序结构<br>一个dpr由程序头、、主程序组成,另外源文件联系着unit单元,一个典型的工程文件如下所示:<br>program Project;<br>{$APPTYPE CONSOLE}<br>use<br>SysUnits; //unit名称与.pas文件名称一致,一个.dpr中不能应用两个名称想用的.pas<br>begin<br>//....<br>end.<br>注意:良好的程序需在.dpr中代码尽量的少,代码最好分类在.pas中,然后在.dpr里调用工程文件红的全局标识符必须声明与begin之前。</p>
<p>(2).pas文件剖析<br>程序的每个子模块称为一个单元,每个单元存储在一个.pas文件中。每个.pas文件依次包括:单元名称、Interface关键字,implementation、、、关键字end。一个完整的pas文<br>件如下所示:<br>unit Unit1; //单元名称<br>interface //interface起始部分<br>uses ...<br>implementation //implementation起始处<br>uses ...<br>initialization //initalization起始处<br>...<br>finalization //finalization起始处<br>...<br>end. //单元文件结尾(end后必须以句号结尾)<br><br>interface下面可定义变量、常量、例程等。其它地方也能定义标识符,但是只有在这里定义的标识符才是全局标识符。在这里定义的例程只是一个原型,具体的实现部分则放在implementation中.<br>implementation下面可定义例程的具体代码,在此处定义的变量、常量、例程等,只能在本implementation单元使用,interface部分和其它单元无法使用initialization下面部分可选,此部分的代码在程序启动时运行。若多个单元中都包含该部分,则按照工程文件uses顺序执行。<br>finalization部分可有可无,仅当initization存在时才可以使用此部分。程序退出时使用该部分的代码,除非程序由Halt强行退出。当多个单元都存在此部分时,运行顺序与initalization相反。</p>
<p>2、数据类型<br>(1)常用整形<br>Integer -2147483648~2147483647 <br>Shortint -128~127 Smallint -32678~32767<br>Byte 0~255 Int64 -2^63~ 2^63 - 1 Cardinal 0~4294967295<br>Word 0-65535 Longint -2147483648~2147483647<br>Real -5.0x10^-324~ 1.7x10^308<br>(2)其它常见类型<br>常量:Const 常量名 = 表达式 ,声明常量不必指定数据的类型,但必须初始化<br>Const Pi = 3.1415926<br>ErrorMsg = '类型错误'<br>字符:包括ansiChar和wideChar,分别占一个字节和两个字节。<br>注意:如果想保存中文,必须用wideChar,如c := WideString('玩')</p>
<p>字符串:string<br>var <br>s :string;<br>begin<br>s := 'this is a test';<br>ShowMessage(s);<br>end;<br>布尔值:只有true和false两种类型,但是delphi内置4种布尔类型,分别是 Boolean/ByteBool/WordBool/LongBool,分别占1/2/3/4字节<br>枚举类型:type 名={标识符1,标识符2,标识符3...};<br>子界类型:type 子界类型名 = 下界..上界<br>集合:type set1 = set of 有序值得集合。例如下面的例子<br>type <br>set1 = set of 0..10<br>变体类型: variant</p>
<p>(3)数组:特别注意:delphi中数组的下标是从1开始<br>静态数组:<br>一维: type myarr = Array of integer //值为3,4,5类型是整形<br>多维:type myArr = Array of Array of Integer 或者下面的方式<br>type myArr = Array of integer<br>动态数组:<br>type dyArray = array of char;<br>var <br>dal: dyArray;<br>(4)记录类型:(结构体类型)<br>type<br>trec = record<br>mem1: char;<br>mem2: integer;<br>...<br>end;<br>(5)指针:type 指针类型标识符 = ^数据类型<br>var <br>p: ^Integer;<br>var ansiStr :^AnsiString;<br>或者先声明类型再声明变量<br>type pansiStr = ^AnsiString;<br>var ansiStr : pansiStr;<br><br>@取地址符(类似C++的&),如@ansiStr<br>^取值符(类似C++的*), 如^ansiStr<br>(6)运算符<br>div 求整数部分<br>mod 求余数部分<br>not 反 <br>and 且 <br>or 或<br>xor 异或<br>shl 左移<br>shr 右移</p>
<p>+ 对于字符串就是连接字符串成一个新的字符串。如 str = "abd" + "ed" //anded<br>集合运算符:<br>+ 集合所有不重复的组成新的集合。 + = <br>- 去掉集合中所有共有元素组成新的集合 - = <br>* 集合中共有的元素组成新的集合 * = <br>>= 若前者包含后者,则返回true >= <br>in 从属运算。若X是S1的成员,则返回True,否则返回False</p>
<p>3、语句<br>(1)if语句<br>if(条件表达式) then<br>语句 //切记,如果有对应得else语句,则这里不能用分号<br>else<br>语句;<br>(2)选择语句<br>Case 选择表达式 of<br>常量1: 语句1;<br>...<br>Else<br>...<br>End;</p>
<p>例如:<br>case myChar of <br>'+' : Text := 'Plus sign';<br>'-' : Text := 'Minus sign';<br>'*', '/': Text := 'muti';<br>'0'..'9': Text := 'number';<br>(3)循环语句<br>-------while循环-------<br>while 条件表达式 do<br>循环语句;<br>例如:while i < n do<br>begin<br>sum := sum + i;<br>i := i++;<br>end;</p>
<p>------repeat循环---------<br>repeat <br>循环体<br>until 条件表达式<br>例如:repeat<br>i := i+1;<br>sum := sum + i;<br>until i = n;</p>
<p>------for循环---------<br>for 计数器 := 初值 to/down 终值 do<br>循环体<br>例如:for i := 1 to/down n do<br>writeln('hello delphi')<br>------for ...in 循环-------<br>for v in set do<br>循环体<br>例如:var<br>mySet: set of AnsiChar;<br>ch : AnsiChar;<br>begin<br>mySet := ['1', '2'];<br>for ch in mySet do <br>writeln('hello delphi')</p>
<p>(4)终止语句<br>--------exit-------------<br>exit退出当前正在执行的程序块,不会退出整个程序,除非将其用在了主程序块中(.dpr)</p>
<p>procedure Mi; //procedure没有返回值<br>begin<br>exit;<br>end;<br><br>function Mi:string //function有返回值<br>begin<br>exit('str');<br>end;</p>
<p>----------Halt----------<br>Halt引发异常中断并通过中断直接退出整个程序<br>procedure Mi;<br>begin<br>Halt;<br>end;</p>
<p>--------terminate------<br>delphi窗体程序含有一个全局程序对象(一般是Application),terminate可在窗体程序的任何地方使程序正常终端并退出<br>procedure TForm1.Button1Click(sender: TObject);<br>begin<br>Application.terminate;<br>end;</p>
<p>(5)注释语句<br>delphi的注释有三种,除了常见的//和/**/之外,还有就是用花括号{}注释,位于{}中<br>的内容为注释</p>
<p>4、过程和函数<br>--------过程(procedure)--------<br>procedure 过程名(参数列表) //参数列表中同类型的参数之间用逗号隔开,<br>局部声明部分 //不同类型的参数用分号隔开<br>begin<br>过程体语句块<br>end;<br>例如:<br>procedure TForm1.showsum(N:integer);<br>var <br>sum, i: integer;<br>begin<br>sum := 0;<br>for i:= 1 to N do<br>sum := sum + i;<br>showMessage(inttostr(sum));<br>end;</p>
<p>-------函数(function)---------<br>function 函数名(参数表):返回值数据类型<br>局部声明部分<br>begin<br>函数体语句块<br>end;<br>例如:<br>function TForm1.tryfunc(i, j:integer; c:char):integer;<br>begin<br>tryfunc := 1;<br>end;</p>
<p>5、快捷操作<br>(1)常用快捷键<br>F4 运行到下一个断点 <br>F5 设置断点<br>F7 进入函数<br>F8 单步运行<br>F9 运行程序<br>F12 快速切换源文件和窗体<br>Shift + F12 切换到窗体<br>Ctrl + F12 切换到源文件</p>
<p>6、特殊符号<br>^ 指针的引用解析操作符。如果该符号出现在类型前面,表示一个指针,如var p:^integer;如果在后面,那么表示取地址对应的值。如 i := p^<br>@ 取址运算符 var i:integer; p:^integer; i := 2; p := @i;<br># Ascii值表示符。如 const key = #9<br>$ 十六进制符</p><br><br>
来源:https://www.cnblogs.com/lenovo512023499/p/15226744.html
頁:
[1]