delphi快速入門一、基本語法


1、文件構成
delphi的主模塊文件格式為.dpr(類似C++的.sln文件),其它模塊文件為.pas(類似C++的.cpp文件)。所以一個完整的程序由一個.dpr和若干個.pas組成

(1).dpr程序結構
一個dpr由程序頭、[use從句]、主程序組成,另外源文件聯系着unit單元,一個典型的工程文件如下所示:
program Project;
{$APPTYPE CONSOLE}
use
SysUnits; //unit名稱與.pas文件名稱一致,一個.dpr中不能應用兩個名稱想用的.pas
begin
//....
end.
注意:良好的程序需在.dpr中代碼盡量的少,代碼最好分類在.pas中,然后在.dpr里調用工程文件紅的全局標識符必須聲明與begin之前。

(2).pas文件剖析
程序的每個子模塊稱為一個單元,每個單元存儲在一個.pas文件中。每個.pas文件依次包括:單元名稱、Interface關鍵字,implementation、[initalization]、[finalization]、關鍵字end。一個完整的pas文
件如下所示:
unit Unit1; //單元名稱
interface //interface起始部分
uses ...
implementation //implementation起始處
uses ...
initialization //initalization起始處
...
finalization //finalization起始處
...
end. //單元文件結尾(end后必須以句號結尾)

interface下面可定義變量、常量、例程等。其它地方也能定義標識符,但是只有在這里定義的標識符才是全局標識符。在這里定義的例程只是一個原型,具體的實現部分則放在implementation中.
implementation下面可定義例程的具體代碼,在此處定義的變量、常量、例程等,只能在本implementation單元使用,interface部分和其它單元無法使用initialization下面部分可選,此部分的代碼在程序啟動時運行。若多個單元中都包含該部分,則按照工程文件uses順序執行。
finalization部分可有可無,僅當initization存在時才可以使用此部分。程序退出時使用該部分的代碼,除非程序由Halt強行退出。當多個單元都存在此部分時,運行順序與initalization相反。

2、數據類型
(1)常用整形
Integer -2147483648~2147483647
Shortint -128~127 Smallint -32678~32767
Byte 0~255 Int64 -2^63~ 2^63 - 1 Cardinal 0~4294967295
Word 0-65535 Longint -2147483648~2147483647
Real -5.0x10^-324~ 1.7x10^308
(2)其它常見類型
常量:Const 常量名 = 表達式 ,聲明常量不必指定數據的類型,但必須初始化
Const Pi = 3.1415926
ErrorMsg = '類型錯誤'
字符:包括ansiChar和wideChar,分別占一個字節和兩個字節。
注意:如果想保存中文,必須用wideChar,如c := WideString('玩')

字符串:string
var 
s :string;
begin
s := 'this is a test';
ShowMessage(s);
end;
布爾值:只有true和false兩種類型,但是delphi內置4種布爾類型,分別是 Boolean/ByteBool/WordBool/LongBool,分別占1/2/3/4字節
枚舉類型:type 名={標識符1,標識符2,標識符3...};
子界類型:type 子界類型名 = 下界..上界
集合:type set1 = set of 有序值得集合。例如下面的例子
type 
set1 = set of 0..10
變體類型: variant

(3)數組:特別注意:delphi中數組的下標是從1開始
靜態數組:
一維: type myarr = Array[3..5] of integer //值為3,4,5類型是整形
多維:type myArr = Array[1..3] of Array[3..5] of Integer 或者下面的方式
type myArr = Array[1..3, 3..5] of integer
動態數組:
type dyArray = array of char;
var 
dal: dyArray;
(4)記錄類型:(結構體類型)
type
trec = record
mem1: char;
mem2: integer;
...
end;
(5)指針:type 指針類型標識符 = ^數據類型
var 
p: ^Integer;
var ansiStr :^AnsiString;
或者先聲明類型再聲明變量
type pansiStr = ^AnsiString;
var ansiStr : pansiStr;

@取地址符(類似C++的&),如@ansiStr
^取值符(類似C++的*), 如^ansiStr
(6)運算符
div 求整數部分
mod 求余數部分
not 反
and 且
or 或
xor 異或
shl 左移
shr 右移

+ 對於字符串就是連接字符串成一個新的字符串。如 str = "abd" + "ed" //anded
集合運算符:
+ 集合所有不重復的組成新的集合。[1,2] + [2, 3] = [1,2,3]
- 去掉集合中所有共有元素組成新的集合 [1,2,3] - [2,6] = [1,3]
* 集合中共有的元素組成新的集合 [1,2,3] * [2,3] = [2,3]
>= 若前者包含后者,則返回true [1,2,5] >= [2,5]
in 從屬運算。若X是S1的成員,則返回True,否則返回False

3、語句
(1)if語句
if(條件表達式) then
語句 //切記,如果有對應得else語句,則這里不能用分號
else
語句;
(2)選擇語句
Case 選擇表達式 of
常量1: 語句1;
...
Else
...
End;

例如:
case myChar of 
'+' : Text := 'Plus sign';
'-' : Text := 'Minus sign';
'*', '/': Text := 'muti';
'0'..'9': Text := 'number';
(3)循環語句
-------while循環-------
while 條件表達式 do
循環語句;
例如:while i < n do
begin
sum := sum + i;
i := i++;
end;

------repeat循環---------
repeat 
循環體
until 條件表達式
例如:repeat
i := i+1;
sum := sum + i;
until i = n;

------for循環---------
for 計數器 := 初值 to/down 終值 do
循環體
例如:for i := 1 to/down n do
writeln('hello delphi')
------for ...in 循環-------
for v in set do
循環體
例如:var
mySet: set of AnsiChar;
ch : AnsiChar;
begin
mySet := ['1', '2'];
for ch in mySet do 
writeln('hello delphi')

(4)終止語句
--------exit-------------
exit退出當前正在執行的程序塊,不會退出整個程序,除非將其用在了主程序塊中(.dpr)

procedure Mi; //procedure沒有返回值
begin
exit;
end;

function Mi:string //function有返回值
begin
exit('str');
end;

----------Halt----------
Halt引發異常中斷並通過中斷直接退出整個程序
procedure Mi;
begin
Halt;
end;

--------terminate------
delphi窗體程序含有一個全局程序對象(一般是Application),terminate可在窗體程序的任何地方使程序正常終端並退出
procedure TForm1.Button1Click(sender: TObject);
begin
Application.terminate;
end;

(5)注釋語句
delphi的注釋有三種,除了常見的//和/**/之外,還有就是用花括號{}注釋,位於{}中
的內容為注釋

4、過程和函數
--------過程(procedure)--------
procedure 過程名(參數列表) //參數列表中同類型的參數之間用逗號隔開,
局部聲明部分 //不同類型的參數用分號隔開
begin
過程體語句塊
end;
例如:
procedure TForm1.showsum(N:integer);
var 
sum, i: integer;
begin
sum := 0;
for i:= 1 to N do
sum := sum + i;
showMessage(inttostr(sum));
end;

-------函數(function)---------
function 函數名(參數表):返回值數據類型
局部聲明部分
begin
函數體語句塊
end;
例如:
function TForm1.tryfunc(i, j:integer; c:char):integer;
begin
tryfunc := 1;
end;

5、快捷操作
(1)常用快捷鍵
F4 運行到下一個斷點
F5 設置斷點
F7 進入函數
F8 單步運行
F9 運行程序
F12 快速切換源文件和窗體
Shift + F12 切換到窗體
Ctrl + F12 切換到源文件

6、特殊符號
^ 指針的引用解析操作符。如果該符號出現在類型前面,表示一個指針,如var p:^integer;如果在后面,那么表示取地址對應的值。如 i := p^
@ 取址運算符 var i:integer; p:^integer; i := 2; p := @i;
# Ascii值表示符。如 const key = #9
$ 十六進制符


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM