PASCAL 學習 delphi

 

1,在Pascal中,註釋括在大括號中或帶星號的圓括號中。Delphi 也認可C++ 風格的註釋,

即把註釋放在雙斜線後。例如

{this is a comment}
(* this is another comment *)
// this is a comment up to the end of the line
2,Pascal 編譯器(不象其他語言的編譯器)不考慮字符的大小寫,
因此標識符Myname、 MyName、 myname、 myName、 
和MYNAME是完全相同的
3,使用代碼模板 

Delphi 3 中增加了用於代碼編輯的新功能“代碼模板”。

由於寫Pascal 語句時,常常會重複鍵入相同的一組關鍵字,

爲此Borland 公司開發了名爲“代碼模板”的新功能,代碼模板中

存放了能與代碼縮略形式對應的完整代碼,你輸入縮略代碼,

然後按Ctrl+J,完整的代碼就出現了。

例如,你輸入arrayd,然後按Ctrl+J,Delphi 編輯器會把你的

文本擴展爲:

array [0..] of ;

由於同一種代碼結構在預定義的代碼模板中通常有多種樣式,

所以模板中的縮略形式一般加有一個後綴字母,以便你選用。

此外,你也可以只輸入縮略形式的頭幾個字母,

如你輸ar,然後按Ctrl+J,那麼,編輯器中會彈出一個菜單,

菜單中列出了代碼縮略形式選項,見圖2.2所示。

 

代碼模板可以定製,就是你可以修改已有的模板也可以添加自己常用

的代碼段。用代碼模板輸入的代碼文本中通常會出現‘|’字符,

它表示輸入模板代碼後光標應跳到的位置,就是說你應該從

這個光標位置開始輸入,寫完這句代碼。

4,
關鍵字 

關鍵字是Object Pascal 的保留標識符,在語言中有着特殊含義。

保留字不能用作標識符,指令字也同樣不應該用作標識符,

即使編譯器允許也最好不用。在實際中你不應該把任何關鍵字

用作標識符。

表2.1是面向對象 Pascal 語言(Delphi 4)中特殊標識符的完整列表,

其中包括關鍵字及保留字。

表2.1:面向對象Pascal語言中的關鍵字及保留字

關鍵字 作用
absolute 指令 (變量)
abstract 指令 (方法)
and 運算符 (布爾)
array 類型
as 運算符 (RTTI)
asm 語句
assembler 向後兼容 (彙編)
at 語句 (異常處理)
automated 訪問類別符 (類)
begin 塊標記
case 語句
cdecl 函數調用協定
class 類型
const 聲明或指令(參數)
constructor 特殊方法
contains 運算符 (集合)
default 指令 (屬性)
destructor 特殊方法
dispid dispinterface 界面類別符
dispinterface類型
div 運算符
do 語句
downto 語句 (for)
dynamic 指令 (方法)
else 語句 (if 或 case)
end 塊標記
except 語句 (異常處理)
export 向後兼容 (類)
exports 聲明
external 指令 (函數)
far 向後兼容 (類)
file 類型
finalization單元結構
finally 語句 (異常處理)
for 語句
forward 函數指令
function 聲明
goto 語句
if 語句
implementation單元結構
implements 指令 (屬性)
in 運算符 (集合) - 工程結構
index 指令 (dipinterface界面)
inherited 語句
initialization單元結構
inline 向後兼容 (見 asm)
interface 類型
is 運算符 (RTTI)
label 聲明
library 程序結構
message 指令 (方法)
mod 運算符 (數學)
name 指令 (函數)
near 向後兼容 (類)
nil 數值
nodefault 指令 (屬性)
not 運算符 (布爾)
object 向後兼容 (類)
of 語句 (case)
on 語句 (異常處理)
or 運算符 (布爾)
out 指令 (參數)
overload 函數指令
override 函數指令
package 程序結構 (控件包)
packed 指令 (記錄)
pascal 函數調用協定
private 訪問類別符 (class)
procedure 聲明
program 程序結構
property 聲明
protected 訪問類別符 (類)
public 訪問類別符 (類)
published 訪問類別符 (類)
raise 語句 (異常處理)
read 屬性類別符
readonly dispatch 界面類別符
record 類型
register 函數調用協定
reintroduce 函數指令
repeat 語句
requires 程序結構 (控件包)
resident 指令 (函數)
resourcestring類型
safecall 函數調用協定
set 類型
shl 運算符 (數學)
shr 運算符 (數學)
stdcall 函數調用協定
stored 指令 (屬性)
string 類型
then 語句 (if)
threadvar 聲明
to 語句 (for)
try 語句 (異常處理)
type 聲明
unit 單元結構
until 語句
uses 單元結構
var 聲明
virtual 指令 (方法)
while 語句
with 語句
write 屬性類別符
writeonly dispatch 界面類別符
xor 運算符 (布爾)

 

運算符及其優先級

如果你以前寫過程序,那麼你已經知道表達式是什麼了。

這裏我專門講一下Pascal 運算符的特殊部分:運算符的優先級。

表2.2中按優先級分組列出了Pascal語言的運算符。

與大多數編程語言相反,Pascal語言中and和or運算符的優先級比

關係運算符高。因此,如果你的代碼爲a < b and c < d,編譯器

首先會編譯and運算符,由此導致編譯出錯。爲此你應該把每個

< 表達式用小括號括起來: (a < b) and (c < d)。 

同一種運算符用於不同數據類型時它的作用不同。例如,運算符 +

可以計算兩個數字的和、連接兩個字符串、求兩個集合的並集、甚至

給PChar 指針加一個偏移量。然而,你不能象在C語言中那樣將兩個

字符相加。

另一個特殊的運算符是 div。在Pascal 中,你能用 / 計算兩個數字

(實數或整數)的商,而且你總能得到一個實型結果。如果計算兩個

整數的商並想要一個整型結果,那麼就需要用 div 運算符。

表 2.2: Pascal語言中的運算符及其優先級

單目運算符 (最高優先級)
@取變量或函數的地址(返回一個指針)
not邏輯取反或按位取反
乘除及按位運算符
*相乘或集合交集
/浮點相除
div整數相除
mod取模 (整數相除的餘數)
as程序運行階段類型轉換 (RTTI運算符)
and邏輯或按位求和
shl按位左移
shr按位右移
加減運算符
+相加、集合並集、字符串連接或指針增加一個偏移量
-相減、集合差集或指針減少一個偏移量
or邏輯或按位或運算
xor邏輯或按位異或運算
關係及比較運算符(最低優先級)
=判斷是否相等
<>判斷是否不相等
<判斷是否小於
>判斷是否大於
<=判斷是否小於或等於,或是否是一個集合的子集
>=判斷是否大於或等於,或是否是一個集合的父集
in判斷是否是集合成員
is判斷對象是否類型兼容 (又一個RTTI運算符)

集合運算符

集合運算符包括並(+)、差(-)、交(*)、成員檢測(in),及一些關係運算符。要把一個元素添加到集合中,你可以採用集合並運算。下面是一個選擇字體的Delphi 例子:

Style := Style + [fsBold];
Style := Style + [fsBold, fsItalic] - [fsUnderline];

另一種方法是利用標準過程Include 和Exclude,它們效率更高(但不能用於控件的集合類型屬性,因爲只能操縱一個元素):

Include (Style, fsBold);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章