From 524eea3312ebc07fd6e1dc94594d33c6a69d5ef5 Mon Sep 17 00:00:00 2001
From: curtis <curtis@i-mps.com>
Date: 星期二, 31 三月 2026 09:32:51 +0800
Subject: [PATCH] fix: 型別更新 1) 新增 TShape, TMemo, TMenuItem, TImageScrollBox 2) 理清 Delphi 相依使用: IISUnit, MPSBarcode, IISImageProcess 3) 方法說明/Mermaid 生成
---
reassemble/CB_IMGPSScanImp.lfcycle.pas | 56 +++++++++++++++++++++++++++++++++-----------------------
1 files changed, 33 insertions(+), 23 deletions(-)
diff --git a/reassemble/CB_IMGPSScanImp.lfcycle.pas b/reassemble/CB_IMGPSScanImp.lfcycle.pas
index 30e973a..bb4c0ee 100644
--- a/reassemble/CB_IMGPSScanImp.lfcycle.pas
+++ b/reassemble/CB_IMGPSScanImp.lfcycle.pas
@@ -80,12 +80,14 @@
{ ==============================================================================
- 方法名稱:DestroyEvent
- 引用相依:_DelTree
- 方法描述:銷毀元件時的清理工作。負責釋放大量的 TStringList 物件,包含各類資訊清
- 單(表單、規則、註記、工作、影像路徑、條碼等)。針對特定模式(DSCAN/ESCAN),若
- ImagePath 不為空則刪除該目錄及其子目錄。最後觸發 COM 介面的 OnDestro
- y 事件。
+ 方法名稱 : DestroyEvent
+ 引用相依 : _DelTree
+ 方法描述 : 【元件銷毀與資源釋放】
+ 這是控制項卸載時的關鍵清理程序。
+ 1. 內存釋放:逐一釋放數十個 TStringList 清單物件,避免記憶體洩漏。
+ 2. 暫存清理:針對重掃 (DSCAN) 與補件 (ESCAN) 模式,自動刪除本地的
+ ImagePath 暫存目錄。
+ 3. 事件通知:觸發 COM 介面的 OnDestroy,通知容器元件已移除。
============================================================================== }
procedure TCB_IMGPSScanX.DestroyEvent(Sender: TObject);
begin
@@ -183,11 +185,13 @@
{ ==============================================================================
- 方法名稱:ActiveFormCreate
- 引用相依:
- 方法描述:ActiveForm 建立時的初始化處理。發送啟動訊息、設定預設檢視模式並初始化
- 影像顯示區域。遍歷所有影像捲軸盒(ISB),設定預設滑鼠模式為 mmUser 並將
- 縮放模式設為全頁顯示,最後延遲啟動 Timer。
+ 方法名稱 : ActiveFormCreate
+ 引用相依 : TImageScrollBox, Timer1
+ 方法描述 : 【ActiveForm 初始化啟動】
+ 在控制項建立後執行初步 UI 配置。
+ 1. 元件校正:遍歷 8 個影像顯示容器,重置其滑鼠模式與縮放倍率。
+ 2. 非同步啟動:開啟 Timer1 執行後續耗時的伺服器資料同步作業,
+ 以確保 UI 不會因網路請求而產生長時間凍結。
============================================================================== }
procedure TCB_IMGPSScanX.ActiveFormCreate(Sender: TObject);
var IScrollBox : TImageScrollBox;
@@ -224,11 +228,14 @@
{ ==============================================================================
- 方法名稱:InitialLanguage
- 引用相依:
- 方法描述:元件多國語言初始化核心函式。讀取 Language.Lng 設定檔,根據指定的語系遞
- 迴設定畫面上所有控制項(按鈕、選單、標籤、清單、群組框等)的 Caption 或 Hi
- nt 文字,實現介面語系動態切換。
+ 方法名稱 : InitialLanguage
+ 引用相依 : TMeminifile, LngPath
+ 方法描述 : 【介面語言動態載入】
+ 根據全域變數 FLanguage 讀取 Language.Lng 設定檔。
+ 1. 遍歷元件:使用 RTTI 遍歷畫面上所有的 Button, Label, MenuItem,
+ ListView 等控制項。
+ 2. 標籤映射:依據「表單名.控制項名」從 INI 讀取對應語系字串。
+ 3. 介面更新:即時套用至 Caption 或 Hint,實現無縫的多國語言切換。
============================================================================== }
procedure TCB_IMGPSScanX.InitialLanguage(Sender: TObject);
var
@@ -310,13 +317,16 @@
{ ==============================================================================
- 方法名稱:Timer1Timer
- 引用相依:FJpgCompression, GetLocalAppDir, Str2Dir, _DelTree, FileExists, init
- kscan
- 方法描述:OCX 元件初始化的核心程序。負責從伺服器下載各類基礎資訊(業務、表單、文件
- 、檢核規則、常用片語、系統參數等),並設定本地暫存路徑(ScanTemp)。針對異動
- 或重掃模式,會自動建立空案件並下載既有影像。最後執行各類屬性與語系設定
- ,確保掃描環境就緒。
+ 方法名稱 : Timer1Timer
+ 引用相依 : API 系列 (GetSetInf), ImagePath, InitialLanguage, LoadImgFile
+ 方法描述 : 【系統啟動與環境同步核心邏輯】
+ 這是 OCX 載入後最重要的初始化階段。
+ 1. 模式判定:根據 FMode 開關特定的 UI 功能按鈕(如補件、傳送)。
+ 2. 規格下載:調用 api.pas 的系列方法獲取最新的表單、規則與全域參數。
+ 3. 暫存路徑建立:根據單位、模式動態產生實體磁碟目錄 (Scantemp)。
+ 4. 業務初始化:若為異動/重掃模式,執行既有影像下載 (DownLoadImage)
+ 與目錄預建。
+ 5. 載入影像:完成所有規格同步後,正式執行 LoadImgFile 呈現案件內容。
============================================================================== }
procedure TCB_IMGPSScanX.Timer1Timer(Sender: TObject);
var
--
Gitblit v1.8.0