reassemble/view/misc.pas
@@ -1,9 +1,16 @@
{ ==============================================================================
  方法名稱:Initialize
  引用相依:TDibGraphic
  方法描述:初始化元件狀態。註冊各類視窗與滑鼠事件處理函式(如 OnActivate, OnClick
            , OnCreate 等),並設定多項預設參數,包含 MpsKey、瀏覽窗邊界、檔案副檔名、
            案件與表單編號長度、去直線容忍值及切圖條碼類型。
  方法描述:【元件核心初始化】
            執行繼承之初始化程序並配置控制項全域參數。
            1. 事件掛載:連結 Delphi 表單生命週期事件 (OnCreate, OnDestroy, OnActivate)
               與使用者互動事件 (OnClick, OnKeyPress, MouseEnter/Leave)。
            2. 系統變數配置:
               - MpsKey: 設定通訊與加密用的金鑰 ('fbim')。
               - Seg/SafePixel: 定義檢視區域邊界與處理安全像素。
               - Ext: 預設影像副檔名為 '.tif'。
            3. 業務長度規範:設定案件編號 (16碼) 與表單編號 (15碼) 的預設辨識長度。
            4. 影像處理參數:設定去直線容忍值 (Bt=4) 與觸發 A3 裁切的特定條碼代碼 ('CC')。
============================================================================== }
procedure TCB_IMGPSScanX.Initialize;
begin
@@ -33,7 +40,8 @@
{ ==============================================================================
  方法名稱:Get_Active
  引用相依:
  方法描述:獲取元件的 Active 狀態。
  方法描述:【COM 屬性讀取:Active】
            獲取目前 ActiveX 控制項的 Active 啟動狀態,回傳 WordBool 類型。
============================================================================== }
function TCB_IMGPSScanX.Get_Active: WordBool;
begin
@@ -44,7 +52,8 @@
{ ==============================================================================
  方法名稱:Get_AlignDisabled
  引用相依:
  方法描述:獲取元件的 AlignDisabled 狀態。
  方法描述:【COM 屬性讀取:AlignDisabled】
            獲取目前控制項是否已停用對齊功能 (AlignDisabled),回傳 WordBool 類型。
============================================================================== }
function TCB_IMGPSScanX.Get_AlignDisabled: WordBool;
begin
@@ -55,7 +64,8 @@
{ ==============================================================================
  方法名稱:Get_AlignWithMargins
  引用相依:
  方法描述:獲取元件的 AlignWithMargins 狀態。
  方法描述:【COM 屬性讀取:AlignWithMargins】
            獲取控制項是否啟用邊界對齊 (AlignWithMargins) 設定。
============================================================================== }
function TCB_IMGPSScanX.Get_AlignWithMargins: WordBool;
begin
@@ -66,7 +76,8 @@
{ ==============================================================================
  方法名稱:Get_AutoScroll
  引用相依:
  方法描述:獲取元件的 AutoScroll 狀態。
  方法描述:【COM 屬性讀取:AutoScroll】
            獲取控制項是否在內容超出時自動顯示捲軸 (AutoScroll)。
============================================================================== }
function TCB_IMGPSScanX.Get_AutoScroll: WordBool;
begin
@@ -77,7 +88,8 @@
{ ==============================================================================
  方法名稱:Get_AutoSize
  引用相依:
  方法描述:獲取元件的 AutoSize 狀態。
  方法描述:【COM 屬性讀取:AutoSize】
            獲取控制項是否根據內容自動調整大小 (AutoSize)。
============================================================================== }
function TCB_IMGPSScanX.Get_AutoSize: WordBool;
begin
@@ -88,7 +100,8 @@
{ ==============================================================================
  方法名稱:Get_AxBorderStyle
  引用相依:
  方法描述:獲取元件的 AxBorderStyle 邊框樣式。
  方法描述:【COM 屬性讀取:AxBorderStyle】
            獲取 ActiveX 元件的邊框樣式,將 TxActiveFormBorderStyle 轉為 Ord 整數。
============================================================================== }
function TCB_IMGPSScanX.Get_AxBorderStyle: TxActiveFormBorderStyle;
begin
@@ -99,7 +112,8 @@
{ ==============================================================================
  方法名稱:Get_Caption
  引用相依:
  方法描述:獲取元件的標題文字。
  方法描述:【COM 屬性讀取:Caption】
            獲取目前控制項的標題文字,轉換為 WideString 格式以符合 COM 標準。
============================================================================== }
function TCB_IMGPSScanX.Get_Caption: WideString;
begin
@@ -110,7 +124,8 @@
{ ==============================================================================
  方法名稱:Get_Color
  引用相依:
  方法描述:獲取元件的背景顏色。
  方法描述:【COM 屬性讀取:Color】
            獲取目前控制項的背景顏色,轉換為 OLE_COLOR 數值格式。
============================================================================== }
function TCB_IMGPSScanX.Get_Color: OLE_COLOR;
begin
@@ -121,7 +136,8 @@
{ ==============================================================================
  方法名稱:Get_DockSite
  引用相依:
  方法描述:獲取元件的 DockSite 狀態。
  方法描述:【COM 屬性讀取:DockSite】
            獲取目前控制項是否作為停靠站 (DockSite) 接收其他元件。
============================================================================== }
function TCB_IMGPSScanX.Get_DockSite: WordBool;
begin
@@ -132,7 +148,8 @@
{ ==============================================================================
  方法名稱:Get_DoubleBuffered
  引用相依:
  方法描述:獲獲取元件的 DoubleBuffered 狀態。
  方法描述:【COM 屬性讀取:DoubleBuffered】
            獲取控制項是否啟用雙重緩衝繪圖 (DoubleBuffered) 以減少閃爍。
============================================================================== }
function TCB_IMGPSScanX.Get_DoubleBuffered: WordBool;
begin
@@ -143,7 +160,8 @@
{ ==============================================================================
  方法名稱:Get_DropTarget
  引用相依:
  方法描述:獲取元件的 DropTarget 狀態。
  方法描述:【COM 屬性讀取:DropTarget】
            獲取控制項是否作為拖放目標 (DropTarget) 接收外部檔案或物件。
============================================================================== }
function TCB_IMGPSScanX.Get_DropTarget: WordBool;
begin
@@ -154,7 +172,8 @@
{ ==============================================================================
  方法名稱:Get_Enabled
  引用相依:
  方法描述:獲取元件的啟用狀態。
  方法描述:【COM 屬性讀取:Enabled】
            獲取控制項目前的啟用或禁用狀態。
============================================================================== }
function TCB_IMGPSScanX.Get_Enabled: WordBool;
begin
@@ -165,7 +184,8 @@
{ ==============================================================================
  方法名稱:Get_ExplicitHeight
  引用相依:
  方法描述:獲取元件的明確高度。
  方法描述:【COM 屬性讀取:ExplicitHeight】
            獲取控制項在設計階段或被強制指定的明確高度數值。
============================================================================== }
function TCB_IMGPSScanX.Get_ExplicitHeight: Integer;
begin
@@ -176,7 +196,8 @@
{ ==============================================================================
  方法名稱:Get_ExplicitLeft
  引用相依:
  方法描述:獲取元件的明確左座標。
  方法描述:【COM 屬性讀取:ExplicitLeft】
            獲取控制項相對於父容器的明確左方位置。
============================================================================== }
function TCB_IMGPSScanX.Get_ExplicitLeft: Integer;
begin
@@ -187,7 +208,8 @@
{ ==============================================================================
  方法名稱:Get_ExplicitTop
  引用相依:
  方法描述:獲取元件的明確頂座標。
  方法描述:【COM 屬性讀取:ExplicitTop】
            獲取控制項相對於父容器的明確上方位置。
============================================================================== }
function TCB_IMGPSScanX.Get_ExplicitTop: Integer;
begin
@@ -198,7 +220,8 @@
{ ==============================================================================
  方法名稱:Get_ExplicitWidth
  引用相依:
  方法描述:獲取元件的明確寬度。
  方法描述:【COM 屬性讀取:ExplicitWidth】
            獲取控制項目前的明確寬度數值。
============================================================================== }
function TCB_IMGPSScanX.Get_ExplicitWidth: Integer;
begin
@@ -209,7 +232,8 @@
{ ==============================================================================
  方法名稱:Get_Font
  引用相依:
  方法描述:獲取元件的字型。
  方法描述:【COM 屬性讀取:Font】
            利用 GetOleFont 將 Delphi VCL 字型物件轉換為 COM 標準的 IFontDisp 介面。
============================================================================== }
function TCB_IMGPSScanX.Get_Font: IFontDisp;
begin
@@ -220,7 +244,8 @@
{ ==============================================================================
  方法名稱:Get_HelpFile
  引用相依:
  方法描述:獲取元件的說明檔路徑。
  方法描述:【COM 屬性讀取:HelpFile】
            獲取目前元件關連的說明文件檔案路徑。
============================================================================== }
function TCB_IMGPSScanX.Get_HelpFile: WideString;
begin
@@ -231,7 +256,8 @@
{ ==============================================================================
  方法名稱:Get_KeyPreview
  引用相依:
  方法描述:獲取元件的鍵盤預覽狀態。
  方法描述:【COM 屬性讀取:KeyPreview】
            獲取控制項是否優先攔截鍵盤事件 (KeyPreview) 再傳送至子元件。
============================================================================== }
function TCB_IMGPSScanX.Get_KeyPreview: WordBool;
begin
@@ -242,7 +268,8 @@
{ ==============================================================================
  方法名稱:Get_MouseInClient
  引用相依:
  方法描述:獲取滑鼠是否在元件內部區域。
  方法描述:【COM 屬性讀取:MouseInClient】
            動態獲取滑鼠目前是否正處於控制項的客戶區域 (Client Area) 內。
============================================================================== }
function TCB_IMGPSScanX.Get_MouseInClient: WordBool;
begin
@@ -253,7 +280,8 @@
{ ==============================================================================
  方法名稱:Get_ParentCustomHint
  引用相依:
  方法描述:獲取元件的 ParentCustomHint 狀態。
  方法描述:【COM 屬性讀取:ParentCustomHint】
            獲取元件是否繼承父視窗的自定義提示訊息設定。
============================================================================== }
function TCB_IMGPSScanX.Get_ParentCustomHint: WordBool;
begin
@@ -264,7 +292,8 @@
{ ==============================================================================
  方法名稱:Get_ParentDoubleBuffered
  引用相依:
  方法描述:獲取元件的 ParentDoubleBuffered 狀態。
  方法描述:【COM 屬性讀取:ParentDoubleBuffered】
            獲取元件是否繼承父視窗的雙重緩衝繪圖設定。
============================================================================== }
function TCB_IMGPSScanX.Get_ParentDoubleBuffered: WordBool;
begin
@@ -275,7 +304,8 @@
{ ==============================================================================
  方法名稱:Get_PixelsPerInch
  引用相依:
  方法描述:獲取元件的 PixelsPerInch 設定。
  方法描述:【COM 屬性讀取:PixelsPerInch】
            獲取控制項目前設定的 DPI 解析度 (每英吋像素數)。
============================================================================== }
function TCB_IMGPSScanX.Get_PixelsPerInch: Integer;
begin
@@ -286,7 +316,8 @@
{ ==============================================================================
  方法名稱:Get_PopupMode
  引用相依:
  方法描述:獲取元件的彈出視窗模式。
  方法描述:【COM 屬性讀取:PopupMode】
            獲取控制項的彈出視窗行為模式 (如 Auto, Explicit, MainForm)。
============================================================================== }
function TCB_IMGPSScanX.Get_PopupMode: TxPopupMode;
begin
@@ -297,7 +328,8 @@
{ ==============================================================================
  方法名稱:Get_PrintScale
  引用相依:
  方法描述:獲取元件的列印縮放比例。
  方法描述:【COM 屬性讀取:PrintScale】
            獲取控制項在執行列印動作時的預設縮放比例設定。
============================================================================== }
function TCB_IMGPSScanX.Get_PrintScale: TxPrintScale;
begin
@@ -308,7 +340,8 @@
{ ==============================================================================
  方法名稱:Get_Scaled
  引用相依:
  方法描述:獲取元件的 Scaled 縮放狀態。
  方法描述:【COM 屬性讀取:Scaled】
            獲取控制項是否隨系統字型或 DPI 進行自動縮放調整。
============================================================================== }
function TCB_IMGPSScanX.Get_Scaled: WordBool;
begin
@@ -319,7 +352,8 @@
{ ==============================================================================
  方法名稱:Get_ScreenSnap
  引用相依:
  方法描述:獲取元件的 ScreenSnap 狀態。
  方法描述:【COM 屬性讀取:ScreenSnap】
            獲取視窗是否啟動靠近螢幕邊界自動吸附功能。
============================================================================== }
function TCB_IMGPSScanX.Get_ScreenSnap: WordBool;
begin
@@ -330,7 +364,8 @@
{ ==============================================================================
  方法名稱:Get_SnapBuffer
  引用相依:
  方法描述:獲取元件的 SnapBuffer 設定。
  方法描述:【COM 屬性讀取:SnapBuffer】
            獲取視窗吸附功能作用的像素緩衝區距離。
============================================================================== }
function TCB_IMGPSScanX.Get_SnapBuffer: Integer;
begin
@@ -341,7 +376,8 @@
{ ==============================================================================
  方法名稱:Get_UseDockManager
  引用相依:
  方法描述:獲取元件是否使用 Dock 管理。
  方法描述:【COM 屬性讀取:UseDockManager】
            獲取控制項是否由 Dock Manager 統一管理停靠介面。
============================================================================== }
function TCB_IMGPSScanX.Get_UseDockManager: WordBool;
begin
@@ -352,7 +388,8 @@
{ ==============================================================================
  方法名稱:Get_Visible
  引用相依:
  方法描述:獲取元件的顯示狀態。
  方法描述:【COM 屬性讀取:Visible】
            獲取控制項目前在介面上是否處於可見狀態。
============================================================================== }
function TCB_IMGPSScanX.Get_Visible: WordBool;
begin
@@ -363,7 +400,8 @@
{ ==============================================================================
  方法名稱:Get_VisibleDockClientCount
  引用相依:
  方法描述:獲取元件的可見 Dock 客戶端數量。
  方法描述:【COM 屬性讀取:VisibleDockClientCount】
            獲取目前已停靠在控制項上的可見客戶端數量。
============================================================================== }
function TCB_IMGPSScanX.Get_VisibleDockClientCount: Integer;
begin
@@ -374,7 +412,9 @@
{ ==============================================================================
  方法名稱:_Set_Font
  引用相依:
  方法描述:設定元件的字型。
  方法描述:【COM 屬性設定:Font】
            利用 SetOleFont 將傳入的 COM IFontDisp 介面轉換並套用至元件的 VCL
            Font 屬性。
============================================================================== }
procedure TCB_IMGPSScanX._Set_Font(var Value: IFontDisp);
begin
@@ -384,9 +424,11 @@
{ ==============================================================================
  方法名稱:mode1Click
  引用相依:
  方法描述:切換至檢視模式 0(單頁顯示),呼叫 GoViewMode 更新佈局,並隱藏 Panel14
            控制面版。
  引用相依:GoViewMode
  方法描述:【切換至單頁檢視模式】
            1. 設定檢視模式索引 VMode := 0。
            2. 呼叫 GoViewMode 重新計算並排列影像顯示容器。
            3. 隱藏影像微調控制面板 (Panel14)。
============================================================================== }
procedure TCB_IMGPSScanX.mode1Click(Sender: TObject);
begin
@@ -399,9 +441,11 @@
{ ==============================================================================
  方法名稱:mode2Click
  引用相依:
  方法描述:切換至檢視模式 1(兩頁顯示),呼叫 GoViewMode 更新佈局,並顯示 Panel14
            控制面版。
  引用相依:GoViewMode
  方法描述:【切換至雙頁檢視模式】
            1. 設定檢視模式索引 VMode := 1。
            2. 呼叫 GoViewMode 重新排列影像顯示容器,實現左右對照佈局。
            3. 顯示影像微調控制面板 (Panel14),提供對比與亮度調整。
============================================================================== }
procedure TCB_IMGPSScanX.mode2Click(Sender: TObject);
begin
@@ -414,9 +458,11 @@
{ ==============================================================================
  方法名稱:mode3Click
  引用相依:
  方法描述:切換至檢視模式 2(多頁網格顯示),呼叫 GoViewMode 更新佈局,並觸發捲軸變
            動以重新載入影像。
  引用相依:GoViewMode, ScrollBar1Change
  方法描述:【切換至 2x2 網格檢視模式】
            1. 設定檢視模式索引 VMode := 2。
            2. 呼叫 GoViewMode 排列為 2x2 的顯示格位。
            3. 觸發 ScrollBar1Change 以根據當前捲軸位置重新載入並顯示影像預覽。
============================================================================== }
procedure TCB_IMGPSScanX.mode3Click(Sender: TObject);
begin
@@ -428,9 +474,11 @@
{ ==============================================================================
  方法名稱:mode4Click
  引用相依:
  方法描述:切換至檢視模式 3(自定義檢視模式),呼叫 GoViewMode 更新佈局,並觸發捲軸
            變動以重新載入影像。
  引用相依:GoViewMode, ScrollBar1Change
  方法描述:【切換至 2x3 網格檢視模式】
            1. 設定檢視模式索引 VMode := 3。
            2. 呼叫 GoViewMode 排列為 2x3 的多頁顯示格位。
            3. 觸發 ScrollBar1Change 同步更新顯示內容。
============================================================================== }
procedure TCB_IMGPSScanX.mode4Click(Sender: TObject);
begin
@@ -443,7 +491,8 @@
{ ==============================================================================
  方法名稱:Set_AlignWithMargins
  引用相依:
  方法描述:設定元件的 AlignWithMargins 屬性。
  方法描述:【COM 屬性寫入:AlignWithMargins】
            同步更新 VCL 控制項的邊距對齊設定。
============================================================================== }
procedure TCB_IMGPSScanX.Set_AlignWithMargins(Value: WordBool);
begin
@@ -454,7 +503,8 @@
{ ==============================================================================
  方法名稱:Set_AutoScroll
  引用相依:
  方法描述:設定元件的 AutoScroll 屬性。
  方法描述:【COM 屬性寫入:AutoScroll】
            同步更新控制項是否自動啟用內容捲動條。
============================================================================== }
procedure TCB_IMGPSScanX.Set_AutoScroll(Value: WordBool);
begin
@@ -465,7 +515,8 @@
{ ==============================================================================
  方法名稱:Set_AutoSize
  引用相依:
  方法描述:設定元件的 AutoSize 屬性。
  方法描述:【COM 屬性寫入:AutoSize】
            同步更新控制項是否根據子元件佈局自動調整外部大小。
============================================================================== }
procedure TCB_IMGPSScanX.Set_AutoSize(Value: WordBool);
begin
@@ -476,7 +527,8 @@
{ ==============================================================================
  方法名稱:Set_AxBorderStyle
  引用相依:
  方法描述:設定元件的 AxBorderStyle 屬性。
  方法描述:【COM 屬性寫入:AxBorderStyle】
            設定 ActiveX 控制項的邊框風格,執行 Ord 整數與列舉值的轉換。
============================================================================== }
procedure TCB_IMGPSScanX.Set_AxBorderStyle(Value: TxActiveFormBorderStyle);
begin
@@ -487,7 +539,8 @@
{ ==============================================================================
  方法名稱:Set_Caption
  引用相依:
  方法描述:設定元件的標題文字。
  方法描述:【COM 屬性寫入:Caption】
            接收 COM 傳入的 WideString 並套用至控制項標題。
============================================================================== }
procedure TCB_IMGPSScanX.Set_Caption(const Value: WideString);
begin
@@ -498,7 +551,8 @@
{ ==============================================================================
  方法名稱:Set_Color
  引用相依:
  方法描述:設定元件的背景顏色。
  方法描述:【COM 屬性寫入:Color】
            將 OLE_COLOR 值轉換為 VCL TColor 並更新背景色。
============================================================================== }
procedure TCB_IMGPSScanX.Set_Color(Value: OLE_COLOR);
begin
@@ -509,7 +563,8 @@
{ ==============================================================================
  方法名稱:Set_DockSite
  引用相依:
  方法描述:設定元件的 DockSite 屬性。
  方法描述:【COM 屬性寫入:DockSite】
            動態啟用或關閉控制項的停靠容器特性。
============================================================================== }
procedure TCB_IMGPSScanX.Set_DockSite(Value: WordBool);
begin
@@ -520,7 +575,8 @@
{ ==============================================================================
  方法名稱:Set_DoubleBuffered
  引用相依:
  方法描述:設定元件的 DoubleBuffered 屬性。
  方法描述:【COM 屬性寫入:DoubleBuffered】
            切換繪圖緩衝模式,用於優化大量影像捲動時的流暢度。
============================================================================== }
procedure TCB_IMGPSScanX.Set_DoubleBuffered(Value: WordBool);
begin
@@ -531,7 +587,8 @@
{ ==============================================================================
  方法名稱:Set_DropTarget
  引用相依:
  方法描述:設定元件的 DropTarget 屬性。
  方法描述:【COM 屬性寫入:DropTarget】
            啟用或禁用控制項接收檔案拖放的功能。
============================================================================== }
procedure TCB_IMGPSScanX.Set_DropTarget(Value: WordBool);
begin
@@ -542,7 +599,8 @@
{ ==============================================================================
  方法名稱:Set_Enabled
  引用相依:
  方法描述:設定元件的啟用狀態。
  方法描述:【COM 屬性寫入:Enabled】
            控制 ActiveX 控制項及其所有子視窗的互動狀態。
============================================================================== }
procedure TCB_IMGPSScanX.Set_Enabled(Value: WordBool);
begin
@@ -553,7 +611,8 @@
{ ==============================================================================
  方法名稱:Set_Font
  引用相依:
  方法描述:設定元件的字型。
  方法描述:【COM 屬性寫入:Font】
            利用 SetOleFont 轉換介面指標並同步更新全域字型設定。
============================================================================== }
procedure TCB_IMGPSScanX.Set_Font(const Value: IFontDisp);
begin
@@ -564,7 +623,8 @@
{ ==============================================================================
  方法名稱:Set_HelpFile
  引用相依:
  方法描述:設定元件的說明檔路徑。
  方法描述:【COM 屬性寫入:HelpFile】
            設定與系統說明按鈕關連的本地或網路路徑。
============================================================================== }
procedure TCB_IMGPSScanX.Set_HelpFile(const Value: WideString);
begin
@@ -575,7 +635,8 @@
{ ==============================================================================
  方法名稱:Set_KeyPreview
  引用相依:
  方法描述:設定元件的鍵盤預覽狀態。
  方法描述:【COM 屬性寫入:KeyPreview】
            配置鍵盤攔截優先權。
============================================================================== }
procedure TCB_IMGPSScanX.Set_KeyPreview(Value: WordBool);
begin
@@ -586,7 +647,8 @@
{ ==============================================================================
  方法名稱:Set_ParentCustomHint
  引用相依:
  方法描述:設定元件的 ParentCustomHint 屬性。
  方法描述:【COM 屬性寫入:ParentCustomHint】
            設定是否跟隨父層元件的提示外觀。
============================================================================== }
procedure TCB_IMGPSScanX.Set_ParentCustomHint(Value: WordBool);
begin
@@ -597,7 +659,8 @@
{ ==============================================================================
  方法名稱:Set_ParentDoubleBuffered
  引用相依:
  方法描述:設定元件的 ParentDoubleBuffered 屬性。
  方法描述:【COM 屬性寫入:ParentDoubleBuffered】
            設定是否跟隨父層元件的緩衝繪圖邏輯。
============================================================================== }
procedure TCB_IMGPSScanX.Set_ParentDoubleBuffered(Value: WordBool);
begin
@@ -608,7 +671,8 @@
{ ==============================================================================
  方法名稱:Set_PixelsPerInch
  引用相依:
  方法描述:設定元件的 PixelsPerInch 屬性。
  方法描述:【COM 屬性寫入:PixelsPerInch】
            設定控制項的設計參考解析度。
============================================================================== }
procedure TCB_IMGPSScanX.Set_PixelsPerInch(Value: Integer);
begin
@@ -619,7 +683,8 @@
{ ==============================================================================
  方法名稱:Set_PopupMode
  引用相依:
  方法描述:設定元件的彈出視窗模式。
  方法描述:【COM 屬性寫入:PopupMode】
            設定 ActiveX 內嵌視窗的彈出層級行為。
============================================================================== }
procedure TCB_IMGPSScanX.Set_PopupMode(Value: TxPopupMode);
begin
@@ -685,7 +750,8 @@
{ ==============================================================================
  方法名稱:Set_Visible
  引用相依:
  方法描述:設定元件的顯示狀態。
  方法描述:【COM 屬性寫入:Visible】
            直接控制 ActiveX 元件在瀏覽器中的呈現與隱藏。
============================================================================== }
procedure TCB_IMGPSScanX.Set_Visible(Value: WordBool);
begin
@@ -695,9 +761,12 @@
{ ==============================================================================
  方法名稱:N1Click
  引用相依:
  方法描述:彈出對話框要求使用者輸入目標頁碼,呼叫 MoveImage 將當前顯示的影像移動
            到指定的位置。
  引用相依:InputBox, MoveImage, strtoint
  方法描述:【執行影像頁碼搬移】
            當使用者點選選單中的「移動頁數」時:
            1. 彈出 InputBox 詢問目標頁碼。
            2. 若輸入有效數值,呼叫 MoveImage 將目前選中的影像檔案實體搬移至指定
               序號位置,實現影像重排序功能。
============================================================================== }
procedure TCB_IMGPSScanX.N1Click(Sender: TObject);
var
@@ -713,9 +782,11 @@
{ ==============================================================================
  方法名稱:N51Click
  引用相依:
  方法描述:切換至檢視模式 4,呼叫 GoViewMode 更新佈局,並觸發捲軸變動以重新載入影
            像。
  引用相依:GoViewMode, ScrollBar1Change
  方法描述:【切換至 2x4 網格檢視模式】
            1. 設定檢視模式索引 VMode := 4。
            2. 呼叫 GoViewMode 排列為 2x4 的多頁緊湊顯示佈局。
            3. 更新捲軸狀態以重繪影像。
============================================================================== }
procedure TCB_IMGPSScanX.N51Click(Sender: TObject);
begin
@@ -728,7 +799,8 @@
{ ==============================================================================
  方法名稱:Panel11DblClick
  引用相依:
  方法描述:Panel11 的連按兩下事件,目前實作已註解掉。
  方法描述:【輔助控制面板雙擊事件】
            目前實作為預留空殼,用於未來擴充按鈕顯示或自定義文件模式切換。
============================================================================== }
procedure TCB_IMGPSScanX.Panel11DblClick(Sender: TObject);
begin
@@ -741,7 +813,9 @@
{ ==============================================================================
  方法名稱:Panel1DblClick
  引用相依:
  方法描述:Panel1 的連按兩下事件,用於切換 Button1 與 Button2 的顯示狀態。
  方法描述:【工程師隱藏開關】
            連按兩下 Panel1 會切換 Button1 與 Button2 的顯示狀態,這通常是用於開發
            者測試用的隱藏偵錯按鈕。
============================================================================== }
procedure TCB_IMGPSScanX.Panel1DblClick(Sender: TObject);
begin
@@ -752,8 +826,10 @@
{ ==============================================================================
  方法名稱:Panel9Resize
  引用相依:
  方法描述:當 Panel9 大小改變時,呼叫 GoViewMode 重新調整影像佈局。
  引用相依:GoViewMode
  方法描述:【佈局自適應調整】
            當主顯示面板 Panel9 大小改變(如縮放視窗)時,觸發 GoViewMode 重新計算
            格位大小,確保影像顯示視窗能填滿可用空間。
============================================================================== }
procedure TCB_IMGPSScanX.Panel9Resize(Sender: TObject);
begin
@@ -763,10 +839,12 @@
{ ==============================================================================
  方法名稱:DocNoIsExistImg
  引用相依:FileExists, LoadFromFile
  方法描述:檢查指定的文件目錄路徑下是否存在影像檔案。首先讀取目錄中的 Context.da
            t 檔案,接著遍歷清單中的所有檔名並檢查實際檔案是否存在。若發現任何一個
            影像檔案存在則回傳 False(表示非空),否則回傳 True。
  引用相依:FileExists, ISExistImg, TStringList
  方法描述:【文件目錄影像存在性判定】
            1. 檢查目標路徑下的索引檔 Context.dat。
            2. 遍歷索引中紀錄的所有影像檔案。
            3. 若發現任何一個影像檔案實際存在於磁碟上,則回傳 False(代表非空)。
            4. 僅當目錄內完全無對應影像檔時回傳 True,用於目錄清理與空箱判定。
============================================================================== }
function TCB_IMGPSScanX.DocNoIsExistImg(DocNopath:String):boolean;
var
@@ -795,8 +873,9 @@
{ ==============================================================================
  方法名稱:_DelTreeForExistImg
  引用相依:_DelTree
  方法描述:存根方法,目前未包含具體實作邏輯。
  引用相依:
  方法描述:【根據影像存在狀態執行目錄清理】
            目前為空實作,預留供未來實施「僅刪除空目錄」或「條件式刪除案件」時使用。
============================================================================== }
procedure TCB_IMGPSScanX._DelTreeForExistImg(ASourceDir:String);
var
@@ -809,8 +888,11 @@
{ ==============================================================================
  方法名稱:ScrollBar1Change
  引用相依:
  方法描述:捲軸變動處理,目前實作已透過 Exit 暫時停用。
  引用相依:view_image_FormCode
  方法描述:【檢視捲軸變動同步處理】
            當使用者拖曳捲軸時,依據目前在 TreeView 選中的節點層級(案件、文件或單頁)
            計算偏移量,並呼叫 view_image_FormCode 進行批次影像重載與預覽。
            註:目前代碼開頭有 Exit,代表此同步載入機制暫時處於停用狀態。
============================================================================== }
procedure TCB_IMGPSScanX.ScrollBar1Change(Sender: TObject);
begin
@@ -833,10 +915,12 @@
{ ==============================================================================
  方法名稱:ActiveFormKeyUp
  引用相依:
  方法描述:處理 ActiveForm 按鍵放開事件。當文字輸入框取得焦點且有選取影像時,攔截
            上下方向鍵並將其轉化為 PriorPage 或 NextPage 翻頁操作,並同步滾動捲軸
            。
  引用相依:NextPage, PriorPage
  方法描述:【鍵盤翻頁快捷鍵攔截】
            當焦點位於頁碼輸入框 (Edit1) 且有影像被選取時:
            1. 偵測到 VK_UP:呼叫 PriorPage 跳至上一頁,並同步滾動捲軸向上。
            2. 偵測到 VK_Down:呼叫 NextPage 跳至下一頁,並同步滾動捲軸向下。
            實現流暢的鍵盤影像瀏覽體驗。
============================================================================== }
procedure TCB_IMGPSScanX.ActiveFormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
@@ -867,10 +951,14 @@
{ ==============================================================================
  方法名稱:AddAttFileLBClick
  引用相依:FileExists, CopyFile
  方法描述:處理「加入附加電子檔」按鈕點擊。開啟檔案對話框選取多個 PDF 檔案,支援覆
            蓋檢查。執行 CopyFile 將檔案複製到案件目錄下,並呼叫 SetAttContextList
             更新附加檔案清單後載入顯示。
  引用相依:CopyFile, DataLoading, FileExists, HTTPEncode, LoadAttFile,
            Messagedlg, OpenDialog1, SetAttContextList, UTF8Encode
  方法描述:【加入附加 PDF 電子檔】
            1. 呼叫 OpenDialog 選取多個 PDF 檔案。
            2. 遍歷選取的檔案,執行 URL 編碼處理檔名。
            3. 若檔案已存在於案件目錄,提示使用者是否覆蓋。
            4. 使用 CopyFile 將實體檔案複製到案件目錄。
            5. 調用 SetAttContextList 紀錄附件索引,最後呼叫 LoadAttFile 刷新顯示。
============================================================================== }
procedure TCB_IMGPSScanX.AddAttFileLBClick(Sender: TObject);
var
@@ -905,8 +993,12 @@
{ ==============================================================================
  方法名稱:AddCredit1RGClick
  引用相依:
  方法描述:處理信用註記點擊,更新 Case_loandoc 狀態並寫入索引檔。
  引用相依:WriteCaseIndex
  方法描述:【更新信用資訊註記】
            當使用者變更信用註記 RadioGroup 時:
            1. 映射 Index 為 'Y', 'N' 或空字串。
            2. 更新 Case_loandoc 變數。
            3. 呼叫 WriteCaseIndex 立即將此註記同步至本地案件索引檔中。
============================================================================== }
procedure TCB_IMGPSScanX.AddCredit1RGClick(Sender: TObject);
begin
@@ -924,8 +1016,10 @@
{ ==============================================================================
  方法名稱:BtnMouseEnter
  引用相依:
  方法描述:當滑鼠進入按鈕區域時,顯示該按鈕的 Hint 文字提示。
  引用相依:AddToolTip
  方法描述:【按鈕 Hint 文字氣泡提示】
            利用 Windows API 的 ToolTip 機制,在滑鼠滑過 BitBtn 時,將其 Hint 屬性
            的內容動態顯示在浮動視窗中,增強介面引導。
============================================================================== }
procedure TCB_IMGPSScanX.BtnMouseEnter(Sender: TObject);
begin
@@ -1044,7 +1138,7 @@
{ ==============================================================================
  方法名稱:Button5Click
  引用相依:SetFtpInfo, IIS_Ftp
  引用相依:IIS_Ftp, SetFtpInfo
  方法描述:測試 FTP 上傳功能。連線 FTP 後嘗試將特定的 PDF 檔案上傳至伺服器路徑。
============================================================================== }
procedure TCB_IMGPSScanX.Button5Click(Sender: TObject);
@@ -1059,7 +1153,7 @@
{ ==============================================================================
  方法名稱:Button6Click
  引用相依:SetFtpInfo, IIS_Ftp, Rotate, FJpgCompression, Scanner
  引用相依:FJpgCompression, IIS_Ftp, Rotate, Scanner, SetFtpInfo
  方法描述:測試 FTP 下載功能。連線 FTP 後嘗試從伺服器下載 ZIP 案件檔至本地。
============================================================================== }
procedure TCB_IMGPSScanX.Button6Click(Sender: TObject);
@@ -1076,7 +1170,7 @@
{ ==============================================================================
  方法名稱:ExportBtClick
  引用相依:SaveToFile, FileExists, En_DecryptionStr_Base64, dnFile, dnFile_Get
  引用相依:En_DecryptionStr_Base64, FileExists, SaveToFile, dnFile, dnFile_Get
  方法描述:處理「匯出授權檔」按鈕點擊。透過 HTTPS 下載掃瞄與檢視用的 .lic 授權檔案
            。將授權檔連同加密的 mps.dat 檔案打包成帶有密碼保護的 mps.zip 壓縮包,
            完成後清理暫存檔並提示路徑。
@@ -1147,8 +1241,8 @@
{ ==============================================================================
  方法名稱:ImportBtClick
  引用相依:Str2Dir, FileExists, LoadFromFile, RenameFile, _DelTree, En_Decrypti
            onStr_Base64, upFile
  引用相依:En_DecryptionStr_Base64, FileExists, LoadFromFile, RenameFile, Str2D
            ir, _DelTree, upFile
  方法描述:處理「匯入授權檔」按鈕點擊。選取 mps.zip 授權包後進行解壓與過期驗證。驗
            證通過後對授權檔執行重新命名,並透過 upFile 函式逐一上傳至伺服器範本
            目錄,過程中會嚴格檢查 Session 與回傳狀態。
@@ -1423,7 +1517,7 @@
{ ==============================================================================
  方法名稱:CaseReSize
  引用相依:ImageReSize_FormID, FileExists, LoadFromFile
  引用相依:FileExists, ImageReSize_FormID, ImageResize, LoadFromFile
  方法描述:對案件執行影像縮放處理。清空舊有的檢核與定位錯誤記錄,隨後遍歷影像清單
            ,對每個檔案執行 ImageReSize_FormID 處理。
============================================================================== }
@@ -1453,8 +1547,8 @@
{ ==============================================================================
  方法名稱:TransCaseID
  引用相依:FileExists, LoadFromFile, CopyFile, FindFirst, _DelTree, upFile, Set
            FtpInfo, IIS_Ftp, FtpCaseComplete
  引用相依:CopyFile, FileExists, FindFirst, FtpCaseComplete, IIS_Ftp, LoadFromF
            ile, SetFtpInfo, _DelTree, upFile
  方法描述:傳送案件核心程序。包含排序影像、產生描述檔(FormID/DocNo對照、OMR資訊、附
            件狀態等)、建立 ZIP 壓縮包(含主圖與遮罩)並檢查大小。最後根據 HTTP 或 F
            TP 模式上傳至伺服器。上傳完成後針對異動模式處理舊件引入,並在最後清理
@@ -1823,8 +1917,8 @@
{ ==============================================================================
  方法名稱:GetNode2Name
  引用相依:FileExists, Str2Dir, SaveToFile, LoadFromFile, DeleteDocNoFile, Copy
            File, DirectoryExists, En_DecryptionStr_Base64, dnFile
  引用相依:CopyFile, DeleteDocNoFile, DirectoryExists, En_DecryptionStr_Base64,
             FileExists, LoadFromFile, SaveToFile, Str2Dir, dnFile
  方法描述:提取文件層級節點的識別名稱字串,用於記錄與恢復節點選取狀態。
============================================================================== }
Function TCB_IMGPSScanX.GetNode2Name(Node2:TTreeNode):String;  //取MyTreeNode2的識別字出來(記之前點選用)
@@ -1949,7 +2043,7 @@
{ ==============================================================================
  方法名稱:DownLoadImage
  引用相依:SetFtpInfo, IIS_Ftp
  引用相依:IIS_Ftp, SetFtpInfo
  方法描述:處理影像下載流程。根據案件上傳/下載方式(HTTP 或 FTP),從伺服器下載對應
            的 ZIP 檔案並解壓縮至本地案件目錄,供後續異動或補件使用。
============================================================================== }
@@ -2002,7 +2096,7 @@
{ ==============================================================================
  方法名稱:Down_Img
  引用相依:FileExists, Str2Dir, En_DecryptionStr_Base64, dnFile_Get, dnFile
  引用相依:En_DecryptionStr_Base64, FileExists, Str2Dir, dnFile, dnFile_Get
  方法描述:透過 HTTPS 從伺服器下載案件影像。下載 ZIP 檔案(含 img.zip 與 att.zip)
            後執行本地解壓縮,將主影像與附件部署至指定目錄。
============================================================================== }
@@ -2062,7 +2156,7 @@
{ ==============================================================================
  方法名稱:GetNoNameCase
  引用相依:GetNoNameCase, DirectoryExists
  引用相依:DirectoryExists, GetNoNameCase
  方法描述:在指定的本地路徑中尋找尚未被佔用的「未配號XXXX」目錄名稱。
============================================================================== }
Function TCB_IMGPSScanX.GetNoNameCase(Path:String):String; //取未配號XXXX
@@ -2082,7 +2176,7 @@
{ ==============================================================================
  方法名稱:CaseResort
  引用相依:LoadFromFile, FileExists, RenameFile, SaveToFile, ReSortFileName
  引用相依:FileExists, LoadFromFile, ReSortFileName, RenameFile, SaveToFile
  方法描述:對案件檔案進行實體重新排序。依據文件清單(Doc_Inf_List)的順序,對主文件
            與次文件進行更名與重新編號,確保檔名序號符合業務邏輯。
============================================================================== }
@@ -2227,7 +2321,7 @@
{ ==============================================================================
  方法名稱:CaseResort2Scanlist
  引用相依:FileExists, LoadFromFile, RenameFile, SaveToFile, ReSortFileName
  引用相依:FileExists, LoadFromFile, ReSortFileName, RenameFile, SaveToFile
  方法描述:產生依表單代號排序的影像清單(scanlist.dat),用於上傳。
============================================================================== }
Procedure TCB_IMGPSScanX.CaseResort2Scanlist(Path:String); //案件的檔案重新排序給scanlist(次文件依FormID排)
@@ -2355,7 +2449,7 @@
{ ==============================================================================
  方法名稱:DistinctDocinCase
  引用相依:LoadFromFile, LoadFileGetMD5
  引用相依:LoadFileGetMD5, LoadFromFile
  方法描述:列出案件目錄下所有具備文件編號與版本的唯一組合。
============================================================================== }
Procedure TCB_IMGPSScanX.DistinctDocinCase(Path:String); //列出案件裡的Docno_版本
@@ -2843,7 +2937,7 @@
{ ==============================================================================
  方法名稱:FormIDReplace
  引用相依:FileExists, LoadFromFile, DirectoryExists, CopyFile, RenameFile, Sav
  引用相依:CopyFile, DirectoryExists, FileExists, LoadFromFile, RenameFile, Sav
            eToFile
  方法描述:將指定文件中的舊表單代碼替換為新代碼。首先決定目標目錄(考慮是否分份數
            、補件狀況),若目標目錄不存在則建立。接著將符合舊代碼的檔案複製到新目錄
@@ -3187,7 +3281,7 @@
{ ==============================================================================
  方法名稱:WriteResize
  引用相依:LoadFromFile, FileExists, SaveToFile
  引用相依:FileExists, GetTag, LoadFromFile, SaveToFile
  方法描述:產生影像縮放記錄檔(Resize.dat)。載入影像後比對原始標記(Tag)中的長寬資
            訊與實際 Graphic 的長寬,若有變動則將差異記錄至文字檔中。
============================================================================== }
@@ -3719,7 +3813,7 @@
{ ==============================================================================
  方法名稱:ScanGrayCBClick
  引用相依:ifGray256, ifBlackWhite, ifTrueColor
  引用相依:ifBlackWhite, ifGray256, ifTrueColor
  方法描述:根據掃瞄勾選框狀態,設定掃瞄色彩模式(灰階、全彩或黑白)。
============================================================================== }
procedure TCB_IMGPSScanX.ScanGrayCBClick(Sender: TObject);
@@ -4180,7 +4274,7 @@
{ ==============================================================================
  方法名稱:UseOldCaseLbClick
  引用相依:FileExists, LoadFromFile, DirectoryExists, CopyFile, SaveToFile
  引用相依:CopyFile, DirectoryExists, FileExists, LoadFromFile, SaveToFile
  方法描述:處理「使用舊件」功能。開啟 TOldCaseInfoForm 讓使用者選擇舊有案件的文件。
            選定後,將舊件影像複製到新案件目錄下,自動產生新序號檔名,建立關聯記錄(
            UseCase.dat),並同步更新新案件的文件清單與樹狀統計。
@@ -4689,7 +4783,7 @@
{ ==============================================================================
  方法名稱:CheckAvailable
  引用相依:FileExists, dnFile_Get, dnFile, upFile
  引用相依:FileExists, dnFile, dnFile_Get, upFile
  方法描述:檢查元件的使用授權。透過 HTTPS 下載掃瞄授權檔,並驗證 MacID、註冊數量與
            使用期限。若尚未註冊且仍有額度,則自動進行註冊並上傳新的授權檔至伺服器
            。最後在狀態列顯示註冊資訊。
@@ -4811,8 +4905,8 @@
{ ==============================================================================
  方法名稱:Case2Mask
  引用相依:FindPoint, DirectoryExists, _DelTree, Str2Dir, LoadFromFile, FileExi
            sts
  引用相依:DirectoryExists, FieldMask, FileExists, FindPoint, LoadFromFile, Sav
            eAnnotation, Str2Dir, _DelTree
  方法描述:產生案件的遮罩影像(用於遮蔽敏感個資)。讀取 Context.dat,針對每張影像尋
            找定位點,並依據對應表單的 XML 定義執行區域遮罩,最後存入指定目錄。
============================================================================== }
@@ -5287,7 +5381,7 @@
{ ==============================================================================
  方法名稱:MoveImage
  引用相依:LoadFromFile, RenameFile, SaveToFile, ReSortFileName
  引用相依:LoadFromFile, ReSortFileName, RenameFile, SaveToFile
  方法描述:執行影像頁面的位置移動。先對目錄下所有檔案進行臨時更名(加上 @ 標記),
            根據選取狀態重新排列清單順序,最後更新 Context.dat 並重新排序實體檔案
            。
@@ -5353,7 +5447,7 @@
{ ==============================================================================
  方法名稱:MoveImage_Drag
  引用相依:LoadFromFile, RenameFile, SaveToFile, ReSortFileName
  引用相依:LoadFromFile, ReSortFileName, RenameFile, SaveToFile
  方法描述:處理影像拖拉移動。邏輯與 MoveImage 相似,但針對單一來源索引移動至目標
            索引的情境進行排列。
============================================================================== }
@@ -5579,7 +5673,7 @@
{ ==============================================================================
  方法名稱:view_image_DocNo
  引用相依:DpiResize, FileExists, LoadFromFile, DirectoryExists
  引用相依:DirectoryExists, DpiResize, FileExists, LoadFromFile
  方法描述:根據文件代號(DocNo)或表單代號(FormID)顯示影像。函式包含三種模式:顯示
            案件內所有影像(ShowAll)、顯示指定文件夾(如 Attach)下的影像,以及顯示指
            定文件代號下特定表單的影像。處理過程中會檢查在席狀態(In_WH)、執行影像