Delphi第二天學習筆記
string型別可以看成一個Char陣列,但是這個陣列的下標是從1開始的。
動態陣列的下標預設是從0開始的,而自定義陣列的下標是使用者自定義的。
如:
var arr : array of Integer; -- 動態陣列 arr1 : array[4..100] of Integer; --自定義陣列(下標也可能是字元等其它有序型別) begin SetLength(arr, 10); ShowMessage(IntToStr(Low(arr))); --結果為0 ShowMessage(IntToStr(Low(arr1))); --結果為4 end;
const宣告引數值不可改變
var宣告的引數,傳進來的不是該引數的值,而是該引數的引用,故該引數值改變了就是原變數的值改變了
Length(陣列名):求陣列中的元素個數
raise Exception.Create('Error Message'):丟擲錯誤,並顯示錯誤資訊
Low(arr):求陣列下標的最小值;High(arr):求陣列下標的最大值
Inc(P):令P自增加1, P要是有序資料型別;Dec(P):自減,類似Inc
Delete(s, startIndex, count):從s的第startIndex個字元開始,刪除count個字元
Nil:空指標。
A Div B:A / B,取整
A Mod B:A % B,求餘
Not:單目運算,邏輯或按位取反
xor:邏輯異或,按位異或:相同為0,不同為1
And:邏輯與,按位與:全部為1才為1,否則為0
or:邏輯或,按位或:只要有一個1就為1,否則為0
多條件要用()包裹各個條件
With語句是一種簡寫方式,見下例:
With label1, edit1 Do --不推薦在with中使用多個控制元件,容易出現歧義
begin
Caption := 'label'; --edit1沒有caption屬性,故是對label1進行的賦值
font.color := clRed; --就近原則,edit1和lable1都有font屬性,因為edit最後定義,離這句程式碼最近,所以是對edit1的賦值
end
if ... then ... else ...; 算一行程式碼,故在else前不許加';'
Case 表示式 Of --表示式的值必須是有序資料型別 值1: ....; --用begin end包裹多句程式碼 值2:....; 值3..值4:...; --在值3到4的範圍內觸發 end;
delphi中的函式和過程只有返回值不同(函式有返回值,過程沒有返回值),其它都相同
delphi中,不建議在公共函式或過程中引用某個物件的子元件。
--宣告屬於某個物件(設為Object)的函式或方法
Procedure Object.ProcName();
delphi中寫完函式或過程後,游標點選到程式碼體內,按下 Ctrl + Shift + C,會自動生成該函式和過程的宣告。
函式中預設有一個變數Result,它用於返回函式的返回值。
不推薦用函式名來返回結果
Delphi中預設是值傳遞,引用傳遞要用var宣告。
值傳遞和引數傳遞:值傳遞指只將引數的值傳進來,不改變原引數的值;引用傳遞是將該引數的引用傳遞進來,會改變原引數的值。
表示式(如常量表達式、a-6等)可以做為函式或過程的值傳遞引數,但不可以作為引用引數傳遞進來。