Is 是用來判斷實例是否為指定的類別
Components[iCount] is TCheckBox -> 如果Components[iCount]是的類別是TCheckBox
或是TCheckBox的子類, 則會傳回True
as 是傳換實例的類, 有點類似型態轉型,
Components[iCount] as TCheckBox, 意指將Components[iCount]類型轉換為TCheckBox
因為Components本身宣告的類型為TComponent, 但它存放的TComponent的子類實例,
如果直接使用Components[iCount]則編釋只能認得TComponent所擁有的屬性;
即使存放
放的實例為TCheckBox, 也無法使用TCheckBox所擁有的屬性;
所以以下語法:
//判斷Components[iCount]是否為TCheckBox類型
if (Components[iCount] is TCheckBox) then
//將Components[iCount]轉換為TCheckBox類型, 並讀取TCheckBox才擁有的屬性Checked
if (Components[iCount] as TCheckBox).Checked then
ShowMessage('CheckBox is Checked);