2026/04/21

【Delphi 現代化轉型】Day 4:Horse 資料庫神操作 -- 使用 ADO 和 FireDAC 建立 JSON

作者:吳祐賓 

 


 

 

先說結論 

 

給你的評估參考,除非你前後端完全使用 Delphi 開發,否則不建議使用內建的 FireDAC 轉 JSON 的任何工具。但前後端使用 Delphi 開發也不用太到 JSON 轉換才對。

 

使用我公開的 EdenDBXJsonHelper.pas 單元,可以讓你在 Delphi 現代化轉型少走很多彎路 

 


本文開始


使用 Day 3 的程式碼範例,並建立 DataModule,將 ADO 和 FireDAC 元件帶入,並連結好你的資料庫,如果完成,畫面應該像這樣:

 


 

注意!TFDStanStorageJSONLink 是 FireDAC 轉出 JSON 必須使用的元件,若不拉進來,使用 FD 內建的函式會因跳出例外而出錯

 

 

建立 Horse API 取得 FireDAC 資料集


回到 horse 專案的主單元,設計取得 FireDAC 資料集,程式碼非常簡單,資料庫的常規操作即可



uses
  Horse, System.Classes, Winapi.ActiveX, FireDAC.Stan.Intf;

THorse.Get('/firedac_emp',
  procedure(Req: THorseRequest; Res: THorseResponse)
  var
    LDM: TDataModule1;
    LStream: TStringStream;
  begin
    // 1. 初始化 COM (重要:Horse 是多執行緒,MSSQL 等驅動需要此步驟)
    CoInitialize(nil);
    
    LDM := TDataModule1.Create(nil);
    LStream := TStringStream.Create('', TEncoding.UTF8);
    try
      // 2. 執行 SQL 取得資料
      LDM.FDQuery1.SQL.Text := 'SELECT * FROM employee';
      LDM.FDQuery1.Open;
      
      // 3. 使用 FireDAC 內建方法將 DataSet 轉入 Stream (格式選 sfJSON)
      LDM.FDQuery1.SaveToStream(LStream, sfJSON);
      
      // 4. 回傳字串內容
      Res.Send(LStream.DataString);
    finally
      LStream.Free;
      LDM.Free;
      // 5. 釋放 COM
      CoUninitialize;
    end;
  end);


這裡要留意的是,以 MSSQL 為例,FireDAC MSSQL Driver 是呼叫 COM 來操作,所以必須初始化 COM 與釋放 COM (CoInitialize(nil) and CoUninitialize)

 

轉換 JSON 原理是透過 TStringtream 進行轉換,最後交由 Response 送回客戶端

 

 

我完全不推 FireDAC 原生作法

 

上述程式碼看似「完成了」,但你打開瀏覽器看結果,你會發現兩個大問題:

1. 冗餘結構 (The FDBS Mess):
 

FireDAC 產出的 JSON 包含了大量的 Metadata(欄位長度、型態等),這對 Delphi 來說是瑰寶,但對 Web 前端(JavaScript)是垃圾。

前端工程師還得自己進到 FDBS -> Manager -> Table -> Rows 裡面去找資料,包準他們會一邊寫一邊碎碎念。



2. 惡夢般的日期格式:
 

輸出結果中的日期會長這樣:19930809T000000.000。
 

這是 ISO 8601 的壓縮格式,JS 的 new Date() 根本吃不進去。這只有 Delphi 客戶端 + FireDAC 才能「無痛」解開的格式,放到現代 Web 專案中,負責串接 API 的乙方會恨死你。 

 

FireDAC 預設轉出的 JSON 格式


 

官方預設 JSON 帶有許多 Delphi 專用的 MetaData
 

日期格式還是 ISO 8601 的壓縮格式



建立 Horse API 取得 ADO 資料集


就是一開始建立的 TADOConnection 和 TADOQuery 元件,搭配下載的 EdenDBXJsonHelper.pas 單元後程式碼就變這樣:

 


uses DBXJSONCommon, EdenDBXJsonHelper;

THorse.Get('/ado_emp',
  procedure(Req: THorseRequest; Res: THorseResponse)
  begin
    // 初始化 COM
    CoInitialize(nil);
    var LDM := TDataModule1.Create(nil);
    try
      LDM.ADOQuery1.SQL.Text := 'SELECT * FROM employee';
      LDM.ADOQuery1.Open;
      Res.Send(TDBXJSONTools.DataSetToJSONArray(LDM.ADOQuery1).ToJson);
    finally
      LDM.Free;
      // 釋放 COM
      CoUninitialize;
    end;
  end);

 

簡單好上手,一段話就將資料集直接轉為 JS 可以直接使用的 JSON 格式,連刁鑽的日期格式也使用 ISO 8601 擴展模式,不論是 MSSQL 資料庫或 JS 前端框架,都是無痛使用

 

這只是拿前朝主流 ADO 元件來使用,但 BDE、IBX、DBX、FireDAC 等 TDataSet 繼承下來的資料集也可一併套用! 


符合現代標準化 JS 格式


日期採用 ISO 8601 擴展格式 (Extended Format)

 

 這才是程式設計極簡的中心思想,在適合的地方,就用適合的工具,即為現代化轉型思路王道

 

2026/04/20

倉頡五代升級攻略:Win 10/11 使用者的完美解決方案 (2026 加入一鍵更換、含倉頡三代升級)

作者:吳祐賓

 

 

你使用倉頡打字的時候,有沒有感受到奇怪的味道:

* 晚上的「晚」永遠都排在第二個字

* 「卜竹竹手一」打不出「産」?而「木中中女」打不出「樓」?

 

這代表你也是微軟倉頡四代的受災戶

 

在學習倉頡五代後,一直覺得微軟倉頡和新倉頡的倉頡四代碼表很不友善,一直到最近看到倉頡之友的【替換微軟倉頡碼表,盡享倉頡補完計劃的樂趣】,才知道原來微軟倉頡也可以更新碼表,終於能享受到輸入文字的樂趣了!

 

首先,本篇文章適用範圍:Windows 10 2004 版以上。記得,Windows 更新有時會覆蓋原來倉頡四代的碼表,記得要再回來更新 (2026/03/18 文末追加:一鍵更換 DLC)

 

 

倉頡碼表下載點

 

下載:MSCJData_Cangjie 開頭字樣檔案

例如:

 

 

給倉頡三代的使用者 (習慣打法為:「木中田女」=樓;「戈土心」=應) 

 

倉頡三代補完計劃替換碼表下載地址:https://github.com/Arthurmcarthur/Cangjie3-Plus/releases

 

 

GitHub 上 Cangjie3 倉頡三代碼表 20230909 版本的釋出與下載頁面截圖

 

 

給倉頡五代的使用者 (習慣打法為:「木中中女」=樓;「戈人土心」=應)

 

倉頡五代補完計劃替換碼表下載地址:https://github.com/Jackchows/Cangjie5/releases

 


GitHub Jackchows/Cangjie5 專案 Releases 頁面,顯示 v4.1-beta 最新版本與更新內容

 

安裝步驟

 

  1. 任務管理器裏結束兩個Microsoft IME進程。
  2. 進入 C:\Windows\System32\zh-hk 目錄,刪除
    • ChtCangjie.sdc
    • ChtCangjie.spd
    • ChtCangjieExt.lex
    三個文件(刪除前請備份),然後將此處提供的 ChtCangjieExt.lex,複製到該目錄。




  3. 打開「包含香港增補字符集字元(HKSCS)」開關。

 

 

完成上述步驟後請重新開機,接下來就可以好好體驗倉頡五代所帶來的暢快輸入感!

 

相信更多愛用倉頡的愛好者不滿足於預設的內容。不過因為我個人沒用到進階設定,想要了解更多細節的倉頡愛好者,歡迎再閱讀補完計畫說明檔。


總結

 

使用倉頡補完計畫優點

 

  • 字碼編排最貼近符合倉頡歷代改版標準。
  • 可以使用倉頡五代輸入方式。 
  • 重難(ZX)符號輸入完整呈現。
  • 還有微軟倉頡獨門快速鍵 100% 保留,例如:
    Ctrl+, ,
    Ctrl+' 、
    Ctrl+. 。
    Ctrl+; ;
    Ctrl+Shift+; :

    `+ +
    `- -
    `/ /
    `/ 向下鍵 ÷
    `* 向下鍵 ×
    `+ 向下鍵 ±

    Ctrl+[ 【 向下鍵 「...
    Ctrl+] 】 向下鍵 」...

    Ctrl+Alt+, 叫出特殊符號表 (輸入法整合器) 

 

使用倉頡補完計畫缺點


  • Z開頭的符號碼無法使用,只能使用微軟輸入法的符號快速輸入鍵輸入。 (20220904 MSCJData 版本已解決此問題)
  • 由於微軟倉頡的排序邏輯寫死在程序中,與碼表沒有關聯。補完計畫在調整此問題已將部首、筆畫、兼容區字符移除,RIME 則無此問題

 

整體來說優點大於缺點,能暢快享受輸入文字的樂趣,在這邊分享給大家。

 

2026/03/03 附記:

為什麼我執意要使用微軟輸入法引擎?

1. PIME 容易當機 (Python 不知道為什麼就閃退) 

2. 小小輸入法在 WinUI (Win App 2.0) 是不能用的,它只能在傳統應用程式下使用

3. 其它的自由倉頡、RIME 等輸入法引擎,操作習慣都要重新熟悉,新設備也需要另外安裝。但熟悉微軟輸入法引擎下,新環境我只需要忍耐字碼位置就好,比較不會換了新設備就變智缺化 (笑)

 

 

【2026/03/19 重大更新】一鍵修復 Windows 內建倉頡(三代/五代)選字排序、補完缺字!

 


 

 

上述人工步驟在每次被 Window Update 陰了後,就很懶得重複做,於是我讓 AI 寫了批次檔來做自動更新,原始碼已在 Github 開源供各位取用

 

Github 專案網址:https://github.com/Eden5Wu/Windows-Cangjie-Updater 


三大特色

  • 自動升權:因為會修改註冊檔,所以會要求使用者提供系統管理員權限 
  • 互動式選單:官方有四款需求導向目錄,為此寫了選單,預設為「台灣優先」
  • 自動備份 :腳本會自動備份舊碼表,改壞了就換回來即可


原本是寫 bat 批次檔,但倉三和倉五來源目錄皆以中文命名,剛好又是 bat 的罩門,為避免另外說明造成你我困擾,我決定改為 PowerShell (ps1) 來處理


視 bat 為本命的愛好者,也可以在上述 Github 中下載 bat 來使用,程式碼固定為「台灣優先」,有需要再自行修改

 

 

實現一鍵安裝的倉頡更新,感覺真是太好啦!

若是哪天又被天殺的微軟「更新」蓋掉,只要再對  .ps1 檔案按右鍵 ->「用 PowerShell 執行」來安裝,3 秒鐘就修復完成!

 

真是爽快!

 

常見問題

💡 Q:執行時一閃而過,或是出現「禁止執行指令碼」的紅字報錯?

A: 這是因為 Windows 預設基於安全考量鎖定了 PowerShell 腳本執行。請照以下步驟解鎖:

  1. 按下 Win + X 鍵,選擇 「終端機 (系統管理員)」。(就是Windows PowerShell)

  2. 貼上指令:Set-ExecutionPolicy RemoteSigned -Scope CurrentUser 並按 Enter。

  3. 輸入 Y 並按確認。

完成後再次對著腳本按「右鍵 -> 使用 PowerShell 執行」即可正常運作

 


 

Ubuntu 24.04 / 26.04 安裝 Fcitx5 新酷音、繁體倉頡與嘸蝦米 (2026 免手動複製檔案) Ubuntu install Traditional Chinese input Chewing and Cangjie

作者:吳祐賓

 


2026/04/20 更新摘要


沒想到 2026 年,Linux 還是擺脫不了自己下指令安裝輸入法。

 

2023 寫這篇時步驟還很零碎,當時是這麼寫的:

 

Ubuntu 安裝 Taiwan 新酷音和倉頡。

因為網路上安裝步驟很零碎,所以記錄在這裡。

 

2026 年 Ubuntu 更普及,雖然也是要手動安裝,但過程大幅簡化!

現在,短短一行整合指令,就能解決你的問題! 



2026 更新做法

現在 Ubuntu 24.04 之後的版本,只需要一行指令即可安裝「新酷音」、「繁體倉頡」與「嘸蝦米」:


sudo apt update && sudo apt install fcitx5 fcitx5-chewing fcitx5-table-extra fcitx5-chinese-addons

 

安裝完後,直接在 Fcitx5 設定介面搜尋「倉頡五代」、「嘸蝦米」即可看到繁體版本。



歷史存檔:2023/12/2 的手動安裝紀錄(舊版 Ubuntu 適用)

 

安裝 Fcitx5 新酷音 (注音 chewing)

有注音才能夠在 Terminal 進入"下載"資料夾

# 安裝新酷音注音輸入法
sudo apt install fcitx5 fcitx5-chewing fcitx5-chinese-addons
重新開機後即會看到鍵盤圖示在桌面右下角出現,右鍵選單會有新酷音。在設定畫面裡可以看到 Fcitx5 也安裝其它的輸入法。如下圖所示。





 

 

安裝 Fcitx5 倉頡、嘸蝦米等 (fcitx5-table-extra)

 

前一步驟安裝好 Fcitx5 後可以在簡體中文(中國)裡看到倉頡,它可以使用沒有問題。若你想使用繁體中文(台灣),我們繼續看下去。

繁體中文的 Fcitx5 倉頡確實存在,但它是透過 fcitx5-table-extra 套件提供的。但這個套件還在 Debian FTP Masters 審核。這裡就改使用 pkgs.org 提供編譯好的檔案。

這裡下載 Arch Linux Extra aarch64 (結稿時的版本為:fcitx5-table-extra-5.1.0-1-any.pkg.tar.xz)。下載後解壓縮,如下圖所示。


解壓縮後使用 Terminal 將目錄裡的資料複製到 /usr/share 目錄裡。可以使用以下指令:

sudo cp -r usr/share /usr/
# or
sudo cp -r usr/share/* /usr/share/


複製完成後,重新開機,接著就可以在 fcitx5 控制台裡看到繁體中文(台灣)區塊中看到增加的輸入法,如倉頡第五代、嘸蝦米等。如下圖所示。


現在可以享受新增的輸入法囉!



和你分享。




VMWare Tools install

sudo apt-get update
sudo apt-get install open-vm-tools open-vm-tools-desktop

How to share folder between host and VM

建立分享目錄,如下圖所示:

使用 "vmware-hgfsclient" 指令確認分享目錄是否出現。

將所有分享目錄掛載指令:

sudo vmhgfs-fuse -o allow_other .host:/ /mnt/hgfs

只是每次開機都要做這個動作,還在想這個問題要怎麼解決,目前就先建立捷徑在桌面上使用。


Ubuntu-sharing Mounting and Auto Mounting

網友 @darrenpmeyer https://gist.github.com/darrenpmeyer/b69242a45197901f17bfe06e78f4dee3 這篇文章寫得太完美,照著他的步驟做就可以完成一切,這裡把關鍵的 Mounting 和 Auto-Mounting 的內容照原文貼上,以免原文搬走後找不到的情況。

Mounting

To mount the filesystem, run:

sudo mount -t fuse.vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other

The shared folders will now be in subdirectories of /mnt/hgfs
Setting up auto-mounting


Add the following line to /etc/fstab:

.host:/    /mnt/hgfs    fuse.vmhgfs-fuse    auto,allow_other    0    0





See also

 

2026/04/19

【Delphi 現代化轉型】Day 3:授權降階計畫:用 Horse 跑出 API,每人年省 $2,000+ 支出

作者:吳祐賓

 


 

 

 

『DataSnap 還能撐多久?』

這是我近幾年來讀者私訊我最多的一句話。

 

站在資深開發者與書籍作者的角度,我看見的是技術與財務的雙重枷鎖 ── 每年支付昂貴的 Enterprise 授權費用,卻換來一個不再進化的工具。

 

EMBT 已明確將 DataSnap 列為「僅維護」狀態,不再投入新功能。這意味著繼續使用,等同每年持續支付同樣高的授權費用,但卻累積越來越難轉移的技術債,並讓招募年輕開發者變得更加困難。 


身為 DataSnap 的資深信徒,我比任何人都更關注這套架構的長遠生命力,更何況我背負著曾經支持我「Delphi in Depth DataSnap 網站應用程式全端開發」一書的眾多讀者,我,有義務帶領信任我的讀者「走出埃及」。
 

我決定在此提出具體的『降階增效』方案。

 

這是我對信任我的讀者與Delphi 同好們的承諾,也是企業轉向輕量化、現代化架構的最佳時機。

 

為了不讓過去的技術累積變成長期的負資產,我透過這幾年的實戰驗證,歸納出一條低風險、高報酬的現代化路徑。這不是單純的技術更換,而是一場提升開發靈活性並立即優化軟體授權支出的戰略調整。 

 

經過這幾年的摸索,我研究後的結論為:以 Horse 框架取代 DataSnap 的核心 REST/JSON RPC 功能。

 

透過 Horse 框架,進行一場不傷筋骨的變革:保留商業邏輯,切斷高昂的授權代價。 

 

Horse 的設計概念貼近現代 Express.js 風格,只需幾個步驟,就能讓後端開發安全地從 Enterprise 降階到 Professional,直接省下每人每年數千美元的授權成本,同時讓程式碼更容易被新一代開發者接手。


實作環節

 

如果你是第一次看到這篇文章,建議可先閱讀系列文章,但這不妨礙本篇對技術的評估。 

 

 

 

建立新的 Delphi 專案

  1. 開啟 Delphi IDE

  2. 點擊選單 File > New > Console Application(Horse 非常適合開發 Console 模式的伺服器)

  3. 將專案存檔到一個資料夾中(例如 C:\D\horseDemos\

  4. 關閉 Delphi,因為 boss 設定路徑時會修改 .dproj 的 Search Path 和 Library Path 內容

 

 

建立新的 Delphi 專案

 

使用 Boss 進行專案初始化 

  1. 開啟【命令提示字元】進入前述專案資料夾目錄
  2. 輸入 boss init 進行 boss 初始化
  3. 期間的精靈介面詢問的問題皆以 Enter 輸入預設值


輸入 boss init 後的初始化過程


使用 Boss 安裝 Horse 套件

  • 輸入 boss install horse
  • 等待 boss 下載與安裝
  • 看到 Success 字樣即安裝完成 

 

 

輸入 boss install horse 後的安裝流程

 

開啟 Delphi 專案,並將 horse 導入

  1. 開啟一開始建立的 Delphi 專案,並輸入以下的 horse beginner code
  2. 按下 F9 執行,若看到 Windows Defender 安全性警示畫面,是因程式會在系統開啟 Port 來使用,故按【允許存取】即可
  3. 看到命令提示字元啟動黑畫面即代表啟動成功
  4. 執行 Chrome / Edge / Firefox 等任一瀏覽器,網址列輸入 http://localhost:9000/ping
  5. 看到 "pong" 字樣即大功告成



program horseSrvr;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils, Horse;

begin
  try
    { TODO -oUser -cConsole Main : Insert code here }
    // 定義一個簡單的 GET 路由
    THorse.Get('/ping',
      procedure(Req: THorseRequest; Res: THorseResponse)
      begin
        Res.Send('pong');
      end);

    // 啟動伺服器,監聽 9000 端口
    THorse.Listen(9000);
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.


Windows Defender 會阻擋需要開啟 Port 的應用程式,記得按下允許存取鍵

輸入網址後,就可以看到第一個 horse 現代後端服務啟動


這 20 幾行程式碼所實現的功能,在 DataSnap 中需要處理複雜的引導精靈與大量的背景單元,現在可以輕鬆掌握了每一行程式碼的意圖。


使用 horse,擺脫高昂枷鎖的開始

和 DataSnap 相比,幾行 Code 就能擺脫枷鎖,省下那 $2,000 授權費的關鍵竅門。

 

當時 DataSnap 設立之初,就是為了做 Enterprise 應用,現在 DataSnap 被廢止開發,最核心的功能被廢了一大半,那麼, Enterprise 還剩什麼?

 

Enterprise 對我來說剩下 FireDAC 提供的企業級資料庫驅動程式的功能,如 Oracle、Mircosoft SQL Server 等

 

這部份我是以 dbExpress + Devart driver 進行維護主軸,故 FireDAC 對我的誘因不足。

 

各位從這三篇技術文章,可以看出,技術選型的重要與開發工具商的承諾的重要性。

 

在 AI 快速驅動開發轉型的時代,我們不能再被舊時代的授權合約與框架綁架。

 

透過 Horse,可以實現了財務上的『降階增效』,更讓團隊的技術棧與全球主流的 RESTful 架構接軌。

 

不只是省錢,更是為了確保當企業需要招募新一代開發者時,能給出的是一張通往未來的門票,而非歷史的包袱。

 

人的未來性,才是用人留人的根本,您說是吧! 

 

未來會有更多關於 horse 技術文章的產出,有任何問題,都可在留言區分享討論。 

 




 

 

2026/04/18

【Delphi 現代化轉型】Day 2:內戰 — Boss 移殖引爆的防毒軟體的免疫攻擊

作者:吳祐賓





Boss 要怎麼裝進 Delphi 環境?

 

在 Delphi 專案中,每次要加入第三方元件,最花時間的不是寫程式,而是反覆手動調整 Search Path 和 Library Path。有了 Boss 之後,這件事從可能花上幾小時,縮短到 30 秒就能完成。

 

Boss for Delphi
Boss for Delphi and Lazarus from HashLoad github


進入 HashLoad Boss 首頁,由 readme.md 得知有兩種 Boss 安裝方法,原文是這樣的:

 

📦 Installation

  • Download setup
  • Just type boss in the terminal
  • (Optional) Install a Boss Delphi IDE complement

Or you can use the following the steps below:

  1. Download the latest version of the Boss
  2. Extract the files to a folder
  3. Add the folder to the system path
  4. Run the command boss in the terminal

 

看不懂沒關係,我講給你聽。

 

原則上 Boss 和 Delphi / Lazarus 各自獨立的系統,互不規範與限制,Boss 除了安裝 Github 3rd 元件外,會順帶把 3rd 元件路徑自動加入到該專案檔(.dproj)裡,開發者就不用再人工去設定 Search PathLibrary Path

 

知道這個前提後,可以知道:

 

  1. Boss 可獨立作業
  2. Boss 要能夠在 "命令提示字元 (CMD) " 下工作 

 

Boss 為什麼必須安裝在 RAD Studio 的 bin 目錄裡

 

進入 "https://github.com/hashload/boss/releases" 下載 Boss 程式並解壓縮。

 


 

 

Boss 只是普通 EXE 執行檔,不需要也沒有額外的安裝程式。

要能夠隨開命令提示字元就能夠操作 Boss,只能夠手工處理,通常你會先建立新資料夾,把 Boss 放到此資料夾,最後再設定系統環境路徑 (Path 系統變數) ...

 

非常囉嗦! 

 

如果你具備系統管理員身份,你就按以下步驟做就好了! 如果你連系統管理員身份都沒有...你還是看前面非常囉嗦的流程吧。

 

RAD Studio 安裝目錄下的 bin 資料夾,在安裝之初就有被加入到 Windows Path 變數中,所以上述只需一句話就安裝好 Boss 了:

 

把下載來的 boss.exe 放到 RAD Studio 的 bin 目錄裡。

註1:有多個 Delphi 時,任一 bin 目錄都可以,效果相同)

 

為了讓 Boss 使用起來最方便,我自己是把 boss.exe 複製到 RAD Studio 的 bin 目錄,這樣每次開 CMD 就能直接執行,不用額外設定環境變數。  

 

另外 Optional: Boss Delphi IDE complement,雖然能綁定到 Delphi IDE,但已被 npm 訓練習慣的我已經不會偏好此味,有興趣的同好可以自行研究。 

 

 

首次執行 Boss

 

首次執行 Boss,不帶任何參數,Boss 會自動安裝它所需要的環境,之後你可以使用 Boss --help 呼叫手冊閱讀。

 


 

 help 指令很重要,可以看 Boss 有哪些指令與指令說明:

 

boss --help
boss <command> --help 

 

Boss 有更高的機率是被防毒軟體擋下

 

事情總是不會如我們的預期,每每在開始 Boss 時,第一個出來 Say Hello 的永遠是防毒軟體!

 

 


 

Delphi 的二進位檔(尤其是開源工具)常被防毒軟體(如 Windows Defender 或防毒軟體)誤判,沒想到連 Go 語言寫的 Boss 程式也會被誤判。記得要允許 Boss 執行。

 

 

建置環境時間將從數小時變成 30 秒

 

測試時可先建立新專案,本篇建立了 New VCL Console Application,放置在 D:\D\vclDemos\horseDemos 路徑。 

 


 

在專案目錄執行 boss init ,奇妙的事發生了。boss 會啟用精靈介面,引導你設定此專案專案需要吃哪些外部套件,初期只要逐步 Enter 使用預設值即可。

 

完成後該目錄下就會建立 boss.json,這就是 boss 的初始化程序。

 

以前你手動在 IDE 處理的 Search Path 和 Library Path 可能要花上幾小時, 在完成 Boss 初始化後,只需要 30 秒就可以完成了!

 

省下這個時間,代表著新專案能更快上工、團隊成員交接更快,更減少了因路徑設定錯誤造成的延誤。

 

透過 Boss,把原本繁瑣的重複工作自動化,讓開發者把時間花在真正重要的程式邏輯上。這也是本系列想打造更現代化 Delphi 開發流程最重要的一小步。

 

 

下一篇,我們來看這套工具如何把空無一物的專案資料夾,瞬間變成具備生產力的專案內容。 

2026/04/17

【Delphi 現代化轉型】Day 1:決戰版控夢魘—用 Boss 解決 3rd 元件的版控地獄

作者:吳祐賓

 


 

 

昨天又被 3rd Party 元件版本問題搞得有點煩。

以前大家習慣全域裝一套元件,所有專案共用,結果不同專案要不同版本時就亂成一團。

如果你曾經歷過以下事情:

 

  • Delphi 7 升級到 XE 以上
  • DevExpress VCL 或 Github 開放專案 (如 mORMot, Spring4D等) 元件底層大改版

 

那你一定會感受到來自工程師的怨念。絕對!


Delphi Boss 套件庫工具 -- 將 npm 概念加入 Delphi


Boss Logo -- from Github


Boss 這工具就是專門來處理這件事的。它讓每個專案都能有自己獨立的元件版本,概念很像 Node.js 的 node_modules。

 

例如:A 專案和 B 專案同時用到 C 的 3rd 元件,但 C 的 2.0 和 3.0 的函式名稱大改變,以前沒有 Boss 時,通常我們只會選擇其一,然後就用到逼不得已再升級(降級)。

 

現在使用 Boss,你就可以在專案中安裝 3rd 元件的指定版本,每個專案都各自安放獨立的 3rd 資料夾。

 

  • 好處:可維護性提高,不需要每次開專案都擔心缺失元件的問題
  • 代價:元件原始碼會因每個專案都有一份,重複檔案會造成硬碟空間佔用

 

除非你是程式碼潔癖癌末患者,我認為現在硬碟動不動就幾個 TB 的時代,用空間換版本更替掃雷時間,這投報率太高,你不用看看嗎?

 

 

2026/03/04

2026 年,使用 Intel 迷你 PC 打造 AI 伴侶,使用 SillyTavern + ollama-ipex-llm

 作者:吳祐賓

 

SillyTavern 預載的 Seraphina 角色卡
可供初次載入的聊天對象

 

 

 

2025 年,我寫了篇【告別 AI 訂閱費?我的 Intel 迷你電腦 AI 本機實戰(LM Studio / Ollama / IPEX-LLM)】,在 2026 年來看,實在是太困難了,後來重建的時候發現它變簡單了。

 

一、環境準備

先在 D 槽或不需系統管理員權限的位置,建立一個資料夾, 例如:IPEX_LLAMA

 

二、安裝 SillyTavern

首先要安裝 node.js,安裝 LTS 版本即可

SillyTavern Github

看是要直接從網站打包 zip 下載,還是使用以下指令安裝 SillyTavern 都可以。

git clone https://github.com/SillyTavern/SillyTavern -b release 

 

執行【Start.bat】啟動 SillyTavern。啟動後,瀏覽器會自動開啟 http://127.0.0.1:8000


三、安裝 Ollama-IPEX-LLM

Intel 使用 IPEX-LLM 讓 Arc / Iris XE 顯示晶片能夠儲存並運算 GGUF 模型

附帶一提,

IPEX-LLM專案已於2026年1月28日被Intel官方archive(設為唯讀) 

目前 Ollama-IPEX-LLM 不僅堪用且好用,待日後若使用其它替代方案,會再另寫新文章

 

Ollama-IPEX-LLM Github 

步驟 1: 下載免安裝連結

https://github.com/ipex-llm/ipex-llm/releases/tag/v2.3.0-nightly

下載後解壓縮到一個資料夾中 

步驟 2:  啟動 Ollama Serve

打開命令提示字元(cmd),並輸入指令 cd /d PATH\TO\EXTRACTED\FOLDER 進入解壓縮後的資料夾
在視窗中執行 start-ollama.bat 即可啟動 Ollama Serve

 

四、安裝模型

回到原來命令列,使用以下方式設置模型:

ollama run openhermes:7b-mistral-v2.5-q4_K_M

 

* 只要支援中文的模型,內容都會被和諧,講不出垃圾話,還是原生的英文最沒有拒絕回答的傾向,雖然新版模型文字上很優雅,但 OpenHermes 還是最合我的味道

題外話, NVIDIA RTX 2060 6G 下

經測試,q4_K_M 約 4.13 G,適合 6G 顯卡使用

q5_K_M 約 5.1 G,6G 會稍微吃緊

效能比 3050 8G 要好,當然 8 G 的話能吃的上下文就更多了 

 

五、 完成連接

 


 

 

  1. 回到 SillyTavern 瀏覽器頁面。
  2. 點擊上方插頭圖示 (API Connections)。
  3. API 類型選擇 Ollama。
  4. API URL 確認為 http://127.0.0.1:11434。
  5. 點擊 Connect,燈號變綠即大功告成!


AI 伴侶角色卡與設定內容未完待續...