1. 程式人生 > 其它 >Delphi第二天學習筆記

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等)可以做為函式或過程的值傳遞引數,但不可以作為引用引數傳遞進來。