abort 函數 引起放棄的意外處理
addexitproc 函數 將一過程添加到運行時庫的結束過程表中
addr 函數 返回指定對象的地址
adjustlinebreaks 函數 將給定字符串的行分隔符調整為cr/lf 序列
allocmem 函數 在堆棧上分配給定大小的塊
ansicomparestr 函數 比較字符串(區分大小寫)
ansicomparetext 函數 比較字符串(不區分大小寫)
ansilowercase 函數 將字符轉換為小寫
ansiuppercase 函數 將字符轉換為大寫
append 函數 以附加的方式打開已有的文件
assignfile 函數 給文件變量賦一外部文件名
assigned 函數 測試函數或過程變量是否為空
beginthread 函數 以適當的方式建立用於內存管理的線程
blockread 函數 讀一個或多個記錄到變量中
blockwrite 函數 從變量中寫一個或多個記錄
changefileext 函數 改變文件的後綴
chdir 函數 改變當前目錄
chr 函數 返回指定序數的字符
closefile 命令 關閉打開的文件
comparestr 函數 比較字符串(區分大小寫)
copy 函數 返回一字符串的子串
datetimetofiledate 函數 將delphi 的日期格式轉換為dos 的日期格式
datetimetostr 函數 將日期時間格式轉換為字符串
datetimetostring 函數 將日期時間格式轉換為字符串
datetostr 函數 將日期格式轉換為字符串
dayofweek 函數 返回星期的數值
dec 函數 遞減變量值
decodedate 函數 將日期格式分解為年月日
decodetime 函數 將時間格式分解為時、分、秒、毫秒
delete 函數 從字符串中刪除子串
deletefile 命令 刪除文件
diskfree 函數 返回剩余磁盤空間的大小
disksize 函數 返回指定磁盤的容量
dispose 函數 釋放動態變量所占的空間
disposestr 函數 釋放字符串在堆棧中的內存空間
ditherbackground 命令 使背景色的色彩加重或減少50%
dragcursor 屬性 當鼠標按下時光標的形狀
dragmode 屬性 按動的作用方式
dropdowncount 屬性 容許的顯示數據項的數目
editmask 屬性 編輯模式
encodedate 函數 將年月日合成為日期格式
encodetime 函數 將時、分、秒、毫秒合成為時間格式
endmargin 屬性 末尾邊緣
eoln 函數 返回文本文件的行結束狀態
erase 命令 刪除外部文件
exceptaddr 函數 返回引起當前意外的地址
exclude 函數 從集合中刪除一些元素
exceptobject 函數 返回當前意外的索引
extendedselect 屬性 是否允許存在選擇模式,true 時,multiselect 才有意義
fileage 函數 返回文件已存在的時間
fileclose 命令 關閉指定的文件
filecreate 命令 用指定的文件名建立新文件
filedatetodatetime 函數 將dos 的日期格式轉換為delphi 的日期格式
filegatattr 函數 返回文件的屬性
filegetdate 函數 返回文件的dos 日期時間標記
fileopen 命令 用指定的存取模式打開指定的文件
filepos 函數 返回文件的當前指針位置
fileread 命令 從指定的文件讀取
filesearch 命令 在目錄中搜索指定的文件
fileseek 函數 改變文件的指針
filesetattr 函數 設置文件屬性
filesetdate 函數 設置文件的dos 日期時間標記
filesize 函數 返回當前文件的大小
filewrite 函數 對指定的文件做寫操作
fillchar 函數 用指定的值填充連續字節的數
findclose 命令 終止findfirst/findnext 序列
findfirst 命令 對指定的文件名及屬性搜索目錄
findnext 命令 返回與文件名及屬性匹配的下一入口
floattodecimal 函數 將浮點數轉換為十進制數
floattostrf 函數 將浮點數轉換為字符串
floattostr 函數 將浮點數轉換為字符串
floattotext 函數 將給定的浮點數轉換為十進制數
floattotextfmt 函數 將給定的浮點數轉換為十進制數
flush 函數 將緩沖區的內容刷新到輸出的文本文件中
fmtloadstr 函數 從程序的資源字符串表中裝載字符串
fmtstr 函數 格式化一系列的參數,其結果以參數result 返回
format 函數 格式化一系列的參數並返回pascal 字符串
formatbuf 函數 格式化一系列的參數
formatdatetime 函數 用指定的格式來格式化日期和時間
formatfloat 函數 指定浮點數格式
frac 函數 返回參數的小數部分
freemem 函數 按給定大小釋放動態變量所占的空間
getdir 函數 返回指定驅動器的當前目錄
getheapstatus 函數 返回內存管理器的當前狀態
getmem 函數 建立一指定大小的動態變量,並將指針指向該處
getmemorymanager 函數 返回內存管理器的入口點
glyph 函數 按鈕上的圖象
halt 命令 停止程序的執行並返回到操作系統
hi 函數 返回參數的高地址位
high 函數 返回參數的上限值
int 函數 返回參數的整數部分
include 函數 添加元素到集合中
insert 函數 在字符串中插入子串
inttohex 函數 將整型數轉換為十六進制數
inttostr 函數 將整型數轉換為字符串
ioresult 函數 返回最新的i/o 操作完成狀態
isvalidident 函數 測試字符串是否為有效的標識符
largechange 屬性 最大改變值
length 函數 返回字符串的動態長度
lines 屬性 缺省顯示內容
ln 函數 自然對數函數
lo 函數 返回參數的低地址位
loadstr 函數 從應用程序的可執行文件中裝載字符資源
lowercase 函數 將給定的字符串變為小寫
low 函數 返回參數的下限值
mkdir 命令 建立一子目錄
move 函數 從源到目標復制字節
newstr 函數 在堆棧上分配新的字符串
ondeactivate 事件 用戶切換到另一應用程序觸發
ondragover 事件 有其他控件從他上面移過觸發
ord 函數 返回序數類的序數
outofmemoryerror 命令 引起outofmemory 意外
pageindex 屬性 頁索引
paramcount 函數 返回在命令行上傳遞給程序的參數數量
paramstr 函數 返回指定的命令行參數
pictureclosed 屬性 設置closed 位圖
pictureleaf 屬性 設置leaf 位圖
pictureminus 屬性 設置minus 位圖
pictureopen 屬性 設置open 位圖
pictureplus 屬性 設置plus 位圖
pos 函數 在字符串中搜索子串
pred 函數 返回先前的參數
random 函數 返回一隨機函數
randomize 函數 用一隨機數初始化內置的隨機數生成器
read 函數 對有格式的文件,讀一文件組件到變量中;
對文本文件,讀一個或多個值到一個或多個變量中
readln 函數 執行read 過程,然後跳到文件下一行
readonly 屬性 只讀屬性
reallocmem 函數 分配一動態變量
rename 函數 重命名外部文件
renamefile 函數 對文件重命名
reset 函數 打開已有的文件
rewrite 函數 建立並打開一新的文件
rmdir 函數 刪除空的子目錄
round 函數 將實數值捨入為整型值
runerror 函數 停止程序的執行
seek 函數 將文件的當前指針移動到指定的組件上
seekeof 函數 返回文件的文件結束狀態
seekeoln 函數 返回文件的行結束狀態
setmemorymanager 函數 設置內存管理器的入口點
settextbuf 函數 給文本文件指定i/o 緩沖區
showexception 函數 顯示意外消息與地址
sizeof 函數 返回參數所占的字節數
smallchange 屬性 最小改變值
str 函數 將數值轉換為字符串
stralloc 函數 給以null 結束的字符串分配最大長度-1 的緩沖區
strbufsize 函數 返回存儲在由stralloc 分配的字符緩沖區的最大字符數
strcomp 函數 比較兩個字符串
strcopy 函數 將一個字符串復制到另一個字符串中
strdispose 函數 釋放堆棧上的字符串
strecopy 函數 將一字符串復制到另一個字符串並返回結果字符串尾部的指針
strend 函數 返回指向字符串尾部的指針
stretch 屬性 自動適應控件的大小
strfmt 函數 格式化一系列的參數
stricomp 函數 比較兩個字符串(不區分大小寫)
stringtowidechar 函數 將ansi 字符串轉換為unicode 字符串
strlcat 函數 將一字符串中的字符附加到另一字符串尾並返回合並的字符串
strlcomp 函數 以最大長度比較兩個字符串
strlcopy 函數 將一個字符串中的字符復制到另一個字符串中
strlen 函數 返回字符串中的字符數
strlfmt 函數 格式化一系列的參數,其結果中包含有指向目標緩沖區的指針
strlicomp 函數 以最大長度比較兩個字符串(不區分大小寫)
strlower 函數 將字符串中的字符轉換為小寫
strmove 函數 將一個字符串中的字符復制到另一個字符串中
strnew 函數 在堆棧上分配一個字符串
strpas 函數 將以null 結束的字符串轉換為pascal 類的字符串
strpcopy 函數 將pascal 類的字符串復制為以null 結束的字符串
strplcopy 函數 從pascal 類的最大長度字符串復制為以null 結束的字符串
strpos 函數 返回一個字符串在另一個字符串中首次出現指針
strrscan 函數 返回字符串中最後出現字符的指針
strscan 函數 返回字符串中出現首字符的指針
strtodate 函數 將字符串轉換為日期格式
strtodatetime 函數 將字符串轉換為日期/時間格式
strtofloat 函數 將給定的字符串轉換為浮點數
strtoint 函數 將字符串轉換為整型
strtointdef 函數 將字符串轉換為整型或默認值
strtotime 函數 將字符串轉換為時間格式
strupper 函數 將字符串中的字符轉換為大寫
suce 函數 返回後繼的參數
swap 函數 交換參數的高低地址位
texttofloat 函數 將字符串(以null 結束的格式)轉換為浮點數
timetostr 函數 將時間格式轉換為字符串
trunc 函數 將實型值截取為整型值
truncate 函數 截去當前文件位置後的內容
unselectedcolor 屬性 未選中顏色
upcase 函數 將字符轉換為大寫
uppercase 函數 將給定的字符串變為大寫
val 函數 將字符串轉換為整型值
vararraycreate 函數 以給定的界限和維數建立變體數組
vararraydimcount 函數 返回給定變體的維數
vararrayhighbound 函數 返回給定變體數組維數的上界
vararraylock 函數 鎖定給定的變體數組
vararraylowbound 函數 返回給定變體數組維數的下界
vararrayof 函數 返回指定變體的數組元素
vararrayredim 函數 通過改變上限來調整變體的大小
vararrayunlock 函數 解鎖指定的變體數組
varastype 函數 將變體轉換為指定的類型
varcase 函數 將變體轉換為指定的類型並保存他
varclear 函數 清除指定的變體
varcopy 函數 將指定的變體復制為指定的變體
varformdatetime 函數 返回包含日期時間的變體
varisarray 函數 測試變體是否為數組
varisempty 函數 測試變體是否為unassigned
varisnull 函數 測試變體是否為null
vartodatetime 函數 將給定的變體轉換為日期時間
vartype 函數 將變體轉換為指定的類型並保存他
wantreturns 屬性 為true 時,按回車鍵產生一個回車符;
為false 時,按下ctrl+enter 才產生回車符
write 命令 對有格式的文件,寫一變量到文件組件中;
對文本文件,寫一個或多個值到文件中
writeln 命令 執行write 過程,然後輸出一行結束標志
widecharlentostring 函數 將ansi 字符串轉換為unicode 字符串
widecharlentostrwar 函數 將unicode 字符串轉換為ansi 字符串變量
widechartostring 函數 將unicode 字符串轉換為ansi 字符串
widechartostrvar 函數 將unicode 字符串轉換為ansi 字符串變量
窗體的屬性
1.Appearance屬性
功能:設置窗體中控件是否以三維立體方式顯示。
取值:1) 1-3D 默認設置,以三維立體方式窗體上的控件。
2) 0-Flat 以二維方式顯示窗體上的控件。
該屬性不能通過代碼在運行時設置,必須通過屬性窗口在設計時設置。
2.AutoRedraw屬性
功能:設置窗體中顯示的信息是否重畫。當返回被其他窗體遮住的窗體時,如果此屬性設置為True,則自動刷新或者重畫窗體中的所有信息,否則不重畫。
3.BackColor屬性
功能:設置窗體的背景顏色。
4.BorderStyle屬性
功能:設置窗體的邊界樣式。
取值:1) 0-None 窗體不僅沒有邊界,而且沒有標題欄
2) 1-Fixed Single 邊界是固定的單線,運行時不能改變窗體大小
3) 2-Sizable 默認設置,窗體的大小可以在運行時改變
4) 3-Fixed Dialog 固定的對話框,大小不能改變
5) 4-Fixed ToolWindow 固定的工具箱窗口,大小不能改變
6) 5-Sizeable ToolWindow 大小可變的工具窗口
該屬性的設置會影響其他屬性的設置值。如,其設置為0、3、4或5時,MinButton、MaxButton和ShowInTaskbar屬性將自動設置為False,表示這類窗體沒有“最小化”“最大化”按鈕。
5.Cation屬性
功能:設置窗體標題欄中顯示的文本內容。
6.ClipControls屬性
功能:當Paint事件發生時,確定窗體中的內容是全部重畫還是只重畫最新暴露的區域。
取值:True 默認設置,重畫整個窗體內容
False 重畫最新暴露的區域
7.ControlBox屬性
功能:設置窗體左上角是否顯示控制菜單按鈕。
取值:True 默認設置,窗體中含有窗體圖標和控制按鈕
Flase 窗體中不含窗體圖標和控制按鈕
8.DrawMode屬性
功能:用於設置繪圖模式,以便控制圖形的顯示效果。默認是用窗體的前景色來畫線。
9.DrawStyle屬性
功能:用於設置線條的線型,默認為實線。
10.DrawWidth屬性
功能:用於設置線條的寬度,默認為1。
11.Enable屬性
功能:設置窗體是否對鼠標或者鍵盤事件作出響應。
取值:True 默認設置,對事件作出響應
False 對事件不產生響應。這時只能在窗體中顯示文本和圖形
12.FillColor屬性
功能:用於設置圖形的填充顏色,默認是黑色。
13.FillStyle屬性
功能:用於設置圖形的填充方式,默認是透明的(Transparent)。
14.Font屬性
功能:設置窗體中文本顯示時使用的字體、包括字體的名稱和大小,以及是否為粗體、斜體或者粗斜體,是否帶有刪除線和下劃線。
15.FontTransparent屬性
功能:當窗體上要顯示文本的位置已有圖形或文本存在時,可以用FontTransparent屬性來確定如何處理原來的圖形或文本。
取值:True 默認設置,將要顯示的內容與原來的圖形或者文本重疊顯示
False 將要顯示的內容覆蓋原來的圖形或者文本
16.ForeColor屬性
功能:設置窗體的前景顏色。設置方法類似於BackColor屬性。
17.Height和Width屬性
功能:設置窗體的初始高度和寬度。
18.Icon屬性
功能:設置窗體的圖標。Icon屬性的設置值通常為圖標文件名(擴展名為*.ico)。
19.KeyPreview屬性
功能:如果窗體中的某個控件正使用時發生了鍵盤事件,則可以用KeyPreview屬性來確定窗體是否接收鍵盤事件。
取值:True 窗體先接收鍵盤事件,然後再由當前正使用的控件來處理
False 默認設置,當前正使用的控件接收鍵盤事件,窗體不處理該事件
20.Left和Top屬性
功能:設置窗體的左上角位置。
21.MaxButton屬性
功能:設置窗體中是否含有最大化按鈕。
取值:True 默認設置,有最大化按鈕
False 窗體中不含有最大化按鈕
22.MDIChild屬性
功能:設置當前窗體是否是MDI窗體的子窗體。
取值:True 當前窗體為MDI窗體的子窗體
False 默認設置,不是MDI窗體的子窗體
23.MinButton屬性
功能:設置窗體中是否含有最小化按鈕。
取值:True 默認設置,窗體中含有最小化按鈕
False 窗體中不含有最小化按鈕
如果BorderStyle屬性設置為0、3、4和5,則此屬性無效。
24.MouseIcon屬性
功能:指定一個自定義的圖標或者光標作為鼠標指針的形狀。當MousePointer屬性設置為99時,就要使用MouseIcon屬性來確定鼠標指針的形狀。
25.MousePointer屬性
功能:設置鼠標指針的形狀。如果將其設為99,則可以使用MouseIcon屬性來指定自定義的鼠標指針形狀。
26.Moveable屬性
功能:設置窗體是否可移動。
取值:True 默認設置。窗體運行時能夠移動
False 窗體運行時不可移動
27.Name屬性
功能:設置當前窗體的名稱。代碼中可以通過Name屬性設置的名稱來引用相應的窗體。
28.Picture屬性
功能:設置是否在窗體內顯示一個圖形。默認設置為None,表示窗體中不顯示圖形。如果在代碼中設置,要使用LoadPicture函數。
29.RightToLeft屬性
功能:設置文本顯示方向和顯示外觀。
30.ScaleHeight和ScaleWidth屬性
功能:設置窗體繪圖區域的高度和寬度。改變屬性的設置值後,將重新定義新的度量單位。
31.ScaleLeft和ScaleTop屬性
功能:設置窗體繪圖區域的左上角位置。默認為(0,0),表示窗體左上角即為原點。
32.ScaleMode屬性
功能:設置窗體的度量單位,默認為點素(Twip)。
33.ShowInTaskbar屬性
功能:設置窗體最小化時是否在任務欄上顯示窗體圖標。
34.StartUpPosition屬性
功能:設置窗體首次顯示時的位置。
35.Visible屬性
功能:設置窗體是否可見。
取值:True 默認設置,窗體可見
False 窗體不可見
36.WindowState屬性
功能:設置程序運行時窗體的顯示狀態。
取值:1) 0-Normal 默認設置,以正常方式顯示
2) 1-Minimized 以最小化方式顯示
3) 2-Maximized 以最大化方式(占據整個屏幕)顯示
關鍵字
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 運算符 (布爾)
優先法則
單目運算符 (最高優先級)
@ 取變量或函數的地址(返回一個指針)
not 邏輯取反或按位取反
乘除及按位運算符
* 相乘或集合交集
/ 浮點相除
div 整數相除
mod 取模 (整數相除的余數)
as 程序運行階段類型轉換 (RTTI運算符)
and 邏輯或按位求和
shl 按位左移
shr 按位右移
加減運算符
+ 相加、集合並集、字符串連接或指針增加一個偏移量
- 相減、集合差集或指針減少一個偏移量
or 邏輯或按位或運算
xor 邏輯或按位異或運算
關系及比較運算符(最低優先級)
= 判斷是否相等
<> 判斷是否不相等
< 判斷是否小於
> 判斷是否大於
<= 判斷是否小於或等於,或是否是一個集合的子集
>= 判斷是否大於或等於,或是否是一個集合的父集
in 判斷是否是集合成員
is 判斷對象是否類型兼容 (又一個RTTI運算符)
Boolean (ByteBool WordBool LongBool)
Char
Integer
ShortInt -128~127
Byte 0~255
SmallInt -32768~32767
Word 0~65535
LongInt LongWord
Int64
Interger Cardinal
AnsiChar
WidChar
#=Chr(),把數字轉化為字符,Ord為相反,把字符轉化為數字
#9 Tab鍵
#10 換行
#13 回車
類型轉換
Chr 將一個有序數據轉換為一個ANSI字符
Ord 將一個有序類型值轉換為它的序號
Round 轉換一個實型值為四捨五入後的整型值
Trunc 轉換一個實型值為小數截斷後的整型值
Int 返回浮點數的整數部分
IntToStr 將數值轉換為字符串
IntToHex 將數值轉換為十六進制數字符串
StrToInt 將字符串轉換為一個整型數,如字符串不是一個合法的整型將引發異常
StrToIntDef 將字符串轉換為一個整數,如字符串不合法返回一個缺省值
Val 將字符串轉換為一個數字(傳統Turbo Pascal例程用於向後兼容)
Str 將數字轉換為格式化字符串(傳統Turbo Pascal例程用於向後兼容)
StrPas 將零終止字符串轉換為Pascal類型字符串,在32位Delphi中這種類型轉換是自動進行的
StrPCopy 拷貝一個Pascal類型字符串到一個零終止字符串, 在32位Delphi中這種類型轉換是自動進行的
StrPLCopy 拷貝Pascal類型字符串的一部分到一個零終止字符串
FloatToDecimal 將一個浮點數轉換為包含指數、數字及符號的十進制浮點記錄類型
FloatToStr 將浮點值轉換為缺省格式的字符串
FloatToStrF 將浮點值轉換為特定格式的字符串
FloatToText 使用特定格式,將一個浮點值拷貝到一個字符串緩沖區
FloatToTextFmt 同上面例程,使用特定格式,將一個浮點值拷貝到一個字符串緩沖區
StrToFloat 將一個Pascal字符串轉換為浮點數
TextToFloat 將一個零終止字符串轉換為浮點數
Dec 將例程中的參數值遞減1或一個特定的值,其中特定值可在第二個可選參數中定義
Inc 將例程中的參數值增加1或一個特定的值
Odd 如果參數為奇數返回真
Pred 根據參數在其數據類型定義中的序列,返回參數值的前驅值
Succ 返回參數值的後繼值
Ord 返回參數值在其數據類型值集合中的序號
Low 返回參數對應的有序數據類型的最小取值
High 返回參數對應的有序數據類型的最大取值
實數:
Single
Double
Extended
Real {$REALCOMPATIBILITY ON}據說不標准,要兼容舊的格式使用這個宏
Comp
Currency
TDateTime = type Double
為了後續使用或直接用於變量,需要給自定義類型命名。如果自定義一個命名的類型,你必須將代碼放在特定的type區,如下所示:
最多的如定義類等。
type
Uppercase = 'A'..'Z';
Temperatures = array [1..24] of Integer;
Date = record
Month: Byte;
Day: Byte;
Year: Integer;
end;
Colors = (Red, Yellow, Green, Cyan, Blue, Violet);
Letters = set of Char;
end;
子界類型
a...b
a~b為有序類型
枚舉類型
type
Colors = (Red, Yellow, Green);//園括弧括起來的,在屬性列表中最多出現。
end;
只能有一個值
CPP = enum
集合類型
type Letters = set of Char;
var Letters1,Letters2etters;
begin
Letters1 := ['A'.'B'.'C'];
Letters2 := ['K'];
end;
是什麼什麼的集合,可以有多個屬性。
CPP = 多字段與或
Font.style := [fsBold, fsItalic]; // two styles
Font.style :=Oldstyle + [fsBold, fsItalic];
數組類型
type
MonthTemps = array [1..24, 1..31] of Integer;
YearTemps = array [Jan..Dec] of Integer;
記錄類型
type
Date = record
Year: Integer;
Month: Byte;
Day: Byte;
end;
類似 structure
指針
type
PointerToInt = ^Integer;
var
P:^Integerl
X:Integer;
begin
P := @X; p = &x;
X :=10; x = 10;
P^ :=20; *p = 20;
end;
除了表示已分配內存的地址外,指針還能通過New 例程在堆中動態分配內存,不過當你不需要這個指針時,你也必須調用Dispose 例程釋放你動態分配的內存。
P:=nil;
Pointer 類型,如void *;
實際上,Delphi 中必須使用指針的情況很少,這是Delphi開發環境一個誘人的優點。
文件類型
type
IntFile = file of Integer;
能打開一個與這個結構相應的物理文件、向文件中寫入整數、或者從文件中讀取當前的值
簡單語句:
單行:X:= Y+Z;
調用一個過程
Randomize;
復合語句begin end;
賦值 :=
=表示關系運算符,用於判斷是否相等用 c: ==
條件
if 用and、 or 、 not等布爾操作符聯接起來的條件 then
statement;
else
statement;
end;
Case語句
case Number of
1: Text:='One';
2: Text:='Two';
else //default;
Text:='Unknow';
end;
循環 循環條件為順序數
for I:=1 to 10 do
statement;
for I := 10 downto 1 do 遞減
statement;
while conditions do
statement;
repeat
statement;
until conditions;
With語句
begin
with BirthDay do
begin
Year:=1999;
Month :=2;
Day :=14;
end;
end;
減少BirthDay.xxx 的代碼工作量,但現在的自動完成比他效率高
可以with多個,同樣屬性的取最後一個的,容易出錯。
函數和過程
procedure Hello;
begin
ShowMessage ('Hello world!');
end;
調用:Hello;
function Double (value: Integer) : Integer;
begin
Double := value * 2; //函數名做返回值
end;
function Double2 (value: Integer) : Integer;
begin
Result := value * 2; //Result作返回值
end;
引用參數
同C++中的(&xx)
使用var關鍵字表示
procedure Produ(var value:Integer);
既做傳遞參數,又把值返回給調用程序。
procedure Produ(out value:Interger);
用作返回。
常量參數
使用const
開放數組參數
function Sum (const A: array of Integer): Integer;
var
I: Integer;
begin
Result := 0;
for I := Low(A) to High(A) do
Result := Result + A[I];
end;
可以傳遞大小不定的數組
類型變化的開放數組參數
可以接收多種類型的數組參數
function SumAll (const Args: array of const): Extended;
調用協定
fastcall 只要有可能,傳遞到CPU寄存器多達3個,操作更快
delphi3+ 缺省標記
win32 API是stdcall,win16 API是原始的Pascal調用和cdecl調用混合體
方法:
是一種特殊的函數或過程
他與類這一數據類型相對應,每個事件都定義一個方法,通常是過程。
forward 申明
欲聲明一個過程或函數,而且只給出它的名字和參數,不列出其實現代碼,需要在句尾加forward 關鍵字:
procedure Hello; forward;
可用來寫遞歸調用
當你在一個單元(關於單元的更多內容見下一章)的interface 部分聲明一個過程或一個函數時,它被認為是一個forward聲明,即使沒有forward關鍵字也一樣。
過程類型
type
IntProc = procedure (var Num: Integer);
IP: IntProc;
begin
IP := otherProcedure;
函數重載 overload關鍵字
function Min (A,B: Integer): Integer; overload;
function Min (A,B: Int64): Int64; overload;
function Min (A,B: Single): Single; overload;
function Min (A,B: Double): Double; overload;
function Min (A,B: Extended): Extended; overload;
確省參數
procedure MessBox (Msg: string;
Caption: string = 'Warning';
Flags: LongInt = mb_OK or mb_IconHand);
字符串
ShortString
AnsiString
WideSting
如果只簡單地用String定義字符串,那麼該字符串可能是短字符串也可能是ANSI長字符串,這取決於$H 編譯指令的值,$H+(確省)代表長字符串(ANSIString 類型)。長字符串是Delphi 庫中控件使用的字符串。
SetLength (String1, 200);設置長度分配內存
類型轉換,PChar(String)
SetWindowText (Handle, PChar (Label1.Caption));
GetWindowText (Handle, PChar (S1), Length (S1));
格式化字符串
format ('First %d, Second %d', [n1, n2]);//集合
d(decimal) 將整型值轉換為十進制數字字符串
x (hexadecimal) 將整型值轉換為十六進制數字字符串
p (pointer) 將指針值轉換為十六進制數字字符串
s (string) 拷貝字符串、字符、或字符指針值到一個輸出字符串
e (exponential) 將浮點值轉換為指數表示的字符串
f (floating point) 將浮點值轉換為浮點表示的字符串
g (general) 使用浮點或指數將浮點值轉換為最短的十進制字符串
n (number) 將浮點值轉換為帶千位分隔符的浮點值
m (money) 將浮點值轉換為現金數量表示的字符串,轉換結果取決於地域設置,詳見Delphi幫助文件的Currency and date/time formatting variables主題
內存
動態數組
Array1: array of Integer;
SetLength(Array1, 100);
下標從0開始
普通數組下標可以隨便寫
動態數組不行,Length,Hight,Low函數了解動態數組狀況
for I := Low (Array1) to High (Array1) do
Array1 [I] := I;
windows相關
type
THandle = LongWord;
外部聲明
// forward declaration
function LineTo (DC: HDC; X, Y: Integer): BOOL; stdcall;
// external declaration (instead of actual code)取代真實代碼
function LineTo; external 'gdi32.dll' name 'LineTo';
這段聲明表示函數LineTo 的代碼同名保存在GDI32.DLL 動態鏈接庫中(最重要的Windows 系統庫之一)。實際應用時,外部聲明中的函數名與DLL中的函數名可以不同。
與WindowsAPI對應的聲明:
BOOL EnumWindows(
WNDENUMPROC lpEnumFunc,LPARAM lParam
);
=》
function EnumWindows (lpEnumFunc: TFNWndEnumProc,lParam: LPARAM): BOOL; stdcall;
回調函數
BOOL CALLBACK EnumWindowsProc (
HWND hwnd, // handle of parent window
LPARAM lParam // application-defined value
);
=>
type
EnumWindowsProc = function (Hwnd: THandle, Param: Pointer): Boolean; stdcall;
直接使用方法
Variant變量沒有類型
運算效率低
單元Unit
unit unitName;
interface
// other units we need to refer to
uses
A, B, C;
// exported type definition
type
newType = TypeDefinition;
// exported constants
const
Zero = 0;
// global variables
var
Total: Integer;
// list of exported functions and procedures
procedure MyProc;
implementation
uses
D, E;
// hidden global variable
var
PartialTotal: Integer;
// all the exported functions must be coded
procedure MyProc;
begin
// ... code of procedure MyProc
end;
initialization
// optional initialization part
finalization
// optional clean-up code
end.
單元用作命名空間
Delphi 應用程序源代碼文件可分成兩類,它們是一個或多個單元文件及一個程序文件,單元文件可以看成是次一級的文件,它被應用程序的主體——程序文件——引用。
program Project1;
uses
forms,
Unit1 in Unit1.PAS?{form1Dateform};
begin
Application.Initialize;
Application.Createform (Tform1, form1);
Application.Run;
end.
面向對象
type
TData = class
A:Integer;
B:Char;
function F(V:Integer):Boolean;
var C:Integer;
begin
A :=1;
C :=A;
end;
procedure P(V:Char);
begin
B:='b';
end;
end.
public
private
protected
self變量
publish
繼承
type
MyClass = class(BaseClass);
多繼承
type
MyClass = class();
構造器
constructor 代替procedure;自動分配內存
對象方法重載 同函數
多態
type
BaseClass = class
public
function F:String;virtual;
end;
type
MyClass = class(BaseClass)
public
function F:String;override;
end;
類型兼容性
向上兼容
之類兼容父類
類型信息
if MyClass is BaseClass then
繼承
inherited; 使用父輩被繼承的方法
類引用
MyClassClass = class of MyClass;
Create()
Free()
type裡面類聲明
implementation
實現
initialization //初始化段
Init();
finalization //反初始化段
UnInit();
constructor Create();
destructor Destroy();
procedure fly(); virtual; abstract;抽象
接口 interface
type
Icanfly = interface
['{10000000-0000-0000-0000-0000000000}']
function Fly:String;
end;
type
TAirplane = class(TomerfaceObject,IcanFly)
function Fly:String virtual;
end;
Flyer1 :=TAirplance.Create as Icanfly;
QueryInterface
異常 錯誤處理
raise Exceptoion.Create('a error');
try
A();
except
...
finally
...
end;
繼承異常類 p54
VCL
TObject
TPresistent
TComponent
TControl可視化控件
Windowsed Controls 基於window的控件(TWinControl)
Nonwindowsed Controls( TGraphicsControl)
Nonvisual Components非可視控件
可視化組件
Window-based controls
有GDI句柄,Windows管理,擁有Windows對象的屬性
Graphical controls
無GDI句柄,自行繪圖管理,如大量的Laber(比較Static控件) speedbutton,節省GDI資源,但響應事件麻煩。
novisiual compoenets 一些管理組件
可融入編輯環境
published private/public
procedure p:string;
property month:Integer
read FMonth write SetMonth;
讀寫為變量或者過程。
read GetMonth write SetMonth;
function GetMonth:Integer;讀
procedure SetMonth(const value:Integer);寫
只讀屬性的話就不帶read 或 write
對象拷貝
Assigned()
事件
private
FonClick : TNotifyEvent;
……
published:
property onClick : TNotifyEvent Read FonClick Write FonClick;