Delphi DBGrid 嵌入下拉方塊 (DBComboBox) 等可視元件
原理 TDBGrid 編輯時實際是在儲存格上浮動一個 TDBEdit。同樣可將任何資料感知元件 (如 TDBComboBox, TDBCheckBox) 浮動至
Delphi 多媒體教學軟體:文字顯示與聲音同步播放實作
應用場景 語言學習軟體:文章分句錄製波形檔 (.wav),資料庫記錄每句起始時間 (毫秒)。播放時依據目前播放位置自動捲動高亮顯示對應句子。 資料結構 Ta
Delphi 訊息處理機制深度解析:從 Windows 訊息迴圈到 VCL Dispatch
1. Windows 訊息驅動架構 Windows 以訊息為核心:使用者輸入、系統事件、應用程式間通訊皆封裝為訊息 (MSG 結構) 投遞至執行緒訊息佇列。應用
Delphi 動態建立交叉表 (CrossTab) 以 ClientDataSet 實作
需求 將垂直資料表 (列: 產品、月份、銷售額) 轉為交叉表 (列: 產品,欄: 月份,值: 銷售額)。使用 TClientDataSet 動態建立欄位與資料。
Delphi 自訂圖示訊息框 (MessageBoxIndirect 封裝)
動機 標準 MessageBox/MessageDlg 無法使用自訂圖示。Windows API MessageBoxIndirect 支援 MB_USERIC
Delphi 多執行緒排序 (TThread) 讓介面保持回應
背景 大量資料排序 (如氣泡排序) 會阻塞主執行緒,導致介面凍結。利用 TThread 將排序移至背景執行緒,主執行緒可持續處理使用者操作。 排序執行緒類別
Delphi 使用 RC 資源檔字串表實現多語系與錯誤訊息管理
資源檔建立流程 用記事本或 Borland Resource Workshop 4.5 建立 .rc 文字檔,定義 STRINGTABLE。 用 BRCC32
Delphi TListView 列標標題列扁平化 (移除 3D 立體邊框)
效果 將 TListView 的欄標標題列從預設立體 (Raised) 改為扁平 (Flat) 風格,視覺更現代化。 原理 取得 ListView 內部 H
Delphi 布林類型完解:Boolean、ByteBool、WordBool、LongBool 差異與陷阱
四種布林類型對照 類型大小順序性Ord(False)Ord(True)用途 Boolean1 Byte有序01首選,標準邏輯 ByteBool1 Byte無序
Delphi 自製動態跑馬燈元件 (L_TEdit1) 與執行緒應用
設計目標 建立繼承自 TEdit 的新元件 L_TEdit1,擁有 MoveShow 方法可將文字內容以跑馬燈方式動態顯示。為避免阻塞主介面,採用 TThrea
Delphi 透過 NetBIOS 取得網卡 MAC 位址
應用場景 軟體授權綁定、機器唯一識別常需取得網卡實體位址 (MAC Address)。本文提供完整 Delphi 單元 (Nb.pas) 封裝 Windows
DelphiX 圖像處理:TDIB.Lightness 亮度調整
效果預覽 功能說明 TDIB.Lightness(Value: Integer) 調整整體亮度。正值變亮,負值變暗。範例使用 32 提高亮度。 完整程式碼
DelphiX 圖像處理:TDIB.Saturation 飽和度調整
效果預覽 功能說明 TDIB.Saturation(Value: Integer) 調整色彩飽和度。正值增強色彩,負值減弱至灰階。範例使用 32 提高飽和度
DelphiX 圖像處理:TDIB.Contrast 對比度調整
效果預覽 功能說明 TDIB.Contrast(Value: Integer) 調整對比度。參數可為正 (增強) 或負 (降低),範例使用 32 提高對比度
DelphiX 圖像處理:TDIB.AddRGB 通道顏色疊加
效果預覽 功能說明 TDIB.AddRGB(R, G, B: Integer) 將指定 RGB 數值 (0~255) 疊加至每個像素對應通道。範例提供四個按
DelphiX 圖像處理:TDIB.Filter 內建濾鏡大全
效果預覽 功能說明 TDIB.Filter(Source: TDIB; FilterType: Integer) 套用預定義卷積核濾鏡。DelphiX 定義
DelphiX 圖像處理:TDIB.Sharpen 銳化效果
效果預覽 功能說明 TDIB.Sharpen(Amount: Integer) 增強圖像邊緣銳度。參數 Amount 控制強度,範例使用 1 輕微銳化。
DelphiX 圖像處理:TDIB.Rotate 任意角度旋轉
效果預覽 功能說明 TDIB.Rotate(Source: TDIB; CenterX, CenterY: Integer; Angle: Single)