單一實例應用程式:互斥體 (Mutex) 防重複啟動並喚醒既有視窗
經典需求:使用者重複點擊執行檔時,不啟動新實例,而是將已執行的視窗置頂激活。核心技術:命名互斥體 偵測實例 + EnumWindows 尋找主視窗句柄 + Se
TListView 顯示資料夾結構:遞迴枚舉檔案與目錄樹建立
使用 TSearchRec + FindFirst/FindNext 遞迴掃描目錄,將資料夾與檔案以階層結構填入 TListView (Report 模式) 或
TListView 拖放檔案實作:WM_DROPFILES 訊息處理與檔案移動
讓 TListView 接收檔案總管拖曳的檔案,需處理 WM_DROPFILES 訊息。透過 Application.OnMessage 攔截全域訊息,配合 S
VCL 元件開發避坑:DesignEditors 與 Proxies 單元找不到的解決方案
撰寫 TComponentEditor 時引用 DesignEditors,編譯卻報「找不到 Proxies 單元」。原因在於設計期單元屬於 DesignIDE
OLE 拖放實作:跨程式資料傳遞的 IDropTarget 完整指南
實現「從瀏覽器/檔案總管拖曳文字/檔案到自家程式」需實作 IDropTarget 介面。Windows 透過 DoDragDrop 協調來源 (IDropSou
資料錄入優化:自動複製上一筆記錄加速輸入
資料錄入常有大量重複欄位 (如同一客戶多筆訂單、同一倉庫多筆入庫)。讓使用者手工重複輸入既低效又易出錯。利用 TStringList 暫存當前記錄欄位值,插入新
進銷存系統整合導入:速達/管家婆/用友資料遷移實戰
自建進銷存系統常需從主流財務軟體 (速達 3000、管家婆、用友 U8) 遷移基礎資料。本文展示統一介面、多資料源適配的遷移模組架構與核心邏輯。 整體架構
Delphi 圖片旋轉與縮放實作:掃描影像後處理實戰
專案需求:掃描儀取得的影像需 90° 旋轉修正方向,並因尺寸不固定需等比縮放顯示於固定 TImage 區域。本文提供基於 TBitmap 像素級操作的完整方案。
Delphi 開發 DirectX 遊戲:以 Jedi-SDL/JEDI-DX 標頭轉接 C++ 資源
網路上 DirectX 教學幾乎全為 C++,但 Delphi 同樣能開發高效能遊戲。關鍵在於取得完整的 Delphi 標頭轉譯,並掌握 SDK 風格呼叫慣例,
Delphi 開發自動化伺服器:讓外部程式控制你的應用
自動化讓應用程式暴露物件模型,供其他語言(VBA、C#、Python、Delphi 等)透過 IDispatch 晚期綁定或早期綁定呼叫。Delphi 內建專精
跨進程子類化技術:用 Hook 注入 DLL 實現他進程訊息攔截
在 Win32 下,每個進程擁有獨立位址空間,直接對他進程視窗呼叫 SetWindowLong(GWL_WNDPROC, ...) 會失敗。解決方案:SetWi
《參透 Delphi》書評:語言核心與系統編程的深度好書
國內 Delphi 好書稀缺,《參透 Delphi》是難得的深度佳作。作者非單純 API 羅列,而是從 Object Pascal 語言本質、VCL 內部機制、
ClientDataSet 動態建立表結構:從 XML 定義到記憶體資料集
TClientDataSet 是 Delphi 中斷線資料集的核心,若無資料庫連線、無外部提供者、無本地檔案,如何純代碼建立結構並開啟?關鍵在於 XML 資料包
Delphi 實現控制項陣列:以陣列變數管理同類控制項
Delphi 設計期不像 VB 內建控制項陣列,但我們可以透過「陣列變數 + 執行期指派」輕鬆達到同樣效果,大幅簡化大量同類控制項的程式碼。 應用場景 多媒體
從 QQ 尾巴病毒看即時通訊惡意軟體傳播與防護
QQ 尾巴病毒的現象與運作方式近年來,許多即時通訊使用者反映,在開啟 QQ 訊息發送視窗時,文字框中會莫名其妙出現額外內容,隨即訊息被發送出去。這類被稱為「尾巴
Delphi 元件開發入門:從屬性、方法到事件的完整實作(附 DBGrid 匯出 Excel 元件)
Delphi 的快速開發魅力在於強大的 VCL 元件庫。深入理解元件結構,不僅能善用既有元件,更能打造專屬的可重用控制項。本文帶你從零建立第一個元件,並附贈實戰
自訂 Midas 遠程登入視窗:支援伺服器 IP 選擇與記憶
Midas 內建的遠程登入視窗過於簡陋,無法讓使用者選擇連線伺服器位址。透過取代 RemoteLoginDialogProc 回呼函數,我們可以輕鬆實作功能完整
Delphi 異常處理與事務保護常見陷阱深度解析
1. Exit 方法的真實行為 許多開發者誤以為 Exit 會立即終止整個流程,但實際測試顯示並非如此。請看下例: var flag: string; be