我學Delphi心得及筆記—-編寫Delphi代碼(第一講)

來源:互聯網
上載者:User

第一講內容:

1、注釋

Delphi注釋分為三種:

1.1: //this is my code.---  單行注釋。

1.2: (* this is my code *)-----這種方式在歐洲使用較廣 ,因為歐洲的鍵盤缺少大括弧。

1.3:{this is my code}---段落注釋

2、使用大寫字母Delphi語言的大小寫不區分)

Pascal 編譯器(不象其他語言的編譯器)不考慮字元的大小寫,因此標識符Myname、 MyName、 myname、 myName、 和MYNAME是完全相同的。總體上來說,這是Pascal的一大優點,因為在大小寫敏感的語言中,許多語法錯誤是由不正確的大寫引起的。:寫使用的一致性不是編譯器強制要求的,但是保持大寫使用的一致性是值得提倡的好習慣。一個常用的方法是將每個標識符的第一個字母大寫,標識符若由幾個片語合而成(中間不能插入空格),每個詞的第一個字母應寫:MyLongIdentifier,MyVeryLongAndAlmostStupidIdentifier

關於代碼編寫風格的最後一條建議是:盡量使用空白最佳化版面。這一條很容易做到,只需要在寫複合句時,以上一句為參照,下一句向右縮排兩個空格,複合句內嵌的複合句縮排四個空格,依此類推。例如:

if ... then
  statement;
if ... then
begin
  statement1;
  statement2;
end;
if ... then
begin
  if ... then
    statement1;
  statement2;
end;

3、關鍵字

關鍵字是Object 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 運算子 (布爾)

4、運算式和運算子
建立運算式沒有通用的方法,因為要取決於所用的運算子,Pascal包括有邏輯運算子、算術運算子、布林運算子、關係運算子和集合運算子等等。
運算式可用於確定賦給一個變數的值、計算函數或過程的參數、或者判斷一個條件,運算式也可以包含函數調用。運算式是對一個標識符的值而不是標識符本身進行運算。
運算子及其優先順序
所有程式設計語言中的運算式都是常量、變數、數值、運算子和函數值的合法組合。運算式可以傳遞給過程或函數的值參,但不能傳遞給過程或函數中的引用參數。
如果你以前寫過程式,那麼你已經知道運算式是什麼了。這裡我專門講一下Pascal 運算子的特殊部分:運算子的優先順序。表2.2中按優先順序分組列出了Pascal語言的運算子。
與大多數程式設計語言相反,Pascal語言中and和or運算子的優先順序比關係運算子高。因此,如果你的代碼為a < b and c < d,編譯器首先會編譯and運算子,由此導致編譯出錯。為此你應該把每個 < 運算式用小括弧括起來: (a < b) and (c < d)。   
同一種運算子用於不同資料類型時它的作用不同。例如,運算子 + 可以計算兩個數位和、串連兩個字串、求兩個集合的並集、甚至給PChar 指標加一個位移量。然而,你不能象在C語言中那樣將兩個字元相加。
另一個特殊的運算子是 div。在Pascal 中,你能用 / 計算兩個數字(實數或整數)的商,而且你總能得到一個實型結果。如果計算兩個整數的商並想要一個整型結果,那麼就需要用 div 運算子。
  
單目運算子 (最高優先順序)
@ 取變數或函數的地址(返回一個指標)
not 邏輯取反或按位取反
乘除及按位元運算符
* 相乘或集合交集
/ 浮點相除
div 整數相除
mod 模數 (整數相除的餘數)
as 程式運行階段類型轉換 (RTTI運算子)
and 邏輯或按位求和
shl 按位左移
shr 按位右移
加減運算子
+ 相加、集合并集、字串串連或指標增加一個位移量
- 相減、集合差集或指標減少一個位移量
or 邏輯或按位或運算
xor 邏輯或按位異或運算
關係及比較子(最低優先順序)
= 判斷是否相等
<> 判斷是否不相等
< 判斷是否小於
> 判斷是否大於
<= 判斷是否小於或等於,或是否是一個集合的子集
>= 判斷是否大於或等於,或是否是一個集合的父集
in 判斷是否是集合成員
is 判斷對象是否類型相容 (又一個RTTI運算子)
 

5、集合運算子

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

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

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

Include (Style, fsBold);

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.