多線程編程(16) - WaitableTimer 等待定時器對象(續二):週期性 APC 與取消定時器
週期性執行 APC 的關鍵:在 APC 內再次調用 SleepEx 每次 APC 執行都需要 SleepEx 送入隊列,解決辦法:在 APC 函數末尾再次調用
多線程編程(17) - WaitableTimer 等待定時器對象(續三):APC 回調傳遞參數
SetWaitableTimer 回調函數參數傳遞實戰 回調函數指針參數 lpArgToCompletionRoutine 將傳遞給 APC 函數第一個參數,可
多線程編程(18) - 從簡單例子出發(三):數組簡化版
多用數組進一步簡化(無同步,三線程並發亂序繪製) unit Unit1; interface uses Windows, Messages, SysUtils,
多線程編程(19) - 不使用同步工具,手動協調線程依次執行
互斥體手動同步三線程繪圖 窗體含三個 TPaintBox 與一按鈕。使用 CreateMutex 創建互斥體,線程函數 WaitForSingleObject(
使用鉤子函數[3] - 建立全局鼠標鉤子(DLL 實現與動態調用)
第二步:調用 DLL 鉤子 新建項目,複製 MyHook.dll 到目錄,兩按鈕實現: unit Unit1; interface uses Windows,
使用鉤子函數[4] - 鉤子鏈與 CallNextHookEx 返回值探討
鉤子函數返回值之謎 按鍵一次產生兩條消息:WM_KEYDOWN、WM_KEYUP,未過濾則都會被攔截。區分關鍵在 lParam 參數(下節詳解)。 示例代碼:
使用鉤子函數[5] - 數據傳遞:測試窗體 DFM(含定時器)
測試窗體結構定義 (DFM 文本) object Form1: TForm1 Left = 0 Top = 0 Caption = Form1 Clie
使用鉤子函數[6] - 數據傳遞:測試窗體 DFM
測試窗體結構定義 (DFM 文本) object Form1: TForm1 Left = 0 Top = 0 Caption = Form1 Clie
用 Delphi QReport 組件生成報表(二):報表窗體組件佈局與屬性設置
報表窗體 repForm 組件屬性詳表 Query1: TQuery DatabaseName: d:\sb Active: True Qrep1:
用 Delphi QReport 組件生成報表(三):代碼實現與打印控制
三、程序代碼編寫 1. 主窗體按鈕事件 procedure TmainForm.PreviewBtnClick(Sender: TObject); begin
DelphiX 實戰範例:TDXDraw 描繪圖片命令(二):代碼文件
Unit1 代碼實現 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Cla
DelphiX 實戰範例:TDIB.Blur() 窗體設計與代碼文件(第 25 節補充)
代碼文件 Unit1 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Cla
DelphiX 實戰範例:TDIB 主要載體 TDXPaintBox(二):代碼文件
Unit1 代碼實現 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Cla
DelphiX 實戰範例:TDIB 主要載體 TDXPaintBox(三):窗體設計文件
Form1 窗體結構定義 (DFM 文本) object Form1: TForm1 Left = 0 Top = 0 Caption = Form
DelphiX 實戰範例:TDIB.Spray() 窗體設計文件(第 27 節補充)
Form1 窗體結構定義 (DFM 文本) object Form1: TForm1 Left = 0 Top = 0 Caption = Form
如何建立簡單的任務欄應用程序(二):圖標註冊與消息處理
創建隱藏窗口與註冊托盤圖標 使用 WS_OVERLAPPEDWINDOW 風格但尺寸為 0、隱狀態創建窗口。調用 Shell_NotifyIcon(NIM_AD
如何建立簡單的任務欄應用程序(三):彈出菜單構建與 Shell 枚舉
右鍵點擊彈出菜單邏輯 用戶單擊圖標時,Windows 發送自定義消息 WM_MYCALLBACK,詳細信息在 LParam 中。右鍵觸發 ShowIconPop
如何建立簡單的任務欄應用程序(四):菜單創建與執行總結
程序結構拆解 整個程序可分為兩部分:**創建菜單**與**顯示/運行菜單**。 枚舉創建菜單(Shell 接口) 調用 SHGetDesktopFold