Delphi 2009 TButtonedEdit 控件實例詳解(二):功能實作代碼
單元代碼實作 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes
Delphi 2009 TButtonedEdit 控件實例詳解(三):窗體設計文件與圖片資源
DFM 窗體定義 object Form1: TForm1 Left = 288 Top = 242 Caption = Form1 Clien
Delphi 2009 TLinkLabel 控件實例詳解(二):窗體設計文件
DFM 窗體定義 object Form1: TForm1 Left = 23 Top = 87 Caption = Form1 ClientH
Delphi 2009 泛型體驗(一)上:TList<T> 基礎體驗與舊 TList 對比
舊 TList 存儲整數:指標轉型麻煩 var oldList: TList; n, elem: Integer; pTmp: Pointer; oldList
Delphi 2009 泛型體驗(一)中:TObjectList<T> 自動釋放行為實測
測試類別:可觀測建構/解構 unit Felix; interface uses SysUtils; type TFelix = class priva
Delphi 2009 泛型體驗(一)下:TObjectList<T> 與 TList<T> 的關鍵差異與選擇建議
OwnsObjects 行為差異 舊 TObjectList.Create(False) 可設定不擁有物件,但 TObjectList<T> 無對應
Delphi 2009 泛型體驗(二)上:泛型方法與自定義泛型類基礎
泛型方法限制 不支援全域泛型函數 僅能定義在類別內、巢狀方法內、或為類別靜態方法 泛型方法範例:列印參數位址 type TGeneric =
Delphi 2009 泛型體驗(二)中:類別約束與物件型別約束驗證
類別型別約束 TGenericsClass1<T: class> 限制 T 必須為類別型別: type TGenericsClass1<T
Delphi 2009 泛型體驗(二)下:建構函數約束、值型別約束缺失與多重約束
建構函數約束:語法有效但用法受阻 宣告:TGeneric<T: constructor> 要求 T 有可見建構函數。 但實例化時 t := T.Cr
Delphi 2009 泛型體驗(二)完結篇:多型別約束、嵌套約束與特化缺失
多泛型參數分別約束 語法:TGenericsClass<T: class; T1: TList>,以分號分隔各參數約束。 嵌套約束支援 Delph
Delphi 2009 智能指針實作詳解(三):OOP Pascal 棧疊物件與智能指針原理
OOP Pascal 棧疊物件行為分析 Delphi 傳統 object 型別(棧疊物件)宣告與使用: type TStackObject = object
Delphi 2009 智能指針實作詳解(四):介面機制作為棧疊物件替代方案
C++ 模式在 Delphi 的困境 C++ 智能指針依賴棧疊物件的確定性建構/解構: 建構時接管堆疊物件指標 解構時 delete 釋放 Delp
Delphi 2009 智能指針實作詳解(五):介面自動管理機制驗證
介面型別自動釋放實證 測試程式: program TestInterface; {$APPTYPE CONSOLE} uses SysUtils; type
Delphi 2009 智能指針實作詳解(六):經典非泛型版本實作與驗證
TClassicalAutoPtr:非泛型智能指針 在泛型支援前,利用 TInterfacedObject 介面引用計數機制實作: unit Classical
Delphi 2009 智能指針實作詳解(七):控制台測試程式框架
測試程式骨架 建立標準控制台應用程式作為後續智能指針功能驗證的基礎框架: program TestAutoPtr; {$APPTYPE CONSOLE} use
Delphi 2009 智能指針實作詳解(八):核心方法實作與基礎測試
TAutoPtr 核心方法實作 function TAutoPtr<T>.Release: T; begin Result := fObj;
Delphi 2009 智能指針實作詳解(九):Release 與 Get 方法的行為差異
Get 方法:保持管理權 預設測試輸出: 物件在方法結束時自動銷毀,符合預期。 Release 方法:轉移管理權 將測試代碼改為 ap.Release.Do
Delphi 2009 智能指針實作詳解(十):全域變數延長物件生命週期
全域變數持有智能指針 宣告全域介面變數: var gAp: IAutoPtr<TTestClass>; 修改測試流程: procedure D