TForm1、TForm2 繼承自 TForm → Form2 := Form1 合法TDataForm 繼承 TForm,AForm: TForm; DataForm: TDataForm → AForm := DataForm 合法(後代指派給祖先變數)procedure TForm1.Button1Click(Sender: TObject);
TObject 為 VCL 頂層祖先,所有 Delphi 物件皆其後代Sender 實際接收觸發事件的元件實例is 運算子 檢查實際型別:
if Sender is TButton then ...
// 檢查拖曳來源是否為 Label
procedure TForm1.Memo1DragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean);
begin
Accept := Source is TLabel; // 僅允許 Label 拖曳
end;
// 拖放時將 Memo 字型設為來源 Label 字型
procedure TForm1.Memo1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
Memo1.Font := (Source as TLabel).Font; // as 轉型存取 Label 專屬 Font 屬性
end;
is:布林檢查,安全判斷型別as:強制轉型,失敗拋出例外,用於確定型別後存取子類別專屬成員type
TEmployee = class(TObject)
Name: string[25];
Title: string[25];
HourlyPayRate: Double;
function CalculatePayAmount: Double;
end;
// 單元介面區宣告
var
Employee: TEmployee;
Create 配置記憶體產生實例Create 繼承自 TObject,TEmployee 可直接呼叫Employee := TEmployee.Create; → 實例指派給變數Destroy、Free 兩方法皆繼承自 TObjectFree:更安全、產生更高效率程式碼Employee.Free;Employee := TEmployee.Create;
try
{ 使用 Employee 物件的程式碼 }
finally
Employee.Free; // 即使發生例外也保證釋放
end;
掌握物件指派相容性、is/as 型別檢查轉型、非視覺物件 Create/Free 生命週期與 try...finally 保護模式,是編寫健壯 Delphi 程式的核心功力。