From 8bb66904e8c67aec9ef3654322d2ef9a7a245864 Mon Sep 17 00:00:00 2001
From: doom4ster <doom4ster@gmail.com>
Date: 星期一, 06 三月 2017 10:57:24 +0800
Subject: [PATCH] 新加 DSCAN 為待掃瞄清單所使用

---
 CB_IMGPSScanImp.pas | 3149 ++++++++++++++++++++++++++++++++---------------------------
 1 files changed, 1,703 insertions(+), 1,446 deletions(-)

diff --git a/CB_IMGPSScanImp.pas b/CB_IMGPSScanImp.pas
index d2615cb..898293d 100644
--- a/CB_IMGPSScanImp.pas
+++ b/CB_IMGPSScanImp.pas
@@ -1,4 +1,4 @@
-unit CB_IMGPSScanImp;
+unit CB_IMGPSScanImp;
 
 {$WARN SYMBOL_PLATFORM OFF}
 
@@ -21,25 +21,25 @@
   RejectCase : Boolean;
   ErrIndex : Integer;
 
-  //*****�w�]��*****//
-    Def_DeviceDelete : Boolean;  //�ťխ��R���Ұ�
-    Def_DeviceDeleteSize : Integer;  //�ťխ�Size
-    Def_ScannerReverse : Boolean; //�O�_�ݤϬ�
-    Def_BoardClear : Boolean; //�O�_�M����
-    Def_ScanDpi : Integer;    //����DPI
-    Def_ScanDuplex : Boolean; //�O�_��������
-    Def_ScanRotate : Integer; //���ˮɱ��ਤ��
-    Def_ScanDeskew : Boolean; //�O�_�ɱ��B��
-    Def_ScanBright : Integer; //�G��
-    Def_ScanContrast : Integer; //���
-    Def_ScanImgShowMode : Integer; //0:�M���v�� 1:���M���v�� 2:�����
-    Def_ScanImgSetUse : Boolean; //�O�_�ϥΫG�׹��]�w
-  //*****�w�]��*****//
+  //*****預設區*****//
+    Def_DeviceDelete : Boolean;  //空白頁刪除啟動
+    Def_DeviceDeleteSize : Integer;  //空白頁Size
+    Def_ScannerReverse : Boolean; //是否需反相
+    Def_BoardClear : Boolean; //是否清黑邊
+    Def_ScanDpi : Integer;    //掃瞄DPI
+    Def_ScanDuplex : Boolean; //是否雙面掃瞄
+    Def_ScanRotate : Integer; //掃瞄時旋轉角度
+    Def_ScanDeskew : Boolean; //是否傾斜矯正
+    Def_ScanBright : Integer; //亮度
+    Def_ScanContrast : Integer; //對比
+    Def_ScanImgShowMode : Integer; //0:清楚影像 1:不清楚影像 2:不顯示
+    Def_ScanImgSetUse : Boolean; //是否使用亮度對比設定
+  //*****預設區*****//
 
 Const
   ISBName = 'PreViewISB';
 
-{����ۨ��������һݭn }
+{獲取自身版本號所需要 }
 type
   TVersionLanguage = (vlArabic, vlBulgarian, vlCatalan, vlTraditionalChinese,
      vlCzech, vlDanish, vlGerman, vlGreek, vlUSEnglish, vlCastilianSpanish,
@@ -58,7 +58,7 @@
    $0418, $0419, $041A, $041B, $041C, $041D, $041E, $041F, $0420, $0421,
    $0804, $0807, $0809, $080A, $080C, $0810, $0813, $0814, $0816, $081A,
    $0C0C, $100C, $0000);
-{����ۨ��������һݭn end}
+{獲取自身版本號所需要 end}
 
 
 type
@@ -72,8 +72,8 @@
     ImageCount : LongInt;
   end;
   TOMRErrInfo = record
-    Display : Boolean;  //�O�_���
-    Ignore : Boolean; //�i�_�R��
+    Display : Boolean;  //是否顯示
+    Ignore : Boolean; //可否刪除
     Info : String;
     Mode : String;
   end;
@@ -374,10 +374,10 @@
     { Private declarations }
     HotKeyId1,HotKeyId2,HotKeyId3,HotKeyId4 :Integer;
 
-    ////////�ǤJ�Ѽ�/////////
+    ////////傳入參數/////////
     FUrl : String;
     FCaseID : String;
-    FMode : String;        //NSCAN:�s��;ESCAN:�ק�
+    FMode : String;        //NSCAN:新件;ESCAN:修改 20170306 DSCAN:被配合待掃瞄清單使用
     FModeName : String;
     FWork_no : String;
     FUserID : String;
@@ -387,122 +387,128 @@
     FVerify : String;
     FReWrite : String;
     FLanguage : String;
-    FLoanDoc_Value : String; //�s�W�«H������
-    FLoanDoc_Enable : String; //�s�W�«H���O�_�i����
-    FUseProxy : String; //�O�_�ϥ�Proxy
-    FC_DocNoList : String; //�~���Ǩӭn�s�W�����s��
-    FC_DocNameList : String; //�~���Ǩӭn�s�W���ۭq���
-    FFixFileList : String; //�n����ɦW
-    FIs_In_Wh : String; //�O�_�u��ܤJ�w���  (Y:�u��ܤJ�w N:�u��ܫD�J�w �ť�:�����)
-    FOldCaseInfo : String; //�¥��T  CaseID_year[tab]CaseID_year
-    FPrintyn : String; //�O�_�i�C�L
-    FIs_OldCase : String; //�O�_�O�®ײĤ@���i�J
-    FCustDocYN : String; //�O�_�i�ۭq���
-    ////////�ǤJ�Ѽ�///////
+    FLoanDoc_Value : String; //新增授信卷的值
+    FLoanDoc_Enable : String; //新增授信卷是否可異動
+    FUseProxy : String; //是否使用Proxy
+    FC_DocNoList : String; //外面傳來要新增的文件編號
+    FC_DocNameList : String; //外面傳來要新增的自訂文件
+    FFixFileList : String; //要鎖住的檔名
+    FIs_In_Wh : String; //是否只顯示入庫文件  (Y:只顯示入庫 N:只顯示非入庫 空白:都顯示)
+    FOldCaseInfo : String; //舊件資訊  CaseID_year[tab]CaseID_year
+    FPrintyn : String; //是否可列印
+    FIs_OldCase : String; //是否是舊案第一次進入
+    FCustDocYN : String; //是否可自訂文件
+    //20170222 新增
+    FImgDPI:integer;//DPI  依業務別決定 150~~1200  預設300
+    FScanColor:integer;///掃瞄色彩  依業務別決定   0 :黑白  1:灰階   2:彩色 預設黑白
+    FFileSizeLimit:integer;//匯入單一檔案大小限  依業務別決定  以KB為單位  預設5*1024kb
+    FCaseNoLength:integer;//案件編號長度檢查  依業務別決定   無預設  一定要傳入
+    FImgDelete:string; // Y/N  有權限可在補件時刪除影像
+    ////////傳入參數///////
 
-    //********Http�Ѽ�********
-    HttpErrStr : String; //���~�T��
-    //********Http�Ѽ�********
+    //********Http參數********
+    HttpErrStr : String; //錯誤訊息
+    //********Http參數********
 
-    //********ini�Ѽ�********
-    DeviceDelete : Boolean;     //�ťխ��R���Ұ�
-    DeviceDeleteSize : Integer;  //�ťխ�Size
-    ScannerReverse : Boolean; //�O�_�ݤϬ�
-    BoardClear : Boolean; //�O�_�M����
-    ScanDpi : Integer;    //����DPI
-    ScanDuplex : Boolean; //�O�_��������
-    ScanRotate : Integer; //���ˮɱ��ਤ��
-    ScanDeskew : Boolean; //�O�_�ɱ��B��
-    ScanBright : Integer; //�G��
-    ScanContrast : Integer; //���
-    ScanImgShowMode : Integer; //0:�M���v�� 1:���M���v�� 2:�����
-    ScanImgSetUse : Boolean; //�O�_�ϥΫG�׹��]�w
+    //********ini參數********
+    DeviceDelete : Boolean;     //空白頁刪除啟動
+    DeviceDeleteSize : Integer;  //空白頁Size
+    ScannerReverse : Boolean; //是否需反相
+    BoardClear : Boolean; //是否清黑邊
+    ScanDpi : Integer;    //掃瞄DPI
+    ScanDuplex : Boolean; //是否雙面掃瞄
+    ScanRotate : Integer; //掃瞄時旋轉角度
+    ScanDeskew : Boolean; //是否傾斜矯正
+    ScanBright : Integer; //亮度
+    ScanContrast : Integer; //對比
+    ScanImgShowMode : Integer; //0:清楚影像 1:不清楚影像 2:不顯示
+    ScanImgSetUse : Boolean; //是否使用亮度對比設定
 
-    //********ini�Ѽ�********
+    //********ini參數********
     ScanColor : TImageFormat;
 
-    //********�ɶ�********
+    //********時間********
     ServerDate : String;
     ServerTime : String;
-    Balance : Longint; //local��server���ɶ��t
-    ScanDenialTime : String; //����i��ɶ�
-    //********�ɶ�********
-    ScanDenialHint : String; //���y��ܴ����r��
+    Balance : Longint; //local跟server的時間差
+    ScanDenialTime : String; //停止進件時間
+    //********時間********
+    ScanDenialHint : String; //掃描顯示提醒字串
 
-    //********���|********
+    //********路徑********
     ScanPath : String;       // SpecifyDir\Workid\userunit\mode
     ImagePath : String;      // SpecifyDir\Workid\userunit\mode
     ImageSavePath : String;   // ImagePath\
     ScaniniPath : String;    // SpecifyDir\Workid\userunit\
-    LngPath :String;         //�h��y���ɥؿ�
-    CheckXmlPath : String;   //�ˮ֥Ϊ�Xml�s��ؿ�
-    SitePath : String;      //�n����m(��ñ�W��)
-    SamplePath : String;     //�d���ؿ�
-    TransPath : String;     //�ɮפW�Ǫ����|(�ɥR��|�h�@�h�ؿ�)
-    //********���|********
-    ScanSaveFilename : String; //���˪��ɦW
-    ScanCaseno : String;  //���ˮɪ��׸�
-    ScanDocDir : String;  //���y�ɪ����N���ؿ�
-    //********�M���********
-    Doc_Inf_List : TStringList;  //Doc_Inf �M��
-    DM_FORM_INF_List :TstringList;  //DM_FORM_INF �M��
-    FORM_INF_List : TStringList; //FORM_INF���M��
-    CHECK_RULE_INF_List : TStringList;  //CHECK_RULE_INF  �M��
-    MEMO_INF_List : TStringList;  //MEMO_INF �M��
-    WORK_INF_List : TStringList;  //WORK_INF �M��
-    LASTEST_FORM_INF_List : TStringList;  // LASTEST_FORM_INF �M��
+    LngPath :String;         //多國語言檔目錄
+    CheckXmlPath : String;   //檢核用的Xml存放目錄
+    SitePath : String;      //登打位置(切簽名用)
+    SamplePath : String;     //範本目錄
+    TransPath : String;     //檔案上傳的路徑(補充件會多一層目錄)
+    //********路徑********
+    ScanSaveFilename : String; //掃瞄的檔名
+    ScanCaseno : String;  //掃瞄時的案號
+    ScanDocDir : String;  //掃描時的文件代號目錄
+    //********清單區********
+    Doc_Inf_List : TStringList;  //Doc_Inf 清單
+    DM_FORM_INF_List :TstringList;  //DM_FORM_INF 清單
+    FORM_INF_List : TStringList; //FORM_INF的清單
+    CHECK_RULE_INF_List : TStringList;  //CHECK_RULE_INF  清單
+    MEMO_INF_List : TStringList;  //MEMO_INF 清單
+    WORK_INF_List : TStringList;  //WORK_INF 清單
+    LASTEST_FORM_INF_List : TStringList;  // LASTEST_FORM_INF 清單
 
-    FindResult : TStringList;    //��SQLData�����G
-    CaseList : TStringList;    //�O�����ˮץ󪺶���
-    Context_DocnoList : TStringlist; //�ץ�̪�Docno�M��
-    CaseDocNoList : TStringlist;  //�ץ�̪�DocNo�M��(������)
-    CaseDocNo_CopiesList : TStringlist; //�ץ�̪�DocNo���ƲM��
-    ContextList : TStringlist; //�ץ�̪��ɮײM��
-    OMRFileList : TStringList; //�nOMR�ˮ֪����(�u�ˬd�C��Form���Ĥ@��)
-    Cust_DocNoList : TStringlist; //�ۦ�w�q���W��
-    IN_WH_DocNoList : TStringlist; //�J�w�����M��
+    FindResult : TStringList;    //找SQLData的結果
+    CaseList : TStringList;    //記錄掃瞄案件的順序
+    Context_DocnoList : TStringlist; //案件裡的Docno清單
+    CaseDocNoList : TStringlist;  //案件裡的DocNo清單(不重複)
+    CaseDocNo_CopiesList : TStringlist; //案件裡的DocNo份數清單
+    ContextList : TStringlist; //案件裡的檔案清單
+    OMRFileList : TStringList; //要OMR檢核的文件(只檢查每種Form的第一頁)
+    Cust_DocNoList : TStringlist; //自行定義文件名稱
+    IN_WH_DocNoList : TStringlist; //入庫的文件清單
 
-    FormCode_PageSize : TStringList; //��󪺹w�]�j�p  FormCode_Height_Width
-    DocNo_NeedDoc : TStringList; //��Docno�ɭn�̪ۨ����   DocNo_�̤ۨ��_�̤ۨ��
-    DocNo_NoDoc : TstringList; //��Docno�ɤ��������   DocNo_�������_�������
-    DocNo_VerinCase : TStringlist; //�ץ�̪�DocNo+�������M��
+    FormCode_PageSize : TStringList; //文件的預設大小  FormCode_Height_Width
+    DocNo_NeedDoc : TStringList; //有Docno時要相依的文件   DocNo_相依文件_相依文件
+    DocNo_NoDoc : TstringList; //有Docno時互斥的文件   DocNo_互斥文件_互斥文件
+    DocNo_VerinCase : TStringlist; //案件裡的DocNo+版本的清單
 
-    NoSaveBarCodeList : TStringlist; //���x�s�����X�M��
-    FormID_List : TStringlist;    //FormID �M��  20130403 �]����FormCode2Docno�|�ܺC..��FormID��X��
-    DocNo_List : TStringlist;     //DocNo �M��  20130403 �]����FormCode2Docno�|�ܺC..��DocNo��X��
-    NowShowFileList : TStringlist;  //�ثe��ܪ��v���M��
-    NowSelectFileList : TStringlist; //�ثe�Q�I�諸�v���M��
-    GuideFormIDList : TStringlist; //�n��ɤޭ����M��
-    //********�M���********
+    NoSaveBarCodeList : TStringlist; //不儲存的條碼清單
+    FormID_List : TStringlist;    //FormID 清單  20130403 因為原FormCode2Docno會很慢..把FormID抽出來
+    DocNo_List : TStringlist;     //DocNo 清單  20130403 因為原FormCode2Docno會很慢..把DocNo抽出來
+    NowShowFileList : TStringlist;  //目前顯示的影像清單
+    NowSelectFileList : TStringlist; //目前被點選的影像清單
+    GuideFormIDList : TStringlist; //要當導引頁表單清單
+    //********清單區********
 
-    //********��ܰ�********
-    NowCaseno : String; //�ثe��ܪ��ץ�s��
-    NowDocNo : String;  //�ثe�����s��
-    NowDocDir : String; //�ثe�����ؿ�
-    NowFormCode : String; //�ثe��ܪ����s��
-    NowFormName : String; //�ثe��ܪ����W��
-    NowPage : Integer;   //�ثe�I�諸���X
-    DisplayPath : String; //�ثe��ܪ��ؿ�
-    //********��ܰ�********
+    //********顯示區********
+    NowCaseno : String; //目前顯示的案件編號
+    NowDocNo : String;  //目前的文件編號
+    NowDocDir : String; //目前的文件目錄
+    NowFormCode : String; //目前顯示的表單編號
+    NowFormName : String; //目前顯示的表單名稱
+    NowPage : Integer;   //目前點選的頁碼
+    DisplayPath : String; //目前顯示的目錄
+    //********顯示區********
 
-    //******���޸��*********
-    Case_loandoc : String; //�O�_�s�W�«H��
-    //******���޸��*********
+    //******索引資料*********
+    Case_loandoc : String; //是否新增授信卷
+    //******索引資料*********
 
-    //********�Q�r�w���I��T********
-    UpLPoint : Tpoint;  //���W�誺�Q�r�I
-    UpRPoint : Tpoint;  //�k�W�誺�Q�r�I
-    DownLPoint : Tpoint;  //���U�誺�Q�r�I
-    DownRPoint : Tpoint;  //�k�U�誺�Q�r�I
-    Point_Width : String;   //�Q�r�I���e
-    Point_Height : String;   //�Q�r�I����
-    //********�Q�r�w���I��T********
+    //********十字定位點資訊********
+    UpLPoint : Tpoint;  //左上方的十字點
+    UpRPoint : Tpoint;  //右上方的十字點
+    DownLPoint : Tpoint;  //左下方的十字點
+    DownRPoint : Tpoint;  //右下方的十字點
+    Point_Width : String;   //十字點的寬
+    Point_Height : String;   //十字點的高
+    //********十字定位點資訊********
 
-    CaseIDLength : Integer; //�ץ�s������
-    FormIDLength : Integer; //FormID����
-    DocNoLength : Integer;  //Docno����
+    CaseIDLength : Integer; //案件編號長度
+    FormIDLength : Integer; //FormID長度
+    DocNoLength : Integer;  //Docno長度
 
-    PEFileName : String; //���y�ɪ��ɦW
+    PEFileName : String; //掃描時的檔名
 
     ISB : TImageScrollBox;
     ScanInfo    : TScanInfo;
@@ -510,39 +516,39 @@
     MpsBarcodeinf : TMpsBarcodeinf;
     ScanMode : TScanMode;
     Mpskey : String;
-    Seg : Integer; //��ܪ���ɭ�
-    VMode : Integer; //��ܪ�index
-    NowClick : Integer;   //�ثe�I�쪺���s�\��Index
-    ScanIP : String;  //���˺ݪ�IP
-    DisplayISB : TImageScrollBox; //�Q�I�쪺�v��
-    SelectISB : TImageScrollBox; //�Q�I�쪺�Y��
-    SelectPage : Integer; //�Q�I�쪺����
+    Seg : Integer; //顯示的邊界值
+    VMode : Integer; //顯示的index
+    NowClick : Integer;   //目前點到的按鈕功能Index
+    ScanIP : String;  //掃瞄端的IP
+    DisplayISB : TImageScrollBox; //被點到的影像
+    SelectISB : TImageScrollBox; //被點到的縮圖
+    SelectPage : Integer; //被點到的頁數
     NewTreeNode,MyTreeNode1,MyTreeNode2,MyTreeNode3 : TTreenode;
-    InitialOk : Boolean; //��T���J�O�_����
-    ShowText : String; //DataLoading�ɭn�q�X���T��
-    Ext : String; //���ɦW  .tif .jpg
-    SafePixel : Integer;  //OMR�e�Ի~�t���I��
-    OMRErrInfo : Array[1..11] of TOMRErrInfo;  //�ˮ֪��覡�ΰT��
-    ScrollRec : Array[1..8] of TScrollRec; //�s������Scroll�O��
-    RecHozPos,RecVerPos : Integer;  //�O��MPSViewX1��ScrollBar��m
+    InitialOk : Boolean; //資訊載入是否完成
+    ShowText : String; //DataLoading時要秀出的訊息
+    Ext : String; //附檔名  .tif .jpg
+    SafePixel : Integer;  //OMR容忍誤差值點數
+    OMRErrInfo : Array[1..11] of TOMRErrInfo;  //檢核的方式及訊息
+    ScrollRec : Array[1..8] of TScrollRec; //瀏覽窗的Scroll記錄
+    RecHozPos,RecVerPos : Integer;  //記錄MPSViewX1的ScrollBar位置
     ReczoomPercent : Single;
     SortMode : Boolean;
     PreMytreeNode2Name:String;
     HS,VS : Integer;
     iRate : Single;
-    Bt : Integer; //�h���u�ɾ�u�P�_���e�ԭ�
-    BarCodeRotate : Integer; //���X�n�઺����
-    HaveAppDoc : Boolean; //�ɥ��ɬO�_���ɤJ�n�O��
+    Bt : Integer; //去直線時橫線判斷的容忍值
+    BarCodeRotate : Integer; //條碼要轉的角度
+    HaveAppDoc : Boolean; //補全時是否有補入要保書
     PageLVclear : Boolean;
-    CaseCount,PageCount : Integer; //�`�ץ�q���`����
+    CaseCount,PageCount : Integer; //總案件量及總頁數
     Item : TMenuItem;
-    SampleAnchorMode : String; //�d�����ˤQ�r�u���Ҧ�  NONE:�L;ANCHOR:�Q�r;FRAME:���
-    DownImgStatus : String;  //�U���v�������A(NO_DATA:�S���;NO_FILE:�S�v��)
-    TransForm_Field : String; //�n��OMR�Ŀ�T�{�O�_�ഫFORMID�����W��
-    NowWork_No : String; //�{�b���@�~�O
-    CropBarcode : String; //�n���v�������X
-    Has_Authorize :String; //�O�_�����v�Ѽv��
-    AttName : String; //���k���ؿ��W��
+    SampleAnchorMode : String; //範本掃瞄十字線的模式  NONE:無;ANCHOR:十字;FRAME:邊框
+    DownImgStatus : String;  //下載影像的狀態(NO_DATA:沒資料;NO_FILE:沒影像)
+    TransForm_Field : String; //要用OMR勾選確認是否轉換FORMID的欄位名稱
+    NowWork_No : String; //現在的作業別
+    CropBarcode : String; //要切影像的條碼
+    Has_Authorize :String; //是否有授權書影像
+    AttName : String; //未歸類目錄名稱
     NowGuideFormID : String;
 
     FirstDocDir : String;
@@ -553,231 +559,231 @@
     FEvents: ICB_IMGPSScanXEvents;
 
     procedure HotKeyDown (var Msg : TMessage);message WM_HOTKEY;
-    Procedure InitialLanguage(Sender: TObject);   //�e�����J�h��y��
+    Procedure InitialLanguage(Sender: TObject);   //畫面載入多國語言
     //Function _Msg(S:String):String;
 
-    //*********SQL����************
-    Procedure SetSQLData(ColumeStr:String;FromList,ToList:TStringlist); //��SQL�ȶ�J
-    Function GetSQLData(TableList:TStringlist;Colname:String;colNo:Integer):String; //�����ί��ި���
-    Function FindSQLData(TableList:TStringlist;ColumeStr,KeyColumeStr,KeyStr:String;ColNo:Integer;Var ResultList:TStringlist):Boolean; //����w�����
+    //*********SQL相關************
+    Procedure SetSQLData(ColumeStr:String;FromList,ToList:TStringlist); //把SQL值塞入
+    Function GetSQLData(TableList:TStringlist;Colname:String;colNo:Integer):String; //依欄位及索引取值
+    Function FindSQLData(TableList:TStringlist;ColumeStr,KeyColumeStr,KeyStr:String;ColNo:Integer;Var ResultList:TStringlist):Boolean; //找指定的資料
     Function GetFindResult(Col:String):String;
-    //*********SQL����************
+    //*********SQL相關************
 
 
-    //*******�ഫ��*********
-    Function FindDivFormCode(FormCode:String):Boolean; //�䦳�S�����ת����X
-    Function FormCode2FormName(CaseID,FormCode:String):String; //��FormCode�ন���W��
-    Function FormCode2FileName(FormCode:String;List:TStrings):String; //��FormCode��X�ɦW(�Ĥ@��)
-    Function FileName2FormCode(FileName:String):String; //�q�ɦW���XFormCode
-    Function FileName2FormName(CaseID,FileName:String):String; //�q�ɦW���X���W��
-    Function FileName2ScanPage(FileName:String):Integer; //�q�ɦW���X���˭���
-    Function FileName2NoQuene_Filename(FileName:String):String; //���X�S���Ǹ����ɦW
-    Function FileName2Index(FileName:String):Integer; //�q�ɦW���X�bContextList���Ǹ�
-    Function FileName2NowDcoNo(FileName:String;CtList,DNList:TStrings):String; //�q�ɦW���X�k�ݪ����N��
-    Function FormCode2DocNo(FormCode:String):String;   //FormCode��Docno
-    Function FormCode2Version(FormCode:String):String; //FormCode�઩��
-    Function FormCode2Page(FormCode:String):String; //FormCode���󭶼�
-    Function DocNo2DocName(CaseID,DocNo:String):String; //Docno��Doc�W��
-    Function DocNo2FileName(DocNo:String;List:TStrings):String; //��DocNo��X�ɦW(�Ĥ@��)
-    Function FormCode2WorkNo(FormCode:String):String; //��FormCode���X�@�~�O
-    Function DocNo2WorkNo(DocNo:String):String; //��DocNo���X�@�~�O
-    Function DocNo2DocNoDir(Path,DocNo:String):String;    //DocNo�নDocNo(����)�ؿ�
-    Function DocNoDir2DocNo(DocNoDir:String):String; //DocNo(����)�ؿ��নDocNo
-    Function DocNoDir2Index(Path,DocNoDir:String):Integer; //DocNo(����)�ؿ��নindex
+    //*******轉換區*********
+    Function FindDivFormCode(FormCode:String):Boolean; //找有沒有分案的條碼
+    Function FormCode2FormName(CaseID,FormCode:String):String; //用FormCode轉成文件名稱
+    Function FormCode2FileName(FormCode:String;List:TStrings):String; //用FormCode找出檔名(第一頁)
+    Function FileName2FormCode(FileName:String):String; //從檔名取出FormCode
+    Function FileName2FormName(CaseID,FileName:String):String; //從檔名取出文件名稱
+    Function FileName2ScanPage(FileName:String):Integer; //從檔名取出掃瞄頁數
+    Function FileName2NoQuene_Filename(FileName:String):String; //取出沒有序號的檔名
+    Function FileName2Index(FileName:String):Integer; //從檔名取出在ContextList的序號
+    Function FileName2NowDcoNo(FileName:String;CtList,DNList:TStrings):String; //從檔名取出歸屬的文件代號
+    Function FormCode2DocNo(FormCode:String):String;   //FormCode轉Docno
+    Function FormCode2Version(FormCode:String):String; //FormCode轉版本
+    Function FormCode2Page(FormCode:String):String; //FormCode轉文件頁數
+    Function DocNo2DocName(CaseID,DocNo:String):String; //Docno轉Doc名稱
+    Function DocNo2FileName(DocNo:String;List:TStrings):String; //用DocNo找出檔名(第一頁)
+    Function FormCode2WorkNo(FormCode:String):String; //用FormCode取出作業別
+    Function DocNo2WorkNo(DocNo:String):String; //用DocNo取出作業別
+    Function DocNo2DocNoDir(Path,DocNo:String):String;    //DocNo轉成DocNo(份數)目錄
+    Function DocNoDir2DocNo(DocNoDir:String):String; //DocNo(份數)目錄轉成DocNo
+    Function DocNoDir2Index(Path,DocNoDir:String):Integer; //DocNo(份數)目錄轉成index
 
-    Function DocNoNeedDiv(DocNo:String):Boolean; //�O�_�O�ݤ����ƪ����N��
+    Function DocNoNeedDiv(DocNo:String):Boolean; //是否是需分份數的文件代號
     //Function CaseNo2DocNo(CaseNo:String):TStringList;
 
-    Function CaseNode2Info(Node:TTreeNode;Mode:Char):String;   //�ץ�Node���ץ�s��  Mode: I:Caseno;P:Page
-    Function DocNode2Info(Node:TTreeNode;Mode:Char):String;     //���Node�����N�� Mode: I:Docno;N:Docname;P:Page;G:Group
-    Function FormNode2Info(Node:TTreeNode;Mode:Char):String;   //���Node�����N��  Mode: I:FormID;N:FormName;P:Page
-    //*******�ഫ��*********
+    Function CaseNode2Info(Node:TTreeNode;Mode:Char):String;   //案件Node取案件編號  Mode: I:Caseno;P:Page
+    Function DocNode2Info(Node:TTreeNode;Mode:Char):String;     //文件Node取文件代號 Mode: I:Docno;N:Docname;P:Page;G:Group
+    Function FormNode2Info(Node:TTreeNode;Mode:Char):String;   //表單Node取表單代號  Mode: I:FormID;N:FormName;P:Page
+    //*******轉換區*********
 
-    Procedure PriorPage(Page:Integer); //�W�@��
-    Procedure NextPage(Page:Integer); //�U�@��
+    Procedure PriorPage(Page:Integer); //上一頁
+    Procedure NextPage(Page:Integer); //下一頁
 
-    Function DocNoExistsinTree(CaseNode:TTreeNode;DocNo:String):Boolean; //DocNo�O�_�v�s�b���
-    Function DocnoNeedGroup(DocNo:String):Boolean; //�ǤJ��DocNo�O�_�ݤ���
+    Function DocNoExistsinTree(CaseNode:TTreeNode;DocNo:String):Boolean; //DocNo是否己存在樹裡
+    Function DocnoNeedGroup(DocNo:String):Boolean; //傳入的DocNo是否需分組
 
     function GetSiteOMR(FileName, Site: String;bt: Integer): Integer;
-    Function FindISB2View(Vmode:Integer):TImageScrollBox; //���ISB�����
-    Procedure R_W_ScanIni(Mode:Char); //'R'��;'W'�g�J
-    Procedure GetDefScanIni; //���o���˪��w�]��
+    Function FindISB2View(Vmode:Integer):TImageScrollBox; //找空的ISB來顯示
+    Procedure R_W_ScanIni(Mode:Char); //'R'讀取;'W'寫入
+    Procedure GetDefScanIni; //取得掃瞄的預設值
     procedure DesableImage;
     procedure EnableImage(v:integer;Sender : TObject);
     Procedure ViewMouseMode(v:Integer);
     Procedure GoViewMode;
     Procedure DisplayMode(index,H_Count,W_Count:Integer;BasePanel:TPanel);
-    Function GetServerDate : Boolean; //���D���ɶ�
-    Function GetSetInf1 : Boolean; //���t�γ]�w��Tmode1  DOC_INF
-    Function GetSetInf2 : Boolean; //���t�γ]�w��Tmode2  DM_FORM_INF
-    Function GetSetInf3 : Boolean; //���t�γ]�w��Tmode3  FORM_INF
-    Function GetSetInf4 : Boolean; //���t�γ]�w��Tmode4  CHECK_RULE_INF
-    Function GetSetInf5 : Boolean; //���t�γ]�w��Tmode5  MEMO_INF
-    Function GetSetInf6 : Boolean; //���t�γ]�w��Tmode6  WORK_INF
-    Function GetSetInf7 : Boolean; //���t�γ]�w��Tmode7  LASTESTFORM_INF
-    Procedure SetFormID_DocNo; //�NFormID��Docno��X�ӥt�s�Jlist��
-    Procedure SetIn_WH_DocNo; //�N�n�J�w��DocNo��X�ӥt�s�Jlist��
+    Function GetServerDate : Boolean; //取主機時間
+    Function GetSetInf1 : Boolean; //取系統設定資訊mode1  DOC_INF
+    Function GetSetInf2 : Boolean; //取系統設定資訊mode2  DM_FORM_INF
+    Function GetSetInf3 : Boolean; //取系統設定資訊mode3  FORM_INF
+    Function GetSetInf4 : Boolean; //取系統設定資訊mode4  CHECK_RULE_INF
+    Function GetSetInf5 : Boolean; //取系統設定資訊mode5  MEMO_INF
+    Function GetSetInf6 : Boolean; //取系統設定資訊mode6  WORK_INF
+    Function GetSetInf7 : Boolean; //取系統設定資訊mode7  LASTESTFORM_INF
+    Procedure SetFormID_DocNo; //將FormID及Docno抽出來另存入list裡
+    Procedure SetIn_WH_DocNo; //將要入庫的DocNo抽出來另存入list裡
 
-    Procedure DataLoading(Loading,UseTimer:Boolean);  //��Ƹ��J���n�����I�諸�ʧ@
-    procedure ClearView(stkv:Integer); //�M���s�������v��
-    Function DrawDocItem2(CaseNode : TTreenode;Caseno:String):Boolean;  //�e�X���W�٪�Tree
+    Procedure DataLoading(Loading,UseTimer:Boolean);  //資料載入中要停止點選的動作
+    procedure ClearView(stkv:Integer); //清除瀏覽窗的影像
+    Function DrawDocItem2(CaseNode : TTreenode;Caseno:String):Boolean;  //畫出文件名稱的Tree
 
-    Procedure initkscan; //�ˬd���y�����\��
-    procedure LoadImgFile; //���J�ץ�
-    procedure LoadImgFile1; //���J�ץ�
-    Procedure DistinctFormCode(CaseID:String); //�ץ�̪�FormCode���X�Ĥ@��
-    Function OMRCheckCase(CaseID:String):Boolean; //OMR�ˮ�
-    Procedure OMRErr2ini(CaseID,Reason,FileName,Site,RelaFileName,RelaSite,Anchor,Anchor1:String;Del,Ingnore,Display:Boolean); //OMR�ˮ֥��Ѽg�Jini
-    Procedure OMRErrini2List(CaseID:String;ErrlistForm : TErrlistForm); //OMR�ˮ֥��ѱqini�g�JListView
-    Function DownLanguage:Boolean;  //�U���h��y����
+    Procedure initkscan; //檢查掃描器的功能
+    procedure LoadImgFile; //載入案件
+    procedure LoadImgFile1; //載入案件
+    Procedure DistinctFormCode(CaseID:String); //案件裡的FormCode取出第一頁
+    Function OMRCheckCase(CaseID:String):Boolean; //OMR檢核
+    Procedure OMRErr2ini(CaseID,Reason,FileName,Site,RelaFileName,RelaSite,Anchor,Anchor1:String;Del,Ingnore,Display:Boolean); //OMR檢核失敗寫入ini
+    Procedure OMRErrini2List(CaseID:String;ErrlistForm : TErrlistForm); //OMR檢核失敗從ini寫入ListView
+    Function DownLanguage:Boolean;  //下載多國語言檔
     Function FindMpsView(Vmode:Integer):TImageScrollBox;
-    Function CaseAsk(CaseID:String):Integer;  //�߰ݬO�_�i�W��  (-1:����;0:�i�H;1:����;)
-    Function CaseComplete(Path,CaseID:String;MainCase:Boolean):Boolean;  //�q���ǰe����
-    Function GetCaseFormID(Path:String):String;  //���ץ�FormID
-    Procedure CreateFormID_FormName(Path,CaseID:String);  //����FormID_FormName.dat
-    Procedure CreateDocNo_DocName(Path,CaseID:String);  //����DocNo_DocName.dat
-    Procedure CreateIn_WH(CaseID:String);  //����In_WH.dat
-    Function CreateDocNo_Info(CaseID:String):String; //���ͫO�޳U��� DocNo[tab]����[tab]�`����[tab]�O�_����[����]DocNo[tab]����[tab]�`����[tab]�O�_����
-    Function CreateCustDocNo_Info(CaseID:String):String; //���ۭͦq��� DocName[tab]����[tab]�`����[tab]�O�_����[#13#10]DocName[tab]����[tab]�`����[tab]�O�_����
-    Function CreateAttach_Info(CaseID:String):String; //���ͬO�_��Attach Y:�� N:�S��
-    Function CreateDocnoFrom_Info(CaseID:String):String; //���ͳQ�޶i���O�޳U����T  Docno[tab]����[tab]�ץ�s��#13#10Docno[tab]����[tab]�ץ�s��
-    Function CreateCustDocNoFrom_Info(CaseID:String):String; //���ͳQ�޶i���۩w����T  Docno[tab]����[tab]�ץ�s��#13#10Docno[tab]����[tab]�ץ�s��
+    Function CaseAsk(CaseID:String):Integer;  //詢問是否可上傳  (-1:失敗;0:可以;1:不行;)
+    Function CaseComplete(Path,CaseID:String;MainCase:Boolean):Boolean;  //通知傳送完成
+    Function GetCaseFormID(Path:String):String;  //取案件的FormID
+    Procedure CreateFormID_FormName(Path,CaseID:String);  //產生FormID_FormName.dat
+    Procedure CreateDocNo_DocName(Path,CaseID:String);  //產生DocNo_DocName.dat
+    Procedure CreateIn_WH(CaseID:String);  //產生In_WH.dat
+    Function CreateDocNo_Info(CaseID:String):String; //產生保管袋文件 DocNo[tab]份數[tab]總頁數[tab]是否異動[換行]DocNo[tab]份數[tab]總頁數[tab]是否異動
+    Function CreateCustDocNo_Info(CaseID:String):String; //產生自訂文件 DocName[tab]份數[tab]總頁數[tab]是否異動[#13#10]DocName[tab]份數[tab]總頁數[tab]是否異動
+    Function CreateAttach_Info(CaseID:String):String; //產生是否有Attach Y:有 N:沒有
+    Function CreateDocnoFrom_Info(CaseID:String):String; //產生被引進的保管袋文件資訊  Docno[tab]份數[tab]案件編號#13#10Docno[tab]份數[tab]案件編號
+    Function CreateCustDocNoFrom_Info(CaseID:String):String; //產生被引進的自定文件資訊  Docno[tab]份數[tab]案件編號#13#10Docno[tab]份數[tab]案件編號
 
-    Function GetDocNoEdit(CaseID,DocNo,DocName:String):String; //���XDocNo�O�_�Q���� (Y/N)
-    Function GetDocNo_Count(Path,DocNo:String):Integer;  //���X������
-    Function GetDocNo_Page(Path,DocNo:String):Integer;  //���X����`����
-    Function FormIDExists(FormCode:String;CheckDate:Boolean;index:Integer):Boolean;  //�ˬdFormID�O�_�s�b�άO�_�n�ˬd�ҥΰ��Τ��
-    Function Case_DocNoExists(CaseID,Docno:String):Boolean; //Docno�O�_�s�b�ץ��
-    Procedure ReSortFileName_New(Path:String); //�ɦW���s�Ƨ�
-    Procedure ReSortFileName(Path:String); //�ɦW���s�Ƨ�
-    Procedure ReSortFileName2Scanlist(Path:String); //�ɦW���s�Ƨǵ�Scanlist.dat
-    Function GetOMRCheckSet:Boolean;  //�U��OMR�ˮ�XML��
-    Function GetKeyinSet : Boolean; //���n���]�w
-    Procedure CheckRule2OMRErrInfo;   //�ˮֳW�h��JOMRErrINFo Record
+    Function GetDocNoEdit(CaseID,DocNo,DocName:String):String; //取出DocNo是否被異動 (Y/N)
+    Function GetDocNo_Count(Path,DocNo:String):Integer;  //取出文件份數
+    Function GetDocNo_Page(Path,DocNo:String):Integer;  //取出文件總頁數
+    Function FormIDExists(FormCode:String;CheckDate:Boolean;index:Integer):Boolean;  //檢查FormID是否存在及是否要檢查啟用停用日期
+    Function Case_DocNoExists(CaseID,Docno:String):Boolean; //Docno是否存在案件裡
+    Procedure ReSortFileName_New(Path:String); //檔名重新排序
+    Procedure ReSortFileName(Path:String); //檔名重新排序
+    Procedure ReSortFileName2Scanlist(Path:String); //檔名重新排序給Scanlist.dat
+    Function GetOMRCheckSet:Boolean;  //下載OMR檢核XML檔
+    Function GetKeyinSet : Boolean; //取登打設定
+    Procedure CheckRule2OMRErrInfo;   //檢核規則填入OMRErrINFo Record
     Procedure ReNameContext(Path,OldName,NewName:String);
-    Procedure DeleteImageFile(Path,FileName,CaseID:String); // �R���ɮ�
-    Procedure DeleteFormCodeFile(CaseID,DocDir,FormID:String);  //�R�����wFormID���
-    Function DeleteDocNoFile(Path,DocNo:String):Boolean;  //�R�����wDocNo���
-    Procedure DeleteShowFile(Path:String); //�R����ܤ����v��
-    Function GetDataDocNoPage(MainDocNo,MainVersion:String):Integer;  //���O�������_��������
-    Function CheckCaseDocNoPage(CaseID,DocNo,Version:String;Pages:Integer):Integer; //�ˬd�ץ�̪����_��������
-    Function FindFormCodePages(CaseID,FormCode:String):Integer;  //�p��ץ��FormID������
-    Function GetDataFormCodePages(FormCode:String):Integer;   //���O����FormcID������
-    Procedure CaseReSize(CaseID:String); //�ץ󪺼v���Y��
-    Procedure ImageReSize(CaseID,FileName:String);  //�̤Q�r�w���I���Y��
-    Procedure ImageReSize_tmp(FormID,FileName:String);  //�̤Q�r�w���I���Y��(�Ȧs��)
-    Function TransCaseID(Path,CaseID:String;MainCase:Boolean):Boolean; //�ǰe�ץ�
+    Procedure DeleteImageFile(Path,FileName,CaseID:String); // 刪除檔案
+    Procedure DeleteFormCodeFile(CaseID,DocDir,FormID:String);  //刪除指定FormID文件
+    Function DeleteDocNoFile(Path,DocNo:String):Boolean;  //刪除指定DocNo文件
+    Procedure DeleteShowFile(Path:String); //刪除顯示中的影像
+    Function GetDataDocNoPage(MainDocNo,MainVersion:String):Integer;  //取記錄的文件_版本頁數
+    Function CheckCaseDocNoPage(CaseID,DocNo,Version:String;Pages:Integer):Integer; //檢查案件裡的文件_版本頁數
+    Function FindFormCodePages(CaseID,FormCode:String):Integer;  //計算案件裡FormID的頁數
+    Function GetDataFormCodePages(FormCode:String):Integer;   //取記錄的FormcID的頁數
+    Procedure CaseReSize(CaseID:String); //案件的影像縮放
+    Procedure ImageReSize(CaseID,FileName:String);  //依十字定位點做縮放
+    Procedure ImageReSize_tmp(FormID,FileName:String);  //依十字定位點做縮放(暫存檔)
+    Function TransCaseID(Path,CaseID:String;MainCase:Boolean):Boolean; //傳送案件
     Procedure NewTreeNodeRefresh;
     Procedure MyTreeNode1Refresh;
     Procedure MyTreeNode2ReFresh(CaseID:String);
     Procedure MyTreeNode3ReFresh(CaseID:String);
-    Function Node2DocNo(Node2:TTreeNode):String;  //MyTreeNode2��DocNo�X��
-    Function Node3DocNo(Node3:TTreeNode):String;  //MyTreeNode3��DocNo�X��
-    Function Node3FormID(Node3:TTreeNode):String;  //MyTreeNode3��FormCode�X��
-    Function GetNode2Name(Node2:TTreeNode):String;  //��MyTreeNode2���ѧO�r�X��(�O���e�I���)
+    Function Node2DocNo(Node2:TTreeNode):String;  //MyTreeNode2取DocNo出來
+    Function Node3DocNo(Node3:TTreeNode):String;  //MyTreeNode3取DocNo出來
+    Function Node3FormID(Node3:TTreeNode):String;  //MyTreeNode3取FormCode出來
+    Function GetNode2Name(Node2:TTreeNode):String;  //取MyTreeNode2的識別字出來(記之前點選用)
     //Function Down_Replace_Img(SPAth,DPath,CaseID:String):Boolean;
     Function Down_Img(Path,CaseID:String):Boolean;
-    Function GetNoNameCase(Path:string):String; //�����t��XXXX
-    Procedure CaseResort(Path:String); //�ץ��ɮ׭��s�Ƨ�(������Docno�D)
-    Procedure CaseResort2Scanlist(Path:String); //�ץ��ɮ׭��s�Ƨǵ�scanlist(������FormID��)
-    Procedure DistinctDocinCase(Path:String); //�C�X�ץ�̪�Docno_����
-    Procedure DistinctDocNoinCase(Path:String); //�C�X�ץ�̪�Docno
-    Procedure ClearErrini(CaseID:String;CaseNode:TTreeNode); //�M���ˮ��ɮ�
-    Procedure SetCaseList(Mode:Char;Index:Integer;text:String);  //'A:�[�J,I:���J,D:�R��,E:�ק�'
-    Procedure SetDocNoList(Mode:Char;Index:Integer;CaseNo,DocDir,Copies:String);  //'A:�[�J,I:���J,D:�R��,E:�ק�'
-    Procedure SetContextList(Mode:Char;Index:Integer;CaseNo,DocDir,FileName:String);  //'A:�[�J,I:���J,D:�R��,E:�ק�'
-    Function checkCaseOMRDone:Boolean;  //�ˬd�ץ�O�_����OMR�ˮ�
-    Function CheckCaseID_OK:Boolean;  //�ˬd�O�_�����t�����ץ�
-    Procedure CreateEmptyCase(Path,CaseID:String);  //���ͪťծ׸�(�������)
-    Procedure InitScrollRec; //��l�Ƽv��Scroll�O��
-    Procedure GetScrollData(ISB:TImageScrollBox;Var HS,VS:Integer;Var iRate:Single); //���v��Scroll�O��
-    Procedure SetScrollData(ISB:TImageScrollBox;HS,VS:Integer;iRate:Single); //�g�v��Scroll�O��
-    Procedure FormIDReplace(CaseID,DocDir,OldFormID,NewFormID:String); //���wFormID�󴫦��s��FormID
-    Procedure ShowFileReplace(Path,NewFormID:String);//��ܪ��v�������s��FormID
-    Procedure PageReplaceFormID(Path,NowFormID,NewFormID:String); //�������FormID
-    Function ModeNeedCheck(OMRMode,ScanMode:String):Boolean; //���˼Ҧ��O�_�n���ˮ�
+    Function GetNoNameCase(Path:string):String; //取未配號XXXX
+    Procedure CaseResort(Path:String); //案件的檔案重新排序(次文件依Docno挑)
+    Procedure CaseResort2Scanlist(Path:String); //案件的檔案重新排序給scanlist(次文件依FormID排)
+    Procedure DistinctDocinCase(Path:String); //列出案件裡的Docno_版本
+    Procedure DistinctDocNoinCase(Path:String); //列出案件裡的Docno
+    Procedure ClearErrini(CaseID:String;CaseNode:TTreeNode); //清掉檢核檔案
+    Procedure SetCaseList(Mode:Char;Index:Integer;text:String);  //'A:加入,I:插入,D:刪除,E:修改'
+    Procedure SetDocNoList(Mode:Char;Index:Integer;CaseNo,DocDir,Copies:String);  //'A:加入,I:插入,D:刪除,E:修改'
+    Procedure SetContextList(Mode:Char;Index:Integer;CaseNo,DocDir,FileName:String);  //'A:加入,I:插入,D:刪除,E:修改'
+    Function checkCaseOMRDone:Boolean;  //檢查案件是否完成OMR檢核
+    Function CheckCaseID_OK:Boolean;  //檢查是否有未配號的案件
+    Procedure CreateEmptyCase(Path,CaseID:String);  //產生空白案號(重掃件用)
+    Procedure InitScrollRec; //初始化影像Scroll記錄
+    Procedure GetScrollData(ISB:TImageScrollBox;Var HS,VS:Integer;Var iRate:Single); //取影像Scroll記錄
+    Procedure SetScrollData(ISB:TImageScrollBox;HS,VS:Integer;iRate:Single); //寫影像Scroll記錄
+    Procedure FormIDReplace(CaseID,DocDir,OldFormID,NewFormID:String); //指定FormID更換成新的FormID
+    Procedure ShowFileReplace(Path,NewFormID:String);//顯示的影像換成新的FormID
+    Procedure PageReplaceFormID(Path,NowFormID,NewFormID:String); //選取頁更換FormID
+    Function ModeNeedCheck(OMRMode,ScanMode:String):Boolean; //掃瞄模式是否要做檢核
     procedure WMMOUSEWHEEL(var message: TWMMouseWheel); message WM_MOUSEWHEEL;
-    Function GetInputMask:String; //���o��J���O�渹�X
+    Function GetInputMask:String; //取得輸入的保單號碼
     Function GetCasePage(Path,CaseID:String):Integer;
     Function GetFormIDPage(FileList:TStringlist;FormID:String):Integer;
     Procedure SetFile2Case(CaseID,FileName:String);
-    Procedure WriteResize(ImgName,TxtName:String); //����Resize.dat
-    Function GetCase_PageCount(var CaseCount,PageCount:Integer):Boolean; //���X�ץ󪺼ƶq�έ��� ID���ŭȮɬ����Ҧ���
-    Function BarCode2FormID : String; //Barcode�̳W�h�নFormID
-    Function BarCode2CaseID : String; //Barcode�̳W�h�নCaseID
+    Procedure WriteResize(ImgName,TxtName:String); //產生Resize.dat
+    Function GetCase_PageCount(var CaseCount,PageCount:Integer):Boolean; //取出案件的數量及頁數 ID為空值時為取所有的
+    Function BarCode2FormID : String; //Barcode依規則轉成FormID
+    Function BarCode2CaseID : String; //Barcode依規則轉成CaseID
     Procedure WriteCaseIndex(Path:String);
     Procedure ReadCaseIndex(Path:String);
     Procedure ClearCaseIndex;
     Procedure GetSelectImageFile;
-    Function GetDocNoDir(Path,DocNo:String):String; //���X�ثeDocNo������
-    Function CheckFormIDExists(DocNoNode:TTreeNode;FormID:String):Boolean; //�ˬdFormID�O�_�s�b����
+    Function GetDocNoDir(Path,DocNo:String):String; //取出目前DocNo的份數
+    Function CheckFormIDExists(DocNoNode:TTreeNode;FormID:String):Boolean; //檢查FormID是否存在文件裡
 
-    Procedure ZipMainFile(SoPath,DePath,ZipName:String); //���Y�v����
-    Procedure ZipMaskFile(SoPath,MarkPath,DePath,ZipName:String); //���Y�B�n�v����
-    Procedure ParserPoint(S:String); //�ѪR�Q�r�I���r��
+    Procedure ZipMainFile(SoPath,DePath,ZipName:String); //壓縮影像檔
+    Procedure ZipMaskFile(SoPath,MarkPath,DePath,ZipName:String); //壓縮遮罩影像檔
+    Procedure ParserPoint(S:String); //解析十字點的字串
     Function CheckScanDenialTime:Boolean;
-    Function FormID2Anchor(FormID:String):String;  //��FormID���X�Q�r�Ҧ�
-    Function Index2Anchor(Anchor:String):String;   //�Q�r�Ҧ� 0->NONE;1->ANCHOR;2->FRAME
-    Function MemoInfoTransfer(Mode,Str:String;ID_S,Name_S:TStringlist):String;  //���O�N�X���O���O�ഫ  Mode 'ID':�N�X��W��;'NAME':�W����N�X
-    Function GetFormatID(CaseID:String):String; //���X�ץ�FormatID
-    Function FindNoSaveBarCode : Boolean; //��O�_�����n�x�s�v�������X
-    Function CheckAvailable:Boolean; //�ˬd�O�_�i�ϥΤ���
-    Function Case2Mask(SoPath,DePath:String):Boolean;//���;B�n�v��
-    Function CheckNeedCrop(Graphic:TDibGraphic):Boolean; //�O�_�OA3�n���v��
-    Function GetNewCustomDocNo(Path,DocName:String):String; //���X���ϥΪ��ۭq���N��
-    Function GetCustomDocName(Path,DocNo:String):String; //���X�۩w���W��
-    Function GetCustomFormID(Path,DocNo:String):String; //���X�۩w���FormID
-    Function GetCustomDocDir(Path,DocName:String):String; //���X�۩w���DocDir
-    Function FindCustomDocName(Path,DocName:String):Boolean; //�M��۩w���W�٬O�_�s�b
-    Procedure DeleteCustomDocDir(Path,DocNo:String); //�R���۩w���DocNo
-    Function CheckFormID_Prt(FormID:String):Boolean; //�ǤJ��FormID�O�_�w�]�C�L
+    Function FormID2Anchor(FormID:String):String;  //用FormID取出十字模式
+    Function Index2Anchor(Anchor:String):String;   //十字模式 0->NONE;1->ANCHOR;2->FRAME
+    Function MemoInfoTransfer(Mode,Str:String;ID_S,Name_S:TStringlist):String;  //註記代碼註記類別轉換  Mode 'ID':代碼轉名稱;'NAME':名稱轉代碼
+    Function GetFormatID(CaseID:String):String; //取出案件的FormatID
+    Function FindNoSaveBarCode : Boolean; //找是否有不要儲存影像的條碼
+    Function CheckAvailable:Boolean; //檢查是否可使用元件
+    Function Case2Mask(SoPath,DePath:String):Boolean;//產生遮罩影像
+    Function CheckNeedCrop(Graphic:TDibGraphic):Boolean; //是否是A3要切影像
+    Function GetNewCustomDocNo(Path,DocName:String):String; //取出未使用的自訂文件代號
+    Function GetCustomDocName(Path,DocNo:String):String; //取出自定文件名稱
+    Function GetCustomFormID(Path,DocNo:String):String; //取出自定文件FormID
+    Function GetCustomDocDir(Path,DocName:String):String; //取出自定文件DocDir
+    Function FindCustomDocName(Path,DocName:String):Boolean; //尋找自定文件名稱是否存在
+    Procedure DeleteCustomDocDir(Path,DocNo:String); //刪除自定文件DocNo
+    Function CheckFormID_Prt(FormID:String):Boolean; //傳入的FormID是否預設列印
     procedure PrintImg(FileName, LoginID, Datetime,Path: WideString);
-    Function FindLastestDocDir(CaseID,DocNo:String):String; //��X�̷s��DocDir
-    Procedure Create_Cust_DocDir(CaseID:String); //���ͥ~���ǤJ�����N���Φ۩w���
-    Procedure OldCasetoNewCase(CaseID:String); //�N�®ץ����ন�s�W�h
-    Procedure ErrFormtoCurrentForm(CaseID,EFormID,CFormID:String);//�N�®ת����~FormID�勵�T��FormID
-    Procedure SetRecordEditedDocDir(Mode:Char;CaseID,DocDir:String);  //�O���Q���ʪ����ؿ�  'A:�[�JD:�R��'
-    Function GetDocDir_Page(CaseID,DocDir:String):Integer;  //���oDocDir������
+    Function FindLastestDocDir(CaseID,DocNo:String):String; //找出最新的DocDir
+    Procedure Create_Cust_DocDir(CaseID:String); //產生外面傳入的文件代號及自定文件
+    Procedure OldCasetoNewCase(CaseID:String); //將舊案份數轉成新規則
+    Procedure ErrFormtoCurrentForm(CaseID,EFormID,CFormID:String);//將舊案的錯誤FormID改正確的FormID
+    Procedure SetRecordEditedDocDir(Mode:Char;CaseID,DocDir:String);  //記錄被異動的文件目錄  'A:加入D:刪掉'
+    Function GetDocDir_Page(CaseID,DocDir:String):Integer;  //取得DocDir的頁數
     Function Path2DocDir(Path,CaseID:String):String;
-    Function GetDocNo_IS_WH(DocNo:String):Boolean; //DocNo�O�_���J�w���
-    Procedure SortDocDir_FormID(CaseID,DocDir:String); //�NDocDir�̪����s���Ƨ�
+    Function GetDocNo_IS_WH(DocNo:String):Boolean; //DocNo是否為入庫文件
+    Procedure SortDocDir_FormID(CaseID,DocDir:String); //將DocDir裡的文件編號排序
     Procedure GotoAttach(OldLevel:Integer);
-    Function DocNoIs_In_WH(DocNo:String):Boolean; //DocNo�O�_���J�w���
-    Procedure CreateCaseNeedData(Path:String);  //�����v���I���|�֤G�Ӥ�r��,����CaseDocNo.dat��DocDir.dat
+    Function DocNoIs_In_WH(DocNo:String):Boolean; //DocNo是否為入庫文件
+    Procedure CreateCaseNeedData(Path:String);  //先做影像截取會少二個文字檔,產生CaseDocNo.dat及DocDir.dat
     Procedure SetDocDirtoSelected(CaseNode:TTreeNode;DocDir:String);
-    Function CheckSelectImg_UseCase(Path,CaseID:String):Boolean; //�ˬd��ܪ��v���O�_���]�t�Q�ޥΪ��v��
-    Function TransOldCaseFile(Path:String):Boolean;  //�W�Ǥޥ��¥󪺰O����
+    Function CheckSelectImg_UseCase(Path,CaseID:String):Boolean; //檢查選擇的影像是否有包含被引用的影像
+    Function TransOldCaseFile(Path:String):Boolean;  //上傳引用舊件的記錄檔
     Function Writelog(CaseID:String):Boolean;
-    Function FormIDAppear(FormID:String):Boolean; //FormID�O�_�i�X�{
-    Function DocNoAppear(DocNo:String):Boolean;   //DocNo�O�_�i�X�{
-    Function GetDocNoCount(CaseID,DocNo:String):Integer; //��DocNo�ƶq
-    Function GetDocDirCopies(CaseID,DocDir:String):Integer; //��DocDir����
-    Procedure SetDocDirCopies(CaseID,DocDir:String;NewCopies:Integer); //�ק�DocDir����
-    Function GetDocDirCopies_Rec(Path,CaseID,DocDir:String):Integer; //���O���̪�DocDir����
-    Function GetCustomNameCount(CustomName:String):Integer;   //���~�Ǫ��W�ټƶq
-    Function GetCustomDocNoCount(Docno:String):Integer;   //���~�Ǫ�DocNo�ƶq
+    Function FormIDAppear(FormID:String):Boolean; //FormID是否可出現
+    Function DocNoAppear(DocNo:String):Boolean;   //DocNo是否可出現
+    Function GetDocNoCount(CaseID,DocNo:String):Integer; //取DocNo數量
+    Function GetDocDirCopies(CaseID,DocDir:String):Integer; //取DocDir份數
+    Procedure SetDocDirCopies(CaseID,DocDir:String;NewCopies:Integer); //修改DocDir份數
+    Function GetDocDirCopies_Rec(Path,CaseID,DocDir:String):Integer; //取記錄裡的DocDir份數
+    Function GetCustomNameCount(CustomName:String):Integer;   //取外傳的名稱數量
+    Function GetCustomDocNoCount(Docno:String):Integer;   //取外傳的DocNo數量
     Function ISGuideFormID(FormID:String):Boolean;
-    Function CaseDelete_Enable(CaseID:String):Boolean;  //�ץ�i�_�Q�R��
+    Function CaseDelete_Enable(CaseID:String):Boolean;  //案件可否被刪除
 
-    Procedure MoveImage(Path:String;mp:Integer); //���ʭ���
-    Procedure MoveImage_Drag(Path:String;fp,tp:Integer); //��Բ��ʭ���
+    Procedure MoveImage(Path:String;mp:Integer); //移動頁數
+    Procedure MoveImage_Drag(Path:String;fp,tp:Integer); //拖拉移動頁數
 
 
-    Procedure SetUseCase(Mode:Char;Path,DocDir,FormCaseID,ToCaseID:String);   //�O���ޥΨ�L�ץ� A:�[�J D:�R��
-    Function GetUseCase(Mode:Char;Path,DocDir:String):String;  //F:���Q�ޥ� To:�ޥ�
+    Procedure SetUseCase(Mode:Char;Path,DocDir,FormCaseID,ToCaseID:String);   //記錄引用其他案件 A:加入 D:刪掉
+    Function GetUseCase(Mode:Char;Path,DocDir:String):String;  //F:取被引用 To:引用
 
     Procedure Case2upload(CaseID:String);
     Procedure Download2Case(SoDir,DeDir:String);
 
-    procedure view_image_FormCode(Path,FormCode:String;stpage,stview:integer); //��FormCode�ӧ�v��
-    procedure view_image_DocNo(Path,DocNo,FormID:String;Pages:integer); //��DocNo�ӧ�v��
+    procedure view_image_FormCode(Path,FormCode:String;stpage,stview:integer); //用FormCode來找影像
+    procedure view_image_DocNo(Path,DocNo,FormID:String;Pages:integer); //用DocNo來找影像
 
-    Function ShapeName2PreViewISBName(SP:TShape):String; //��X���wPreViewISBName
+    Function ShapeName2PreViewISBName(SP:TShape):String; //轉出指定PreViewISBName
     Procedure CreatePreViewISB(Count:Integer);
     Procedure FreePreViewISB;
     Procedure FitPreViewISB;
-    Procedure PaintShape(FromImg,ToImg:TImageScrollBox); //�e���Q������v��
+    Procedure PaintShape(FromImg,ToImg:TImageScrollBox); //畫有被選取的影像
     Procedure FreeShapeobj(SelectISB : TImageScrollBox);
     Procedure ISBClick(Sender : TObject);
     Procedure ISBMouseMove(Sender: TObject; Shift: TShiftState;
@@ -793,8 +799,8 @@
 
     procedure BtnMouseEnter(Sender: TObject);
 
-    procedure PageEnd;   //���y��������
-    Procedure PageDone;  //���y��������ܼv��
+    procedure PageEnd;   //掃描接收完成
+    Procedure PageDone;  //掃描完成後顯示影像
     procedure StatrTwainScan;
     procedure OnAcquire( const DibHandle    : THandle;
                          const XDpi         : Word;
@@ -813,6 +819,7 @@
     procedure MouseLeaveEvent(Sender: TObject);
     procedure PaintEvent(Sender: TObject);
     function GetCurrentVersionNo: String;
+    procedure initParameter;
   protected
     { Protected declarations }
     procedure DefinePropertyPages(DefinePropertyPage: TDefinePropertyPage); override;
@@ -918,6 +925,16 @@
     procedure Set_is_oldcase(const Value: WideString); safecall;
     function Get_custdocyn: WideString; safecall;
     procedure Set_custdocyn(const Value: WideString); safecall;
+    function Get_casenolength: WideString; safecall;
+    function Get_filesizelimit: WideString; safecall;
+    function Get_imgdpi: WideString; safecall;
+    function Get_scancolor: WideString; safecall;
+    procedure Set_casenolength(const Value: WideString); safecall;
+    procedure Set_filesizelimit(const Value: WideString); safecall;
+    procedure Set_imgdpi(const Value: WideString); safecall;
+    procedure Set_scancolor(const Value: WideString); safecall;
+    function Get_imgdelete: WideString; safecall;
+    procedure Set_imgdelete(const Value: WideString); safecall;
   public
     { Public declarations }
     procedure Initialize; override;
@@ -939,7 +956,7 @@
 
 { TCB_IMGPSScanX }
 
-function TCB_IMGPSScanX.GetCurrentVersionNo: String; //����ۨ��������һݭn
+function TCB_IMGPSScanX.GetCurrentVersionNo: String; //獲取自身版本號所需要
 var
   dLength,dSize:DWORD;
   pcBuf,pcValue:PChar;
@@ -1009,16 +1026,16 @@
   M_Content,M_ID,M_Name : String;
   S : TStringlist;
 begin
-  ShowText := _Msg('�Ƶ���J��,�еy��');
+  ShowText := _Msg('備註輸入中,請稍候');
   DataLoading(True,True);
   SortMemoForm := TSortMemoForm.Create(Self);
   S := TStringlist.Create;
   try
-    InitialLanguage(SortMemoForm); //���J�h��y��
+    InitialLanguage(SortMemoForm); //載入多國語言
 
-    SortMemoForm.ContentList := TStringlist.Create;      //���O���e
-    SortMemoForm.MemoIDList := TStringlist.Create;       //���O�N��
-    SortMemoForm.MemoNameList := TStringlist.Create;     //���O�W��
+    SortMemoForm.ContentList := TStringlist.Create;      //註記內容
+    SortMemoForm.MemoIDList := TStringlist.Create;       //註記代號
+    SortMemoForm.MemoNameList := TStringlist.Create;     //註記名稱
 
     for i := 1 to MEMO_INF_List.Count - 1 do
     begin
@@ -1026,9 +1043,9 @@
       M_ID := GetSQLData(MEMO_INF_List,'T1.MEMO_TYPE',i);
       M_Name := GetSQLData(MEMO_INF_List,'T2.MEMO_TYPE_NAME',i);
       SortMemoForm.ComboBox1.Items.Add(M_Name+'-->'+M_Content);
-      SortMemoForm.ContentList.Add(M_Content);   //���O���e
-      SortMemoForm.MemoIDList.Add(M_ID);         //���O�N��
-      SortMemoForm.MemoNameList.Add(M_Name);     //���O�W��
+      SortMemoForm.ContentList.Add(M_Content);   //註記內容
+      SortMemoForm.MemoIDList.Add(M_ID);         //註記代號
+      SortMemoForm.MemoNameList.Add(M_Name);     //註記名稱
     end;
     if FileExists(DisplayPath+'Scan_Memo.dat') then
     begin
@@ -1061,9 +1078,9 @@
       end;
       S.SaveToFile(DisplayPath+'Scan_Memo.dat');
     end;
-    SortMemoForm.ContentList.Free;       //���O���e
-    SortMemoForm.MemoIDList.Free;        //���O�N��
-    SortMemoForm.MemoNameList.Free;      //���O�W��
+    SortMemoForm.ContentList.Free;       //註記內容
+    SortMemoForm.MemoIDList.Free;        //註記代號
+    SortMemoForm.MemoNameList.Free;      //註記名稱
   finally
   SortMemoForm.Free;
   S.Free;
@@ -1182,14 +1199,14 @@
   OnMouseLeave := MouseLeaveEvent;
   OnPaint := PaintEvent;
   MpsKey := 'fbim';
-  Seg := 3;  //�s���������
+  Seg := 3;  //瀏覽窗的邊界
   Ext := '.tif';
   SafePixel := 20;
-  CaseIDLength := 16;  //�ץ�s������ 16�X
-  FormIDLength := 15;  //FormID���� 15�X
-  DocNoLength := 8;   //DocNo���� 8�X (1~8)
-  Bt :=4; //�h���u�ɾ�u�P�_���e�ԭ�
-  CropBarcode := 'CC';//�n���v�������X
+  CaseIDLength := 16;  //案件編號長度 16碼   20170222 在用網頁參數來取代
+  FormIDLength := 15;  //FormID長度 15碼    20170222 發現是用來辨識條碼用的
+  ///DocNoLength := 8;   //DocNo長度 8碼 (1~8)  //20170222 發現沒用到就註解吧
+  Bt :=4; //去直線時橫線判斷的容忍值
+  CropBarcode := 'CC';//要切影像的條碼
 end;
 
 procedure TCB_IMGPSScanX.ISB1Click(Sender: TObject);
@@ -1303,7 +1320,7 @@
       SelectISB.Redraw(True);
       FitPreViewISB;
       ISBClick(SelectISB);
-      ClearErrini(NowCaseno,MyTreeNode1);  //�M���ˮְO��
+      ClearErrini(NowCaseno,MyTreeNode1);  //清掉檢核記錄
     end;
   end;
 
@@ -1500,34 +1517,34 @@
 
 procedure TCB_IMGPSScanX.DestroyEvent(Sender: TObject);
 begin
-  //********�M���********
-  Doc_Inf_List.Free;  //Doc_Inf �M��   Docno + ������key
-  DM_FORM_INF_List.Free;  //DM_FORM_INF �M��   Docno + ������key
-  FORM_INF_List.Free; //FORM_INF���M��
-  CHECK_RULE_INF_List.Free;  //CHECK_RULE_INF  �M��
-  MEMO_INF_List.Free;  //MEMO_INF �M��
-  WORK_INF_List.Free;  //WORK_INF �M��
-  LASTEST_FORM_INF_List.Free; // LASTEST_FORM_INF �M��
-  FindResult.Free ;  //��SQLData�����G
-  OMRFileList.Free;  //�nOMR�ˮ֪����(�u�ˬd�C��Form���Ĥ@��)
-  FormCode_PageSize.Free; //��󪺹w�]�j�p  FormCode_Height_Width
-  DocNo_NeedDoc.Free; //��Docno�ɭn�̪ۨ����   DocNo_�̤ۨ��_�̤ۨ��
-  DocNo_NoDoc.Free; //��Docno�ɤ��������   DocNo_�������_�������
-  DocNo_VerinCase.Free; //�ץ�̪�DocNo+�������M��
-  CaseDocNoList.Free;  //�ץ�̪�DocNo�M��
-  CaseDocNo_CopiesList.Free; //�ץ�̪�DocNo���ƲM��
-  CaseList.Free;    //�O�����ˮץ󪺶���
-  NoSaveBarCodeList.Free; //���x�s�����X�M��
-  FormID_List.Free;  //FormID�M��
-  DocNo_List.Free; //DocNo�M��
-  Context_DocnoList.Free; //�ץ�̪��ɮ�Docno�M��
-  ContextList.Free; //�ץ�̪��ɮײM��
-  NowShowFileList.Free;  //�ثe��ܪ��v���M��
-  NowSelectFileList.Free; //�ثe�Q�I�諸�v���M��
-  Cust_DocNoList.Free; //�ۦ�w�q���W��
-  IN_WH_DocNoList.Free; //�J�w�����M��
-  GuideFormIDList.Free; //�n��ɤޭ����M��
-  //********�M���********
+  //********清單區********
+  Doc_Inf_List.Free;  //Doc_Inf 清單   Docno + 版本為key
+  DM_FORM_INF_List.Free;  //DM_FORM_INF 清單   Docno + 版本為key
+  FORM_INF_List.Free; //FORM_INF的清單
+  CHECK_RULE_INF_List.Free;  //CHECK_RULE_INF  清單
+  MEMO_INF_List.Free;  //MEMO_INF 清單
+  WORK_INF_List.Free;  //WORK_INF 清單
+  LASTEST_FORM_INF_List.Free; // LASTEST_FORM_INF 清單
+  FindResult.Free ;  //找SQLData的結果
+  OMRFileList.Free;  //要OMR檢核的文件(只檢查每種Form的第一頁)
+  FormCode_PageSize.Free; //文件的預設大小  FormCode_Height_Width
+  DocNo_NeedDoc.Free; //有Docno時要相依的文件   DocNo_相依文件_相依文件
+  DocNo_NoDoc.Free; //有Docno時互斥的文件   DocNo_互斥文件_互斥文件
+  DocNo_VerinCase.Free; //案件裡的DocNo+版本的清單
+  CaseDocNoList.Free;  //案件裡的DocNo清單
+  CaseDocNo_CopiesList.Free; //案件裡的DocNo份數清單
+  CaseList.Free;    //記錄掃瞄案件的順序
+  NoSaveBarCodeList.Free; //不儲存的條碼清單
+  FormID_List.Free;  //FormID清單
+  DocNo_List.Free; //DocNo清單
+  Context_DocnoList.Free; //案件裡的檔案Docno清單
+  ContextList.Free; //案件裡的檔案清單
+  NowShowFileList.Free;  //目前顯示的影像清單
+  NowSelectFileList.Free; //目前被點選的影像清單
+  Cust_DocNoList.Free; //自行定義文件名稱
+  IN_WH_DocNoList.Free; //入庫的文件清單
+  GuideFormIDList.Free; //要當導引頁表單清單
+  //********清單區********
   if FEvents <> nil then FEvents.OnDestroy;
 end;
 
@@ -1714,12 +1731,12 @@
     FromIndex := PageLv.ItemIndex;
     if FromIndex = 0 then
     begin
-      Showmessage(_Msg('����q��1������'));
+      Showmessage(_Msg('不能從第1頁分案'));
       Exit;
     end;
 
-    If MessageDlg(Format(_Msg('�O�_�T�w�q%d�����X�s��'),[PageLV.ItemIndex+1]),Mtconfirmation,[mbyes,mbcancel],0) = mrcancel Then Exit;
-    ClearErrini(NowCaseno,MyTreeNode1);  //�M���ˮְO��
+    If MessageDlg(Format(_Msg('是否確定從%d頁分出新案'),[PageLV.ItemIndex+1]),Mtconfirmation,[mbyes,mbcancel],0) = mrcancel Then Exit;
+    ClearErrini(NowCaseno,MyTreeNode1);  //清掉檢核記錄
     CaseID := GetNoNameCase(ImageSavePath);
     NewPath := ImageSavePath + CaseID+'\';
     Str2Dir(NewPath);
@@ -1739,7 +1756,7 @@
       ContextList.SaveToFile(DisplayPath+'Context.dat');
     end;
     SetCaseList('I',MyTreeNode1.IndexOf(MyTreeNode2)+1,CaseID);
-    if FileExists(DisplayPath+'CaseIndex.dat') then  //���g��N�����X�ӦA�g�J�s���
+    if FileExists(DisplayPath+'CaseIndex.dat') then  //把原經辦代號取出來再寫入新件裡
     begin
       S.LoadFromFile(DisplayPath+'CaseIndex.dat');
     end;
@@ -1751,7 +1768,7 @@
   S.Free;
   end;
   LoadImgFile;
-  Showmessage(_Msg('���ק���'));
+  Showmessage(_Msg('分案完成'));
 end;
 
 procedure TCB_IMGPSScanX.PM402Click(Sender: TObject);
@@ -1785,11 +1802,11 @@
   PreNode2Name := '';
   if TreeView1.Selected.Parent = MyTreeNode1 then
     PreNode2Name:= GetNode2Name(MyTreeNode2);
-  ShowText := _Msg('����k����,�еy��');
+  ShowText := _Msg('文件歸類中,請稍候');
   DataLoading(True,True);
   DocListForm := TDocListForm.Create(self);
   try
-    InitialLanguage(PatchDlg); //���J�h��y��
+    InitialLanguage(PatchDlg); //載入多國語言
     for i := 1 to FORM_INF_List.Count - 1 do
     begin
       FormID := GetSQLData(FORM_INF_List,'T1.FORM_ID',i);
@@ -1819,11 +1836,11 @@
         PageReplaceFormID(DisplayPath,NowFormCode,FormID);
       end;
       //DrawDocItem(MytreeNode1,FORM_INF_List,NowCaseno);
-      //DrawDocItem1(MytreeNode1,Doc_Inf_List,NowCaseno);  //201408280��
+      //DrawDocItem1(MytreeNode1,Doc_Inf_List,NowCaseno);  //201408280改
       DrawDocItem2(MytreeNode1,NowCaseno);
-      ClearErrini(NowCaseno,MyTreeNode1);  //�M���ˮְO��
-      //Showmessage(_Msg('�k������'));  //20101103 User�n�D����
-      if PreNode2Name <> '' then  // �^��쥻�I�諸���`�I�W
+      ClearErrini(NowCaseno,MyTreeNode1);  //清掉檢核記錄
+      //Showmessage(_Msg('歸類完成'));  //20101103 User要求拿掉
+      if PreNode2Name <> '' then  // 回到原本點選的文件節點上
       begin
         for i := 0 to MyTreeNode1.Count - 1 do
         begin
@@ -1859,7 +1876,7 @@
   PreNode2Name := '';
   if TreeView1.Selected.Parent = MyTreeNode1 then
     PreNode2Name:= GetNode2Name(MyTreeNode2);
-  ShowText := _Msg('����k����,�еy��');
+  ShowText := _Msg('文件歸類中,請稍候');
   DataLoading(True,True);
   GoAtt := False;
   if (MytreeNode2 <> nil) and (Pos('Attach',MyTreeNode2.Text)>0) then
@@ -1869,8 +1886,8 @@
   end;
   DocListForm := TDocListForm.Create(self);
   try
-    InitialLanguage(DocListForm); //���J�h��y��
-    //InitialLanguage(PatchDlg); //���J�h��y��
+    InitialLanguage(DocListForm); //載入多國語言
+    //InitialLanguage(PatchDlg); //載入多國語言
     for i := 1 to FORM_INF_List.Count - 1 do
     begin
       FormID :=  GetSQLData(FORM_INF_List,'T1.FORM_ID',i);
@@ -1909,16 +1926,16 @@
             DocDir := FindLastestDocDir(NowCaseno,DocNo);
 
 
-          if DocNoNeedDiv(DocNo) then   //�n������
+          if DocNoNeedDiv(DocNo) then   //要分份數
           begin
             if ((FormCode2Page(FormID) = '01') and (GetDocDir_Page(NowCaseno,DocDir)>0)) or (DocDir = '') then
               DocDir := DocNo2DocNoDir(ImageSavePath + NowCaseno+'\',DocNo);
           end
-          Else        //��������
+          Else        //不分份數
           begin
             if DocNo <> '' then
               DocDir := DocNo
-            else      //Attach ����
+            else      //Attach 附件
               DocDir := DocNo2DocNoDir(ImageSavePath + NowCaseno+'\',DocNo);
           end;
           if (not DirectoryExists(ImageSavePath + NowCaseno+'\'+DocDir+'\')) and (DocDir <> AttName) then
@@ -1948,7 +1965,7 @@
       end;
       ReSortFileName(ExtractFilePath(iISB.FileName));
       DrawDocItem2(MytreeNode1,NowCaseno);
-      ClearErrini(NowCaseno,MyTreeNode1);  //�M���ˮְO��
+      ClearErrini(NowCaseno,MyTreeNode1);  //清掉檢核記錄
 
       if GoAtt then
       begin
@@ -1988,11 +2005,11 @@
     GoAtt := True;
   end;
 
-  if InputQuery('��J��L���W��','���W��',CustomDocName) then
+  if InputQuery('輸入其他文件名稱','文件名稱',CustomDocName) then
   begin
     if FindCustomDocName(DisplayPath,CustomDocName) then
     begin
-      Showmessage(Format('���W��:"%s"�v�s�b',[CustomDocName]));
+      Showmessage(Format('文件名稱:"%s"己存在',[CustomDocName]));
       Exit;
     end;
     CustomDocNo := GetNewCustomDocNo(DisplayPath,CustomDocName);
@@ -2032,7 +2049,7 @@
   end;
   ReSortFileName(ExtractFilePath(iISB.FileName));
   DrawDocItem2(MytreeNode1,NowCaseno);
-  ClearErrini(NowCaseno,MyTreeNode1);  //�M���ˮְO��
+  ClearErrini(NowCaseno,MyTreeNode1);  //清掉檢核記錄
 
   if GoAtt then
   begin
@@ -2071,7 +2088,7 @@
   iISBName,OldName : String;
   iISB : TImageScrollBox;
 begin
-  if MessageDlg('�O�_�T�w�R��??',mtconfirmation,[mbyes,mbcancel],0) = mrcancel then Exit;
+  if MessageDlg('是否確定刪除??',mtconfirmation,[mbyes,mbcancel],0) = mrcancel then Exit;
 
   for i := 0 to ComponentCount -1 do
   begin
@@ -2085,9 +2102,9 @@
   end;
   ReSortFileName(ExtractFilePath(iISB.FileName));
   DrawDocItem2(MytreeNode1,NowCaseno);
-  MyTreeNode1.Text := Format('%s-%d'+_Msg('��'),[NowCaseno,GetCasePage(ImageSavePath,NowCaseNo)]);
+  MyTreeNode1.Text := Format('%s-%d'+_Msg('頁'),[NowCaseno,GetCasePage(ImageSavePath,NowCaseNo)]);
   NewTreeNodeRefresh;
-  ClearErrini(NowCaseno,MyTreeNode1);  //�M���ˮְO��
+  ClearErrini(NowCaseno,MyTreeNode1);  //清掉檢核記錄
   TreeView1click(self);
 end;
 
@@ -2095,7 +2112,7 @@
 var
   mp:string;
 begin
-  mp := InputBox('���ʭ���','�п�J���J���X','');
+  mp := InputBox('移動頁數','請輸入移入頁碼','');
   if (mp <> '') then
   begin
     MoveImage(DisplayPath+NowDocDir+'\',strtoint(mp));
@@ -2113,7 +2130,7 @@
 begin
   IF not InitialOk Then
   begin
-    Showmessage(_msg('��T�|���U������,�еy�ԩέ��s�i�J'));
+    Showmessage(_msg('資訊尚未下載完成,請稍候或重新進入'));
     Exit;
   end;
   if (FMode = 'RSCAN') or (FMode = 'ESCAN') then
@@ -2183,15 +2200,15 @@
 begin
   IF not InitialOk Then
   begin
-    Showmessage(_msg('��T�|���U������,�еy�ԩέ��s�i�J'));
+    Showmessage(_msg('資訊尚未下載完成,請稍候或重新進入'));
     Exit;
   end;
-  ShowText := _Msg('���˰ѼƳ]�w��,�еy��');
+  ShowText := _Msg('掃瞄參數設定中,請稍候');
   DataLoading(True,True);
 
   PatchDlg := TPatchDlg.Create(self);
   try
-    InitialLanguage(PatchDlg); //���J�h��y��
+    InitialLanguage(PatchDlg); //載入多國語言
     PatchDlg.BlankuseCB.Checked := DeviceDelete;
     if PatchDlg.BlankuseCB.Checked then
       PatchDlg.SpinEdit5.Enabled := True
@@ -2303,9 +2320,9 @@
   P,v,v1,v2,ln,i : Integer;
   iDocDir,iDocNo : String;
 begin
-  if TreeView1.Selected = NewTreeNode then  //���R  //�s���y��
+  if TreeView1.Selected = NewTreeNode then  //全刪  //新掃描件
   begin
-    If Messagedlg(_Msg('�O�_�R���Ҧ��ץ�?'),mtconfirmation,[mbyes,mbcancel],0) = mrcancel then Exit;
+    If Messagedlg(_Msg('是否刪除所有案件?'),mtconfirmation,[mbyes,mbcancel],0) = mrcancel then Exit;
     clearView(1);
     Application.ProcessMessages;
     _DelTree(ImageSavePath);
@@ -2315,11 +2332,11 @@
       CreateEmptyCase(ImageSavePath,FCaseID);
     end;
     LoadImgFile;
-    Showmessage(_Msg('�R������'));
+    Showmessage(_Msg('刪除完成'));
   end
-  Else if TreeView1.Selected = MyTreeNode1 then       //�ץ�s��
+  Else if TreeView1.Selected = MyTreeNode1 then       //案件編號
   begin
-    If Messagedlg(Format(_Msg('�s��(%s)�O�_�R��?'),[NowCaseno]),mtconfirmation,[mbyes,mbcancel],0) = mrcancel then Exit;
+    If Messagedlg(Format(_Msg('編號(%s)是否刪除?'),[NowCaseno]),mtconfirmation,[mbyes,mbcancel],0) = mrcancel then Exit;
     clearView(1);
     Application.ProcessMessages;
     if (FMode = 'ESCAN') then
@@ -2336,7 +2353,7 @@
         _DelTree(ImageSavePath+NowCaseno+'\'+iDocDir);
         SetUseCase('D',ImageSavePath+NowCaseno+'\',iDocDir,'','');
         SetDocNoList('D',-1,NowCaseNo,iDocDir,'');
-        if (Copy(iDocNo,1,5)='ZZZZZ') then   //20140703 �R���۩w���ɭn�Rini�ɸ��
+        if (Copy(iDocNo,1,5)='ZZZZZ') then   //20140703 刪除自定文件時要刪ini檔資料
           DeleteCustomDocDir(ImageSavePath+NowCaseno+'\',iDocDir);
 
       end
@@ -2346,7 +2363,7 @@
       _DelTree(DisplayPath);
       SetCaseList('D',NewTreeNode.IndexOf(MyTreeNode1),'');
     end;
-    ClearErrini(NowCaseno,MyTreeNode1);  //�M���ˮְO��
+    ClearErrini(NowCaseno,MyTreeNode1);  //清掉檢核記錄
 
     if (FMode = 'ESCAN') then
     begin
@@ -2358,25 +2375,25 @@
     end;
     LoadImgFile;
   end
-  Else if TreeView1.Selected = MyTreeNode2 then       //���h
+  Else if TreeView1.Selected = MyTreeNode2 then       //文件層
   begin
-    If Messagedlg(Format(_Msg('���(%s)�O�_�R��?'),[DocNo2DocName(NowCaseno,NowDocNo)]),mtconfirmation,[mbyes,mbcancel],0) = mrcancel then Exit;
+    If Messagedlg(Format(_Msg('文件(%s)是否刪除?'),[DocNo2DocName(NowCaseno,NowDocNo)]),mtconfirmation,[mbyes,mbcancel],0) = mrcancel then Exit;
     ClearView(1);
     Application.ProcessMessages;
     _DelTree(ImageSavePath+NowCaseno+'\'+NowDocDir);
     SetUseCase('D',ImageSavePath+NowCaseno+'\',NowDocDir,'','');
     SetDocNoList('D',-1,NowCaseNo,NowDocDir,'');
-    if (Copy(NowDocNo,1,5)='ZZZZZ') then   //20140703 �R���۩w���ɭn�Rini�ɸ��
+    if (Copy(NowDocNo,1,5)='ZZZZZ') then   //20140703 刪除自定文件時要刪ini檔資料
       DeleteCustomDocDir(ImageSavePath+NowCaseno+'\',NowDocDir);
 
     DrawDocItem2(MytreeNode1,NowCaseno);
-    MytreeNode1.Text := Format(_Msg('%s-%d��'),[NowCaseno,GetCasePage(ImageSavePath,NowCaseNo)]);
-    ClearErrini(NowCaseno,MyTreeNode1);  //�M���ˮְO��
+    MytreeNode1.Text := Format(_Msg('%s-%d頁'),[NowCaseno,GetCasePage(ImageSavePath,NowCaseNo)]);
+    ClearErrini(NowCaseno,MyTreeNode1);  //清掉檢核記錄
     NewTreeNodeRefresh;
 
     {if (FMode <>'ESCAN') and (ContextList.Count = NowShowFileList.Count) then
     begin
-      if Messagedlg(_Msg('�R����N�L�v��,�ץ�N�R��,�O�_�T�w?'),mtconfirmation,[mbyes,mbcancel],0) = mrcancel then Exit;
+      if Messagedlg(_Msg('刪除後將無影像,案件將刪除,是否確定?'),mtconfirmation,[mbyes,mbcancel],0) = mrcancel then Exit;
       _DelTree(DisplayPath);
       SetCaseList('D',NewTreeNode.IndexOf(MyTreeNode1),'');
       if (FMode = 'ESCAN') then
@@ -2391,27 +2408,27 @@
       DeleteShowFile(DisplayPath);
       DrawDocItem1(MytreeNode1,Doc_Inf_List,NowCaseno);
       P := ContextList.Count;
-      MytreeNode1.Text := Format(_Msg('%s-%d��'),[NowCaseno,p]);
-      ClearErrini(NowCaseno,MyTreeNode1);  //�M���ˮְO��
+      MytreeNode1.Text := Format(_Msg('%s-%d頁'),[NowCaseno,p]);
+      ClearErrini(NowCaseno,MyTreeNode1);  //清掉檢核記錄
       NewTreeNodeRefresh;
     end;
-    Showmessage(_Msg('�R������')); }
+    Showmessage(_Msg('刪除完成')); }
 
-    //Showmessage(_Msg('�R������'));  //20101102 User�n�D����
+    //Showmessage(_Msg('刪除完成'));  //20101102 User要求拿掉
   end
-  Else if TreeView1.Selected = MyTreeNode3 then       //FormID�h
+  Else if TreeView1.Selected = MyTreeNode3 then       //FormID層
   begin
-    If Messagedlg(Format(_Msg('���(%s)�O�_�R��?'),[NowFormName]),mtconfirmation,[mbyes,mbcancel],0) = mrcancel then Exit;
+    If Messagedlg(Format(_Msg('文件(%s)是否刪除?'),[NowFormName]),mtconfirmation,[mbyes,mbcancel],0) = mrcancel then Exit;
     DeleteFormCodeFile(NowCaseNo,NowDocDir,NowFormCode);
     SetRecordEditedDocDir('A',NowCaseNo,NowDocDir);
     DrawDocItem2(MytreeNode1,NowCaseno);
-    MytreeNode1.Text := Format(_Msg('%s-%d��'),[NowCaseno,GetCasePage(ImageSavePath,NowCaseNo)]);
-    ClearErrini(NowCaseno,MyTreeNode1);  //�M���ˮְO��
+    MytreeNode1.Text := Format(_Msg('%s-%d頁'),[NowCaseno,GetCasePage(ImageSavePath,NowCaseNo)]);
+    ClearErrini(NowCaseno,MyTreeNode1);  //清掉檢核記錄
     NewTreeNodeRefresh;
 
     {if (FMode <>'ESCAN') and (ContextList.Count = NowShowFileList.Count) then
     begin
-      if Messagedlg(_Msg('�R����N�L�v��,�ץ�N�R��,�O�_�T�w?'),mtconfirmation,[mbyes,mbcancel],0) = mrcancel then Exit;
+      if Messagedlg(_Msg('刪除後將無影像,案件將刪除,是否確定?'),mtconfirmation,[mbyes,mbcancel],0) = mrcancel then Exit;
       _DelTree(DisplayPath);
       SetCaseList('D',NewTreeNode.IndexOf(MyTreeNode1),'');
       if (FMode = 'ESCAN') then
@@ -2426,12 +2443,12 @@
       DeleteShowFile(DisplayPath);
       DrawDocItem1(MytreeNode1,Doc_Inf_List,NowCaseno);
       P := ContextList.Count;
-      MytreeNode1.Text := Format(_Msg('%s-%d��'),[NowCaseno,p]);
-      ClearErrini(NowCaseno,MyTreeNode1);  //�M���ˮְO��
+      MytreeNode1.Text := Format(_Msg('%s-%d頁'),[NowCaseno,p]);
+      ClearErrini(NowCaseno,MyTreeNode1);  //清掉檢核記錄
       NewTreeNodeRefresh;
     end;
-    Showmessage(_Msg('�R������'));
-    //Showmessage(_Msg('�R������'));   //20101102 User�n�D���� }
+    Showmessage(_Msg('刪除完成'));
+    //Showmessage(_Msg('刪除完成'));   //20101102 User要求拿掉 }
   end;
 end;
 
@@ -2445,7 +2462,7 @@
   GoViewMode;
   ISB1.ZoomMode := zmFitWidth;
 
-  NewCaseID := InputBox(_Msg('�ק�ץ�s��'),_Msg('�s�ץ�s��'),'');
+  NewCaseID := InputBox(_Msg('修改案件編號'),_Msg('新案件編號'),'');
   ShowNewCaseID := NewCaseID;
   ShowNowCaseID := NowCaseno;
 
@@ -2453,27 +2470,27 @@
 
   IF Length(NewCaseID)<>CaseIDLength Then
   begin
-    Showmessage(_Msg('��J�榡���~'));
+    Showmessage(_Msg('輸入格式錯誤'));
     Exit;
   end;
 
   if DirectoryExists(ImageSavePath+NewCaseID) then
   begin
-    Showmessage(NewCaseID+_Msg('�v�s�b,�L�k�ק�'));
+    Showmessage(NewCaseID+_Msg('己存在,無法修改'));
     Exit;
   end;
 
-  if Messagedlg(Format(_Msg('�O�_�N%s�אּ%s'),[ShowNowCaseID,ShowNewCaseID]),Mtconfirmation,[mbyes,mbcancel],0) = mrcancel then
+  if Messagedlg(Format(_Msg('是否將%s改為%s'),[ShowNowCaseID,ShowNewCaseID]),Mtconfirmation,[mbyes,mbcancel],0) = mrcancel then
     Exit;
   ClearView(1);
   RenameFile(ImageSavePath+NowCaseno,ImageSavePath+NewCaseID);
   SetCaseList('E',NewTreeNode.IndexOf(MyTreeNode1),NewCaseID);
 
   //P := ContextList.Count;
-  MytreeNode1.Text := Format(_Msg('%s-%d��'),[NewCaseID,GetCasePage(ImageSavePath,NewCaseID)]);
+  MytreeNode1.Text := Format(_Msg('%s-%d頁'),[NewCaseID,GetCasePage(ImageSavePath,NewCaseID)]);
   //DrawDocItem(MyTreeNode1,FORM_INF_List,NewCaseID);
   DrawDocItem2(MytreeNode1,NewCaseID);
-  Showmessage(_Msg('�ק粒��'));
+  Showmessage(_Msg('修改完成'));
 end;
 
 procedure TCB_IMGPSScanX.PM103Click(Sender: TObject);
@@ -2493,22 +2510,39 @@
   DocDir :String;
   SavePath,SaveFilename:String;
   ISB : TImageScrollBox;
+  FileRec:TSearchrec;
 begin
   OpenDialog1.Filter := 'Image files|*.TIF;*.JPG';
   if OpenDialog1.Execute then
   begin
     ISB := TImageScrollBox.Create(self);
     try
-      ShowText :=_Msg('�ɮץ[�J��,�еy��');
+      ShowText :=_Msg('檔案加入中,請稍候');
       DataLoading(True,True);
       if TreeView1.Selected = nil then Exit;
       FName := OpenDialog1.FileName;
+
+      FindFirst(FName,faAnyfile,FileRec);
+      //ShowMessage(IntToStr(FILEREC.Size)+','+IntToStr(FFileSizeLimit));
+      if FFileSizeLimit=0 then
+      begin
+        FFileSizeLimit:=5*1024;
+      end;
+      if FILEREC.Size > FFileSizeLimit*1024 then //檢查檔案大小
+      begin
+        ShowMessage(Format('%.3f',[FILEREC.Size / 1024])+' KB, file size over limit.');
+        FindClose(FILEREC);
+        DataLoading(false,false);
+        exit;
+      end;
+
+      FindClose(FILEREC);
       CaseID := NowCaseno ;
       imageCount := 0;
       P := ISB.ImageCountFromFile(OpenDialog1.FileName);
       for I := 1 to P do
       begin
-        ShowText :=_Msg('�ɮץ[�J��,�еy��('+inttostr(i)+'/'+inttostr(P)+')');
+        ShowText :=_Msg('檔案加入中,請稍候('+inttostr(i)+'/'+inttostr(P)+')');
         DataLoading(True,True);
         ISB.LoadFromFile(FName,i);
         DeskewImg(ISB.Graphic);
@@ -2518,18 +2552,18 @@
           MpsGetBarcode(ISB.Graphic,MpsBarcodeinf);
           for n := 1 to MpsBarcodeinf.Count-1  do
           begin
-            if MpsBarcodeinf.r180[n] <> 0 then  //�̱��X������v��
+            if MpsBarcodeinf.r180[n] <> 0 then  //依條碼角度轉影像
             begin
               Rotate(ISB.Graphic,MpsBarcodeinf.r180[n]);
               MpsGetBarcode(ISB.Graphic,MpsBarcodeinf);
               Break;
             end;
           end;
-          FormID := BarCode2FormID; //���XFormID
+          FormID := BarCode2FormID; //取出FormID
           SaveFilename := FormID;
           if (TreeView1.Selected = NewTreeNode) Then
           begin
-            if FindDivFormCode(FormID) Then  //�u����׭��W���ץ���X
+            if FindDivFormCode(FormID) Then  //只找分案頁上的案件條碼
             begin
               imageCount := 0;
               ClearView(1);
@@ -2552,19 +2586,19 @@
 
           DocNo := FormCode2DocNo(FormID);
           DocDir := FindLastestDocDir(CaseID,DocNo);
-          if DocNoNeedDiv(DocNo) then   //�n������
+          if DocNoNeedDiv(DocNo) then   //要分份數
           begin
             if ((FormCode2Page(FormID) = '01') and (GetDocDir_Page(CaseID,DocDir)>0)) or (DocDir = '') then
               DocDir := DocNo2DocNoDir(ImageSavePath + CaseID+'\',DocNo);
           end
-          Else        //��������
+          Else        //不分份數
           begin
             if DocNo <> '' then
               DocDir := DocNo
-            else      //Attach ����
+            else      //Attach 附件
               DocDir := DocNo2DocNoDir(ImageSavePath + CaseID+'\',DocNo);
           end;
-          {if ((FormCode2Page(FormID) = '01') and DocNoNeedDiv(DocNo)) or (FormID='') then   //�O���Ĥ@���B�n����
+          {if ((FormCode2Page(FormID) = '01') and DocNoNeedDiv(DocNo)) or (FormID='') then   //是表單第一頁且要分份
             DocDir := DocNo2DocNoDir(ImageSavePath + CaseID+'\',DocNo)
           Else if not DocNoNeedDiv(DocNo) then
             DocDir := DocNo; }
@@ -2576,8 +2610,8 @@
           if FileExists(SavePath+'Context.dat') then
             ContextList.LoadFromFile(SavePath+'Context.dat');
 
-          WriteCaseIndex(ImageSavePath + CaseID+'\');  //�g�J�ץ����
-          if SaveFilename = '' then //����
+          WriteCaseIndex(ImageSavePath + CaseID+'\');  //寫入案件索引
+          if SaveFilename = '' then //附件
             SaveFilename:= Add_Zoo(ContextList.Count+1,3)+ext
           Else
             SaveFilename := Add_Zoo(ContextList.Count+1,3)+'_'+SaveFilename+ext;
@@ -2614,16 +2648,16 @@
           ContextList.SaveToFile(SavePath+'Context.dat');
         end;
       end;
-      ClearErrini(CaseID,MyTreeNode1);  //�M���ˮְO��
+      ClearErrini(CaseID,MyTreeNode1);  //清掉檢核記錄
       if (TreeView1.Selected = MyTreeNode1) or (TreeView1.Selected = NewTreeNode) then
       begin
         LoadImgFile;
       end
       Else
       begin
-        DrawDocItem2(MytreeNode1,CaseID); //���X���W�٪���öǦ^�O�_���ӽЮѪ��v��
+        DrawDocItem2(MytreeNode1,CaseID); //長出文件名稱的樹並傳回是否有申請書的影像
         page := GetCasePage(ImageSavePath,CaseID);
-        MytreeNode1.Text := Format(_Msg('%s-%d��'),[CaseID,page]);
+        MytreeNode1.Text := Format(_Msg('%s-%d頁'),[CaseID,page]);
       end;
       NewTreeNodeRefresh;
       Application.ProcessMessages;
@@ -2640,16 +2674,16 @@
   CopyFormID,Copy2Caseno,CopyFileName : String;
   S : TStringlist;
 begin
-  ShowText := _Msg('�ƻs���,�еy��');
+  ShowText := _Msg('複製文件中,請稍候');
   DataLoading(True,True);
   DocCopyForm := TDocCopyForm.Create(Self);
   S := TStringlist.Create;
   try
-    InitialLanguage(DocCopyForm); //���J�h��y��
+    InitialLanguage(DocCopyForm); //載入多國語言
     DocCopyForm.CopyFromGB.Caption := NowCaseno+DocCopyForm.CopyFromGB.Caption;
     IF NewTreenode.Count = 1 Then
     begin
-      Showmessage(_Msg('�S����L�i�ƻs�����'));
+      Showmessage(_Msg('沒有其他可複製的文件'));
       Exit;
     end;
     For i := 0 to MyTreeNode1.Count -1 do
@@ -2674,9 +2708,9 @@
 
     if DocCopyForm.ShowModal = mrok then
     begin
-      If MessageDlg(_Msg('�O�_�T�w�n�N�Ŀ諸���ƻs��Ŀ諸�s����?'),MtConfirmation,[Mbyes,mbcancel],0) = mrCancel Then
+      If MessageDlg(_Msg('是否確定要將勾選的文件複製到勾選的編號裡?'),MtConfirmation,[Mbyes,mbcancel],0) = mrCancel Then
         Exit;
-      ShowText := _Msg('�ƻs��,�еy��');
+      ShowText := _Msg('複製中,請稍候');
       DataLoading(True,True);
       For i := 0 to DocCopyForm.CheckListBox2.Count -1 do
       begin
@@ -2684,9 +2718,9 @@
         begin
           S.Clear;
           Copy2Caseno := DocCopyForm.CheckListBox2.Items.Strings[i];
-          ClearErrini(Copy2Caseno,MyTreeNode1);  //�M���ˮְO��
+          ClearErrini(Copy2Caseno,MyTreeNode1);  //清掉檢核記錄
           S.LoadFromFile(ImageSavePath + Copy2Caseno +'\Context.dat');
-          For n := 0 to DocCopyForm.CheckListBox1.Count -1 do  //���
+          For n := 0 to DocCopyForm.CheckListBox1.Count -1 do  //文件
           begin
             If DocCopyForm.CheckListBox1.Checked[n] Then
             begin
@@ -2699,7 +2733,7 @@
               For x := 0 to ContextList.Count -1 do
               begin
                 //Showmessage(CopyFormCode);
-                //IF CopyFormID <> '' then   //�����N��
+                //IF CopyFormID <> '' then   //有文件代號
                // begin
                   if FileName2FormCode(ContextList.Strings[x])=CopyFormID  then
                   begin
@@ -2718,7 +2752,7 @@
         end;
       end;
       DataLoading(False,False);
-      Showmessage(_Msg('�ƻs����!!'));
+      Showmessage(_Msg('複製完成!!'));
       LoadImgFile;
     end;
   finally
@@ -2742,7 +2776,7 @@
 begin
   DocListForm := TDocListForm.Create(self);
   try
-    InitialLanguage(PatchDlg); //���J�h��y��
+    InitialLanguage(PatchDlg); //載入多國語言
     for i := 1 to FORM_INF_List.Count - 1 do
     begin
       NewFormID := GetSQLData(FORM_INF_List,'T1.FORM_ID',i);
@@ -2763,20 +2797,20 @@
       NewFormID := DocListForm.DocLV.Selected.Caption;
       if NowFormCode <> AttName then
       begin
-        If Messagedlg(Format(_Msg('�O�_�N"%s"���Ҧ��v���k����"%s"'),[FormCode2FormName(NowCaseNo,NowFormCode),FormCode2FormName(NowCaseNo,NewFormID)]),MtConfirmation,[mbyes,mbcancel],0) = mrcancel Then
+        If Messagedlg(Format(_Msg('是否將"%s"的所有影像歸類成"%s"'),[FormCode2FormName(NowCaseNo,NowFormCode),FormCode2FormName(NowCaseNo,NewFormID)]),MtConfirmation,[mbyes,mbcancel],0) = mrcancel Then
           Exit;
       end
       Else
       begin
-        If Messagedlg(Format(_Msg('�O�_�N"%s"���Ҧ��v���k����"%s"'),[_Msg('����')+MyTreeNode3.Text,FormCode2FormName(NowCaseNo,NewFormID)]),MtConfirmation,[mbyes,mbcancel],0) = mrcancel Then
+        If Messagedlg(Format(_Msg('是否將"%s"的所有影像歸類成"%s"'),[_Msg('附件')+MyTreeNode3.Text,FormCode2FormName(NowCaseNo,NewFormID)]),MtConfirmation,[mbyes,mbcancel],0) = mrcancel Then
           Exit;
       end;
-      ShowText := _Msg('�k����,�еy�J');
+      ShowText := _Msg('歸類中,請稍侯');
       DataLoading(True,True);
       //FormIDReplace(DisplayPath,NowFormCode,FormID);
       //ShowFileReplace(DisplayPath,FormID);
       FormIDReplace(NowCaseNo,NowDocDir,NowFormCode,NewFormID);
-      ClearErrini(NowCaseno,MyTreeNode1);  //�M���ˮְO��
+      ClearErrini(NowCaseno,MyTreeNode1);  //清掉檢核記錄
       DrawDocItem2(MytreeNode1,NowCaseno);
       //DrawDocItem(MytreeNode1,FORM_INF_List,NowCaseno);
 
@@ -2801,11 +2835,11 @@
   S := TStringlist.Create;
   try
     ClearView(1);
-    ShowText := CaseID+_Msg('�ˮ֤�,�еy��');
+    ShowText := CaseID+_Msg('檢核中,請稍候');
     DataLoading(True,True);
-    ShowText := CaseID+_Msg('�ˮ֤�,�еy��');
+    ShowText := CaseID+_Msg('檢核中,請稍候');
     DataLoading(True,True);
-    If OMRCheckCase(CaseID) then  //�����\
+    If OMRCheckCase(CaseID) then  //有成功
     begin
       S.Add('Y');
       S.SaveToFile(ImageSavePath+CaseID+'\OMRCheckOk.dat');
@@ -2817,7 +2851,7 @@
   finally
   S.Free;
   end;
-  Showmessage(_Msg('�ˮ֧���'));
+  Showmessage(_Msg('檢核完成'));
 end;
 
 procedure TCB_IMGPSScanX.PM110Click(Sender: TObject);
@@ -2827,13 +2861,13 @@
   DocDir : String;
   SavePath : String;
 begin
-  if InputQuery('��J��L���W��','���W��',CustomDocName) then
+  if InputQuery('輸入其他文件名稱','文件名稱',CustomDocName) then
   begin
     if CustomDocName <> '' then
     begin
       if FindCustomDocName(DisplayPath,CustomDocName) then
       begin
-        Showmessage(Format('���W��:"%s"�v�s�b',[CustomDocName]));
+        Showmessage(Format('文件名稱:"%s"己存在',[CustomDocName]));
         Exit;
       end;
 
@@ -2856,26 +2890,26 @@
 begin
   oldCopies := GetDocDirCopies(NowCaseno,NowDocDir);
   try
-    NewCopies := Strtoint(inputBox('�ק����','�п�J�ק�᪺����',inttostr(oldCopies)));
+    NewCopies := Strtoint(inputBox('修改份數','請輸入修改後的份數',inttostr(oldCopies)));
   except
-    Showmessage('��J���~');
+    Showmessage('輸入錯誤');
     Exit;
   end;
   if (NewCopies <= 0) and (NewCopies >= 10000) then
   begin
-    Showmessage('��J�d����~');
+    Showmessage('輸入範圍錯誤');
     Exit;
   end;
 
   if (oldCopies <> NewCopies) and (NewCopies > 0) and (NewCopies < 10000) then
   begin
-    if DocNoNeedDiv(NowDocNo) and (NewCopies = 1) and (MessageDlg('�ק��1���ᦹ���N�L�k�A�i����ƭק�,�O�_�T�w??',mtConfirmation,[mbyes,mbcancel],0)= mrcancel) then
+    if DocNoNeedDiv(NowDocNo) and (NewCopies = 1) and (MessageDlg('修改至1份後此文件將無法再進行份數修改,是否確定??',mtConfirmation,[mbyes,mbcancel],0)= mrcancel) then
       Exit;
 
     SetDocDirCopies(NowCaseno,NowDocDir,NewCopies);
     SetRecordEditedDocDir('A',NowCaseNo,NowDocDir);
     DrawDocItem2(MytreeNode1,NowCaseno);
-    Showmessage('�ק粒��');
+    Showmessage('修改完成');
   end;
 
 end;
@@ -2900,7 +2934,7 @@
 procedure TCB_IMGPSScanX.PM303Click(Sender: TObject);
 begin
   ScanColor := ifTrueColor;
-  Ext := '.jpg';     //20130326 yuu���z�ߧ�sjpg
+  Ext := '.jpg';     //20130326 yuu說理賠改存jpg
   ScanDpi := 200;
   //Ext := '.tif';
   PM303.Checked := True;
@@ -2952,7 +2986,7 @@
   end;
   Panel1.Enabled := True;
   Panel2.Enabled := True;
-  ClearErrini(NowCaseno,MyTreeNode1);  //�M���ˮְO��
+  ClearErrini(NowCaseno,MyTreeNode1);  //清掉檢核記錄
 end;
 
 procedure TCB_IMGPSScanX.PM507Click(Sender: TObject);
@@ -2967,11 +3001,11 @@
   PreNode2Name := '';
   if TreeView1.Selected.Parent = MyTreeNode1 then
     PreNode2Name:= GetNode2Name(MyTreeNode2);
-  ShowText := _Msg('����k����,�еy��');
+  ShowText := _Msg('文件歸類中,請稍候');
   DataLoading(True,True);
   DocListForm := TDocListForm.Create(self);
   try
-    InitialLanguage(PatchDlg); //���J�h��y��
+    InitialLanguage(PatchDlg); //載入多國語言
     for i := 1 to FORM_INF_List.Count - 1 do
     begin
       FormID :=  GetSQLData(FORM_INF_List,'T1.FORM_ID',i);
@@ -2997,11 +3031,11 @@
       NewName := Add_Zoo(FileName2ScanPage(OldName),3)+'_'+DocListForm.DocLV.Selected.Caption+Ext;
       RenameFile(DisplayPath+OldName,DisplayPath+NewName);
       ReNameContext(DisplayPath,OldName,NewName);
-      //DrawDocItem1(MytreeNode1,Doc_Inf_List,NowCaseno);  //201408280��
+      //DrawDocItem1(MytreeNode1,Doc_Inf_List,NowCaseno);  //201408280改
       DrawDocItem2(MytreeNode1,NowCaseno);
       //DrawDocItem(MytreeNode1,FORM_INF_List,NowCaseno);
-      ClearErrini(NowCaseno,MyTreeNode1);  //�M���ˮְO��
-      if PreNode2Name <> '' then  // �^��쥻�I�諸���`�I�W
+      ClearErrini(NowCaseno,MyTreeNode1);  //清掉檢核記錄
+      if PreNode2Name <> '' then  // 回到原本點選的文件節點上
       begin
         for i := 0 to MyTreeNode1.Count - 1 do
         begin
@@ -3013,7 +3047,7 @@
         end;
       end;
       TreeView1click(self);
-      //Showmessage(_Msg('�k������')); //20101103 User�n�D����
+      //Showmessage(_Msg('歸類完成')); //20101103 User要求拿掉
     end;
   finally
   DataLoading(False,False);
@@ -3031,14 +3065,14 @@
   if DisplayISB.FileName = '' then Exit;
   if (ContextList.Count = 1) and ((FMode = 'NSCAN') or (FMode = 'ASCAN') or (FMode = 'DSCAN') or (FMode = 'ISCAN') or (FMode = 'SSCAN') or (FMode = 'MSCAN') or (FMode = 'RI_SCAN')) then
   begin
-    if Messagedlg(_Msg('�R����(%s)�ץ�L�v��,�N�R�����ץ�,�O�_�T�w�R��?'),mtconfirmation,[mbyes,mbcancel],0) = mrCancel then Exit;
+    if Messagedlg(_Msg('刪除後(%s)案件無影像,將刪除此案件,是否確定刪除?'),mtconfirmation,[mbyes,mbcancel],0) = mrCancel then Exit;
     _DelTree(DisplayPath);
     SetCaseList('D',NewTreeNode.IndexOf(MyTreeNode1),'');
     LoadImgFile;
   end
   Else
   begin
-    if Messagedlg(_Msg('�O�_�T�w�R��?'),mtconfirmation,[mbyes,mbcancel],0) = mrCancel then Exit;
+    if Messagedlg(_Msg('是否確定刪除?'),mtconfirmation,[mbyes,mbcancel],0) = mrCancel then Exit;
     inx := ContextList.IndexOf(ExtractFileName(DisplayISB.FileName));
     ContextList.Delete(inx);
     ContextList.SaveToFile(ImageSavePath + NowCaseno+'\Context.dat');
@@ -3050,18 +3084,18 @@
     Context_DocnoList.LoadFromFile(ImageSavePath + NowCaseno+'\Context_DocNo.dat');
     if FileExists(ImageSavePath + NowCaseno+'\CustomDocNo.dat') then
       Cust_DocNoList.LoadFromFile(ImageSavePath + NowCaseno+'\CustomDocNo.dat');
-    //DrawDocItem1(MytreeNode1,Doc_Inf_List,NowCaseno);  //201408280��
+    //DrawDocItem1(MytreeNode1,Doc_Inf_List,NowCaseno);  //201408280改
     DrawDocItem2(MytreeNode1,NowCaseno);
 
     //DrawDocItem(MytreeNode1,FORM_INF_List,NowCaseno);
     P := ContextList.Count;
-    MytreeNode1.Text := Format(_Msg('%s-%d��'),[NowCaseno,p]);
-    ClearErrini(NowCaseno,MyTreeNode1);  //�M���ˮְO��
+    MytreeNode1.Text := Format(_Msg('%s-%d頁'),[NowCaseno,p]);
+    ClearErrini(NowCaseno,MyTreeNode1);  //清掉檢核記錄
     NewTreeNodeRefresh;
     TreeView1Click(self);
 
   end;
-  //Showmessage(_Msg('�R������'));  //20101101 User�n�D����
+  //Showmessage(_Msg('刪除完成'));  //20101101 User要求拿掉
 end;
 
 procedure TCB_IMGPSScanX.PM509Click(Sender: TObject);
@@ -3073,99 +3107,123 @@
 begin
   DeskewImg(DisplayISB.Graphic);
   DisplayISB.SaveToFile(DisplayISB.FileName);
-  ClearErrini(NowCaseno,MyTreeNode1);  //�M���ˮְO��
+  ClearErrini(NowCaseno,MyTreeNode1);  //清掉檢核記錄
 end;
 
 procedure TCB_IMGPSScanX.PopupMenu1Popup(Sender: TObject);
 begin
-  PM101.Visible := False;   //�R��
-  PM102.Visible := False;   //�ק�ץ�s��
-  PM103.Visible := False;   //���˾��[�J�v��
-  PM104.Visible := False;   //�ɮץ[�J�v��
-  PM106.Visible := False;   //�ƻs���ܨ�L�s��
-  PM107.Visible := False;   //�g�Ƶ�
-  PM108.Visible := False;   //�k��
-  PM109.Visible := False;   //�ˮ֦���
-  PM110.Visible := False;   //�s�W�ۭq���
-  PM111.Visible := False;   //�ק����
+  PM101.Visible := False;   //刪除
+  PM102.Visible := False;   //修改案件編號
+  PM103.Visible := False;   //掃瞄器加入影像
+  PM104.Visible := False;   //檔案加入影像
+  PM106.Visible := False;   //複製文件至其他編號
+  PM107.Visible := False;   //寫備註
+  PM108.Visible := False;   //歸類
+  PM109.Visible := False;   //檢核此筆
+  PM110.Visible := False;   //新增自訂文件
+  PM111.Visible := False;   //修改份數
 
   if (FMode = 'SAMPLESCAN') then Exit;
 
   if TreeView1.Selected = nil then Exit;
-  if TreeView1.Selected = NewTreeNode  then     //�s���˥�
+  if TreeView1.Selected = NewTreeNode  then     //新掃瞄件
   begin
     if (FMode = 'NSCAN') then
     begin
 //ShowMessage('AAAA');
-      PM101.Visible := True;   //�R��
-      PM103.Visible := True;   //���˾��[�J�v��
-      PM104.Visible := True;   //�ɮץ[�J�v��
+      PM101.Visible := True;   //刪除
+      PM103.Visible := True;   //掃瞄器加入影像
+      PM104.Visible := True;   //檔案加入影像
+    end;
+
+    if FMode='ESCAN' then
+    begin
+      PM101.Visible := False;
     end;
   end
-  Else if TreeView1.Selected = MyTreeNode1 then    //�ץ�h
+  Else if TreeView1.Selected = MyTreeNode1 then    //案件層
   begin
-    PM101.Visible := True;   //�R��
+    PM101.Visible := True;   //刪除
     if not CaseDelete_Enable(NowCaseno) then //
       PM101.Enabled := False
     else
       PM101.Enabled := True;
-    PM103.Visible := True;   //���˾��[�J�v��
-    //PM107.Visible := True;   //�g�Ƶ�
-    //PM109.Visible := True;   //�ˮ֦���
+    PM103.Visible := True;   //掃瞄器加入影像
+    //PM107.Visible := True;   //寫備註
+    //PM109.Visible := True;   //檢核此筆
     if FCustDocYN <> 'N' Then
-      PM110.Visible := True;   //�s�W�ۭq���
-    PM104.Visible := True;   //�ɮץ[�J�v��
+      PM110.Visible := True;   //新增自訂文件
+    PM104.Visible := True;   //檔案加入影像
     if (FMode = 'NSCAN') then
     begin
-      PM102.Visible := True;   //�ק�ץ�s��
+      PM102.Visible := True;   //修改案件編號
+    end;
+    if FMode='ESCAN' then
+    begin
+      PM101.Visible := False;
     end;
   end
-  Else if TreeView1.Selected = MyTreeNode2 then    //���h
+  Else if TreeView1.Selected = MyTreeNode2 then    //文件層
   begin
-    PM101.Visible := True;   //�R��
-    //PM107.Visible := True;   //�g�Ƶ�
-    //PM109.Visible := True;   //�ˮ֦���
+    PM101.Visible := True;   //刪除
+    //PM107.Visible := True;   //寫備註
+    //PM109.Visible := True;   //檢核此筆
     if FCustDocYN <> 'N' Then
-      PM110.Visible := True;   //�s�W�ۭq���
-    if GetUseCase('T',DisplayPath,NowDocDir) <> '' then   //�S���Q�ޥΨ���
-      PM101.Enabled := False    //�R��
+      PM110.Visible := True;   //新增自訂文件
+    if GetUseCase('T',DisplayPath,NowDocDir) <> '' then   //沒有被引用走的
+      PM101.Enabled := False    //刪除
     Else
-      PM101.Enabled := True;   //�R��
+      PM101.Enabled := True;   //刪除
     if ((GetDocDirCopies(NowCaseno,NowDocDir) > 1) or (not DocNoNeedDiv(NowDocNo)) or (Copy(NowDocNo,1,5)='ZZZZZ')) and (NowDocNo<> 'Attach') and (NowDocNo<> 'S_Attach') then
-      PM111.Visible := True;   //�ק����
+      PM111.Visible := True;   //修改份數
     if (FMode = 'NSCAN') then
-      PM102.Visible := True;   //�ק�ץ�s��
-  end
-  Else if TreeView1.Selected = MyTreeNode3 then    //���h
-  begin
-    PM101.Visible := True;   //�R��
-    PM104.Visible := True;   //�ɮץ[�J�v��
-    PM108.Visible := True;   //�k��
-    PM103.Visible := True;   //���˾��[�J�v��
-    if FCustDocYN <> 'N' Then
-      PM110.Visible := True;   //�s�W�ۭq���
-    if GetFormIDPage(ContextList,NowFormCode) < 1 Then
-      PM108.Visible := False;   //�k��
-    if GetUseCase('T',DisplayPath,NowDocDir) <> '' then   //�Q�ޥΨ���
+      PM102.Visible := True;   //修改案件編號
+    if FMode='ESCAN' then
     begin
-      PM101.Enabled := False;   //�R��
-      PM104.Enabled := False;   //�ɮץ[�J�v��
-      PM108.Enabled := False;   //�k��
+      PM101.Visible := False;
+    end;
+  end
+  Else if TreeView1.Selected = MyTreeNode3 then    //表單層
+  begin
+    PM101.Visible := True;   //刪除
+    PM104.Visible := True;   //檔案加入影像
+    PM108.Visible := True;   //歸類
+    PM103.Visible := True;   //掃瞄器加入影像
+    if FCustDocYN <> 'N' Then
+      PM110.Visible := True;   //新增自訂文件
+    if GetFormIDPage(ContextList,NowFormCode) < 1 Then
+      PM108.Visible := False;   //歸類
+    if GetUseCase('T',DisplayPath,NowDocDir) <> '' then   //被引用走的
+    begin
+      PM101.Enabled := False;   //刪除
+      PM104.Enabled := False;   //檔案加入影像
+      PM108.Enabled := False;   //歸類
     end
     Else
     begin
-      PM101.Enabled := True;   //�R��
-      PM104.Enabled := True;   //�ɮץ[�J�v��
-      PM108.Enabled := True;   //�k��
+      PM101.Enabled := True;   //刪除
+      PM104.Enabled := True;   //檔案加入影像
+      PM108.Enabled := True;   //歸類
     end;
 
     if (FMode = 'NSCAN') then
-      PM102.Visible := True;   //�ק�ץ�s��
-    //PM103.Visible := True;   //���˾��[�J�v��
-    //PM104.Visible := True;   //�ɮץ[�J�v��
-    //PM107.Visible := True;   //�g�Ƶ�
-    //PM109.Visible := True;   //�ˮ֦���
+      PM102.Visible := True;   //修改案件編號
+    //PM103.Visible := True;   //掃瞄器加入影像
+    //PM104.Visible := True;   //檔案加入影像
+    //PM107.Visible := True;   //寫備註
+    //PM109.Visible := True;   //檢核此筆
+
+    if FMode='ESCAN' then
+    begin
+      PM101.Visible := False;
+    end;
   end;
+
+  if FImgDelete='Y' then
+  begin
+    PM101.Visible:=True;
+  end;
+
 end;
 
 procedure TCB_IMGPSScanX.PopupMenu4Popup(Sender: TObject);
@@ -3218,27 +3276,27 @@
 
 procedure TCB_IMGPSScanX.PopupMenu6Popup(Sender: TObject);
 begin
-  PM601.Visible := False;  //�k��
-  PM602.Visible := False;  //�ۦ�w�q���W��
-  PM603.Visible := False;  //���y��������
-  PM604.Visible := False;  //�n���B��
-  PM605.Visible := False;  //�R��
+  PM601.Visible := False;  //歸類
+  PM602.Visible := False;  //自行定義文件名稱
+  PM603.Visible := False;  //掃描替換此頁
+  PM604.Visible := False;  //歪斜矯正
+  PM605.Visible := False;  //刪除
   if ((NowDocNo = 'Attach') or (NowDocNo = 'S_Attach')) and (FCustDocYN <> 'N') then
-    PM602.Visible := True;  //�ۦ�w�q���W��
-  //PM603.Visible := True;  //���y��������
-  PM604.Visible := True;  //�n���B��
-  PM601.Visible := True;  //�k��
-  PM605.Visible := True;  //�R��
+    PM602.Visible := True;  //自行定義文件名稱
+  //PM603.Visible := True;  //掃描替換此頁
+  PM604.Visible := True;  //歪斜矯正
+  PM601.Visible := True;  //歸類
+  PM605.Visible := True;  //刪除
 
-  if CheckSelectImg_UseCase(DisplayPath,NowCaseNo) then //��ܪ��v�����i���ޥΪ�
+  if CheckSelectImg_UseCase(DisplayPath,NowCaseNo) then //選擇的影像不可有引用的
   begin
-    PM601.Enabled := False;  //�k��
-    PM605.Enabled := False;  //�R��
+    PM601.Enabled := False;  //歸類
+    PM605.Enabled := False;  //刪除
   end
   Else
   begin
-    PM601.Enabled := True;  //�k��
-    PM605.Enabled := True;  //�R��
+    PM601.Enabled := True;  //歸類
+    PM605.Enabled := True;  //刪除
   end;
 end;
 
@@ -3277,15 +3335,15 @@
 begin
   ScanMode := smSample;
   ClearView(1);
-  Vmode := 0;  //�����歶
+  Vmode := 0;  //切成單頁
   GoViewMode;
   ScanInfo.ImageCount := 0;
   ScanPath := SamplePath;
   ScanCaseno := '';
   ContextList.Clear;
-  ShowText := _Msg('�d�����y��,�еy��');
+  ShowText := _Msg('範本掃描中,請稍候');
   DataLoading(True,True);
-  SampleFormID := UpperCase(InputBox(_Msg('�d���ɱ��˿�J�e��'),_Msg('�п�J���s��'),''));
+  SampleFormID := UpperCase(InputBox(_Msg('範本檔掃瞄輸入畫面'),_Msg('請輸入文件編號'),''));
   if SampleFormID <> '' then
   begin
     if FormIDExists(SampleFormID,False,0) then
@@ -3294,7 +3352,7 @@
     end
     Else
     begin
-      Showmessage(Format(_Msg('FormID:%s�|�����U'),[SampleFormID]));
+      Showmessage(Format(_Msg('FormID:%s尚未註冊'),[SampleFormID]));
       Panel1.Enabled := True;
       Panel2.Enabled := True;
       Exit;
@@ -3313,58 +3371,58 @@
 
     if (ISB1.FileName <> '') and FileExists(SamplePath+SampleFormID+'.tif') then
     begin
-      ShowText := _Msg('�d���ǰe��,�еy��');
+      ShowText := _Msg('範本傳送中,請稍候');
       DataLoading(True,True);
-      //�h�s�@��jpg
+      //多存一份jpg
       ImageScrollBox1.LoadFromFile(SamplePath+SampleFormID+'.tif',1);
       BWTif2Jpg(ImageScrollBox1.Graphic);
       ImageScrollBox1.SaveToFile(SamplePath+SampleFormID+'.jpg');
-      //�h�s�@��jpg
+      //多存一份jpg
 
       NowWork_No := FormCode2WorkNo(SampleFormID);
       SendData := 'data='+FData+'&verify='+FVerify+'&work_no='+FWork_no+'&file_name='+SampleFormID+'.tif';
       if not upFile(HTTPSClient,FUrl,'service/imgpsc/IMGPSC02/sample',SendData,'file',SamplePath+SampleFormID+'.tif',FReWrite,Memo1,False) then
       begin
-        Showmessage(_Msg('�ǰe�d���ɮ׮�,�����o�Ϳ��~!!')+_MSg('���~�N�X:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason+')');
+        Showmessage(_Msg('傳送範本檔案時,網路發生錯誤!!')+_MSg('錯誤代碼:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason+')');
         DataLoading(False,False);
         Exit;
       end;
       if memo1.Lines.Strings[0] = '1' then
       begin
-        Showmessage(_Msg('�ǰe�d���ɮ׮�,�����o�Ϳ��~!!')+_Msg('���~��]:')+memo1.Lines.Strings[1]);
+        Showmessage(_Msg('傳送範本檔案時,網路發生錯誤!!')+_Msg('錯誤原因:')+memo1.Lines.Strings[1]);
         DataLoading(False,False);
         Exit;
       end
       Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
       begin
-        Showmessage(_Msg('�ǰe�d���ɮ׮�,�����o�Ϳ��~!!')+_Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J'));
+        Showmessage(_Msg('傳送範本檔案時,網路發生錯誤!!')+_Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入'));
         DataLoading(False,False);
         Exit;
       end;
 
-      if FileExists(SamplePath+SampleFormID+'.jpg') then   //�ǰeJPG�v��
+      if FileExists(SamplePath+SampleFormID+'.jpg') then   //傳送JPG影像
       begin
         SendData := 'data='+FData+'&verify='+FVerify+'&work_no='+FWork_no+'&file_name='+SampleFormID+'.jpg';
         if not upFile(HTTPSClient,FUrl,'service/imgpsc/IMGPSC02/sample',SendData,'file',SamplePath+SampleFormID+'.jpg',FReWrite,Memo1,False) then
         begin
-          Showmessage(_Msg('�ǰe�d���ɮ�(JPG)��,�����o�Ϳ��~!!')+_MSg('���~�N�X:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason+')');
+          Showmessage(_Msg('傳送範本檔案(JPG)時,網路發生錯誤!!')+_MSg('錯誤代碼:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason+')');
           DataLoading(False,False);
           Exit;
         end;
         if memo1.Lines.Strings[0] = '1' then
         begin
-          Showmessage(_Msg('�ǰe�d���ɮ�(JPG)��,�����o�Ϳ��~!!')+_Msg('���~��]:')+memo1.Lines.Strings[1]);
+          Showmessage(_Msg('傳送範本檔案(JPG)時,網路發生錯誤!!')+_Msg('錯誤原因:')+memo1.Lines.Strings[1]);
           DataLoading(False,False);
           Exit;
         end
         Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
         begin
-          Showmessage(_Msg('�ǰe�d���ɮ�(JPG)��,�����o�Ϳ��~!!')+_Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J'));
+          Showmessage(_Msg('傳送範本檔案(JPG)時,網路發生錯誤!!')+_Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入'));
           DataLoading(False,False);
           Exit;
         end;
       end;
-      Showmessage(_Msg('�ǰe����'));
+      Showmessage(_Msg('傳送完成'));
     end;
   end;
   DataLoading(False,False);
@@ -3481,12 +3539,12 @@
 begin
   IF not InitialOk Then
   begin
-    Showmessage(_msg('��T�|���U������,�еy�ԩέ��s�i�J'));
+    Showmessage(_msg('資訊尚未下載完成,請稍候或重新進入'));
     Exit;
   end;
   if MyTreeNode1 = nil then
   begin
-    Showmessage(_Msg('�Х���ܮץ�'));
+    Showmessage(_Msg('請先選擇案件'));
     Exit;
   end;
   Panel1.Enabled := False;
@@ -3509,10 +3567,10 @@
   //P := ContextList.Count;
   GetCase_PageCount(CaseCount,PageCount);
   v := Pos('-',NewTreeNode.Text);
-  NewTreeNode.Text := Format(_Msg('%s-�@%d���@%d��'),[Copy(NewTreeNode.Text,1,v-1),CaseCount,PageCount]);
-  MytreeNode1.Text := Format(_Msg('%s-%d��'),[NowCaseno,GetCasePage(ImageSavePath,NowCaseno)]);
+  NewTreeNode.Text := Format(_Msg('%s-共%d筆共%d頁'),[Copy(NewTreeNode.Text,1,v-1),CaseCount,PageCount]);
+  MytreeNode1.Text := Format(_Msg('%s-%d頁'),[NowCaseno,GetCasePage(ImageSavePath,NowCaseno)]);
 
-  ClearErrini(NowCaseno,MyTreeNode1);  //�M���ˮְO��
+  ClearErrini(NowCaseno,MyTreeNode1);  //清掉檢核記錄
   SetDocDirtoSelected(MyTreeNode1,FirstDocDir);
   TreeView1Click(self);
 end;
@@ -3533,9 +3591,9 @@
   //Case2upload(NowCaseNo);
   //mkdir(DisplayPath+'Test\');
   //Download2Case(DisplayPath+'Upload\',DisplayPath+'Test\');
-  //CreateFormID_FormName(DisplayPath);  //����FormID_FormName.dat
-  //CreateDocNo_DocName(DisplayPath); //����DocNo_Name.dat
-  //Showmessage(CreateDocNo_Info(DisplayPath));  //���� Docno,����,����;Docno,����,���� ���^�Ǧr��
+  //CreateFormID_FormName(DisplayPath);  //產生FormID_FormName.dat
+  //CreateDocNo_DocName(DisplayPath); //產生DocNo_Name.dat
+  //Showmessage(CreateDocNo_Info(DisplayPath));  //產生 Docno,份數,頁數;Docno,份數,頁數 的回傳字串
 
   //Showmessage(CreateDocnoFrom_Info(NowCaseno));
   //Showmessage(self.CreateCustDocNoFrom_Info(NowCaseno));
@@ -3575,7 +3633,7 @@
   //LoadImgFile;
   //LoadImgFile1;
   str:='';
-  for I := 1 to 11 do // �� OMRErrInfo �����e
+  for I := 1 to 11 do // 看 OMRErrInfo 的內容
   begin
   str:=str+BoolToStr(OMRErrInfo[i].Display)+','
           +BoolToStr(OMRErrInfo[i].Ignore)+','+OMRErrInfo[i].Info+','
@@ -3597,7 +3655,7 @@
 begin
   if not Scanner.IsConfigured then
   begin
-    ShowMessage(_Msg('TWAIN �����X�ʩ|���w��'));
+    ShowMessage(_Msg('TWAIN 掃瞄驅動尚未安裝'));
     Exit;
   end;
   FillChar(ScanInfo, SizeOf(ScanInfo), 0);
@@ -3605,7 +3663,7 @@
   ScanInfo.ImageCount := 0;
   ScanInfo.Graphic := TTiffGraphic.Create;
   try
-    ISB := nil; //�W�s
+    ISB := nil; //規零
     Scanner.RequestedXDpi := ScanDpi;
     Scanner.RequestedYDpi := ScanDpi;
     Scanner.RequestedImageFormat := ScanColor;
@@ -3613,15 +3671,15 @@
 
     Try
       Scanner.OpenSource;
-      Scanner.Duplex := ScanDuplex; //����
-      //Scanner.FEEDERENABLED  := not ScanFlatCB.Checked;     // ���������x
+      Scanner.Duplex := ScanDuplex; //雙面
+      //Scanner.FEEDERENABLED  := not ScanFlatCB.Checked;     // 先拿掉平台
       If ScanImgSetUse Then
       begin
         Scanner.ScanBrightness := ScanBright;
         Scanner.ScanContrast := ScanContrast;
       end;
     except
-      Showmessage(_Msg('���˾��o�Ϳ��~!!'));
+      Showmessage(_Msg('掃瞄器發生錯誤!!'));
       Scanner.CloseSource;
       Exit;
     end;
@@ -3695,18 +3753,18 @@
         If (MpsBarcodeinf.r180[i] <> 0) and (Length(MpsBarcodeinf.Text[i])=FormIDLength) Then
         begin
           Rotate(pScanInfo^.Graphic,MpsBarcodeinf.r180[i]);
-          MpsGetBarcode(pScanInfo^.Graphic,MpsBarcodeinf);  //�����A�����@�����X��T
+          MpsGetBarcode(pScanInfo^.Graphic,MpsBarcodeinf);  //旋轉後再重取一次條碼資訊
           Break;
         end;
       end;
 
-      //�v���ϦV
+      //影像反向
       IF ScannerReverse then
         NegativeImg(pScanInfo^.Graphic);
-      //�ɱ��B��
+      //傾斜矯正
       IF ScanDeskew Then
         DeskewImg(pScanInfo^.Graphic);
-      //�M����
+      //清黑邊
       IF BoardClear then
         CleanupBorder(pScanInfo^.Graphic);
     end
@@ -3721,7 +3779,7 @@
           If (MpsBarcodeinf.r180[i] <> 0) and (Length(MpsBarcodeinf.Text[i])=FormIDLength) Then
           begin
             Rotate(ISB_BW.Graphic,MpsBarcodeinf.r180[i]);
-            MpsGetBarcode(ISB_BW.Graphic,MpsBarcodeinf);  //�����A�����@�����X��T
+            MpsGetBarcode(ISB_BW.Graphic,MpsBarcodeinf);  //旋轉後再重取一次條碼資訊
             Break;
           end;
         end;
@@ -3746,7 +3804,7 @@
         If (MpsBarcodeinf.r180[i] <> 0) and (Length(MpsBarcodeinf.Text[i])=FormIDLength) Then
         begin
           Rotate(ISB_BW.Graphic,MpsBarcodeinf.r180[i]);
-          MpsGetBarcode(ISB_BW.Graphic,MpsBarcodeinf);  //�����A�����@�����X��T
+          MpsGetBarcode(ISB_BW.Graphic,MpsBarcodeinf);  //旋轉後再重取一次條碼資訊
           Break;
         end;
       end;
@@ -3769,13 +3827,13 @@
     //Application.ProcessMessages;
     if CheckNeedCrop(iGraphic_First) Then
     begin
-      iRect.Left := pScanInfo^.Graphic.Width div 2;    //�������䪺�v��
+      iRect.Left := pScanInfo^.Graphic.Width div 2;    //先取左邊的影像
       iRect.Top := 0;
       iRect.Right := pScanInfo^.Graphic.Width;
       iRect.Bottom := pScanInfo^.Graphic.Height;
       CropImg(iGraphic_First,iRect);
 
-      iGraphic_Sec.Assign(pScanInfo^.Graphic);         //�A���k�䪺�v��
+      iGraphic_Sec.Assign(pScanInfo^.Graphic);         //再取右邊的影像
       iRect.Left := 0;
       iRect.Top := 0;
       iRect.Right := pScanInfo^.Graphic.Width div 2;
@@ -3850,21 +3908,21 @@
   case ScanMode of
     smNew:
       begin
-        if ScanImgShowMode = 0 then  //�M�����
+        if ScanImgShowMode = 0 then  //清楚顯示
         begin
           ISB := FindISB2View(VMode);
           ISB.AntiAliased := True;
           ISB.ZoomMode := zmFittopage;
           ISB.LoadFromFile(PEFileName,1);
         end
-        Else if ScanImgShowMode = 1 then  //�ҽk���
+        Else if ScanImgShowMode = 1 then  //模糊顯示
         begin
           ISB := FindISB2View(VMode);
           ISB.AntiAliased := False;
           ISB.ZoomMode := zmFittopage;
           ISB.LoadFromFile(PEFileName,1);
         end
-        Else if ScanImgShowMode = 1 then  //�����
+        Else if ScanImgShowMode = 1 then  //不顯示
         begin
 
         end
@@ -3907,11 +3965,11 @@
         FormID:='';
         FormVersion:='';
         PEFileName := '';
-        //if not FindNoSaveBarCode then   //�S�����x�s�v�������X
+        //if not FindNoSaveBarCode then   //沒有不儲存影像的條碼
         //begin
           if FormID = '' then
           begin
-            FormID := BarCode2FormID; //���XFormID
+            FormID := BarCode2FormID; //取出FormID
 
           end;
           if (FormID <> '') and ISGuideFormID(FormID) then
@@ -3921,17 +3979,17 @@
             FormID := NowGuideFormID;
           DocNo := FormCode2DocNo(FormID);
 
-          if (FormID <>'') and FindDivFormCode(FormID) Then  //�u����׭��W���ץ���X
+          if (FormID <>'') and FindDivFormCode(FormID) Then  //只找分案頁上的案件條碼
           begin
             ScanInfo.ImageCount := 0;
             ClearView(1);
             ContextList.Clear;
             Context_DocnoList.Clear;
-            ClearCaseIndex;                //�M���ץ����
-            ScanCaseno := BarCode2CaseID; //���X�ץ�s��
+            ClearCaseIndex;                //清掉案件索引
+            ScanCaseno := BarCode2CaseID; //取出案件編號
             NowGuideFormID := '';
           end;
-          if ScanCaseno = '' then //�@�}�l���S���
+          if ScanCaseno = '' then //一開始都沒找到
           begin
             ScanCaseno := GetNoNameCase(ImageSavePath);
           end;
@@ -3949,7 +4007,7 @@
           Str2Dir(ScanPath);
 
           ScanDocDir := FindLastestDocDir(ScanCaseno,DocNo);
-          if DocNoNeedDiv(DocNo) then   //�n������
+          if DocNoNeedDiv(DocNo) then   //要分份數
           begin
             //Showmessage(DocNo+#13+FormCode2Page(FormID)+#13+inttostr(GetDocDir_Page(ScanCaseno,ScanDocDir))+#13+ScanDocDir);
             if ((FormCode2Page(FormID) = '01') and (GetDocDir_Page(ScanCaseno,ScanDocDir)>0))  or (ScanDocDir = '') then
@@ -3958,11 +4016,11 @@
               ScanDocDir := DocNo2DocNoDir(ImageSavePath + ScanCaseno+'\',DocNo);
             end;
           end
-          Else        //��������
+          Else        //不分份數
           begin
             if DocNo <> '' then
               ScanDocDir := DocNo
-            else      //Attach ����
+            else      //Attach 附件
               ScanDocDir := DocNo2DocNoDir(ImageSavePath + ScanCaseno+'\',DocNo);
           end;
           //ScanDocDir := GetDocNoDir(ImageSavePath+ScanCaseno+'\',DocNo);
@@ -3982,17 +4040,17 @@
           ScanSaveFilename := FormID;
 
           Str2Dir(ScanPath);
-          if ScanSaveFilename = '' then //����
+          if ScanSaveFilename = '' then //附件
             ScanSaveFilename:= Add_Zoo(GetDocDir_Page(ScanCaseNo,ScanDocDir)+1,3)+ext
             //ScanSaveFilename:= Add_Zoo(ScanInfo.ImageCount+1,3)+ext
           Else
             ScanSaveFilename := Add_Zoo(GetDocDir_Page(ScanCaseNo,ScanDocDir)+1,3)+'_'+ScanSaveFilename+ext;
-          if not FindNoSaveBarCode then   //�S�����x�s�v�������X
+          if not FindNoSaveBarCode then   //沒有不儲存影像的條碼
           begin
             if ScanInfo.ImageCount = 0 then
             begin
               SetCaseList('A',-1,ScanCaseno);
-              WriteCaseIndex(ImageSavePath + ScanCaseno+'\');  //�g�J�ץ����
+              WriteCaseIndex(ImageSavePath + ScanCaseno+'\');  //寫入案件索引
               MyTreeNode1 := TreeView1.Items.AddChild(NewTreenode,ScanCaseno);
               MyTreenode1.ImageIndex := 2;
               MyTreenode1.SelectedIndex := 2;
@@ -4017,7 +4075,7 @@
     smInsert:
       begin
         ScanSaveFilename := '';
-        FormID := BarCode2FormID; //���XFormID
+        FormID := BarCode2FormID; //取出FormID
         if (FormID <> '') and ISGuideFormID(FormID) then
           NowGuideFormID := FormID;
         //Showmessage('A:'+FormID+#13+'B:'+NowGuideFormID);
@@ -4025,7 +4083,7 @@
           FormID := NowGuideFormID;
         DocNo := FormCode2DocNo(FormID);
         ScanDocDir := FindLastestDocDir(ScanCaseno,DocNo);
-        if DocNoNeedDiv(DocNo) then   //�n������
+        if DocNoNeedDiv(DocNo) then   //要分份數
         begin
           if ((FormCode2Page(FormID) = '01') and (GetDocDir_Page(ScanCaseno,ScanDocDir)>0)) or (ScanDocDir = '') then
           begin
@@ -4033,11 +4091,11 @@
             ScanDocDir := DocNo2DocNoDir(ImageSavePath + ScanCaseno+'\',DocNo);
           end;
         end
-        Else        //��������
+        Else        //不分份數
         begin
           if DocNo <> '' then
             ScanDocDir := DocNo
-          else      //Attach ����
+          else      //Attach 附件
             ScanDocDir := DocNo2DocNoDir(ImageSavePath + ScanCaseno+'\',DocNo);
         end;
         if FirstDocDir = '' Then
@@ -4050,7 +4108,7 @@
 
         ScanSaveFilename := FormID;
         Str2Dir(ScanPath);
-        if ScanSaveFilename = '' then //����
+        if ScanSaveFilename = '' then //附件
           ScanSaveFilename:= Add_Zoo(GetDocDir_Page(ScanCaseno,ScanDocdir)+1,3)+ext
         Else
           ScanSaveFilename := Add_Zoo(GetDocDir_Page(ScanCaseno,ScanDocdir)+1,3)+'_'+ScanSaveFilename+ext;
@@ -4072,7 +4130,7 @@
           begin
             BarStr := BarStr + MpsBarCodeinf.Text[i];
           end;
-          Showmessage(_Msg('���Ѩ쪺BarCode:')+#13+BarStr);
+          Showmessage(_Msg('辨識到的BarCode:')+#13+BarStr);
         end;
       end;
     smRTS:
@@ -4097,7 +4155,7 @@
   IIS_File2Web.S_LicEnName := SFileName;
   IIS_File2Web.V_LicEnName := VFileName;
 
-  /////�U��MPSLIC_SCAN.lic //////
+  /////下載MPSLIC_SCAN.lic //////
   EnCodeDateTime := En_DecryptionStr_Base64('E',ServerDate+GetBalance2Time(Balance),Mpskey);
 
 
@@ -4106,24 +4164,24 @@
   SendData:='data='+HTTPEncode(UTF8Encode(FData))+'&verify='+FVerify+'&work_no=PLN&file=MPSLIC_SCAN.lic';
   if not dnFile_Get(HTTPSClient,Furl,'service/imgpsc/IMGPSC04/sample',SendData,LngPath+SFileName,FReWrite,Memo1,False,DownImgStatus) then
   begin
-    Showmessage(_Msg('�ˬd���U�ɮ׮�,�����o�Ϳ��~!!')+_Msg('���~�N�X:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason);
+    Showmessage(_Msg('檢查註冊檔案時,網路發生錯誤!!')+_Msg('錯誤代碼:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason);
     Exit;
   end;
-  /////�U��MPSLIC_SCAN.lic /////
+  /////下載MPSLIC_SCAN.lic /////
 
-  /////�U��MPSLIC_VIEW.lic //////
+  /////下載MPSLIC_VIEW.lic //////
   EnCodeDateTime := En_DecryptionStr_Base64('E',ServerDate+GetBalance2Time(Balance),Mpskey);
-  //SendData := 'checktime='+EnCodeDateTime+'&workno=CW&formid=MPSLIC_VIEW.lic'+'&mode=sample';  //�o�̧令����CW 20121212
+  //SendData := 'checktime='+EnCodeDateTime+'&workno=CW&formid=MPSLIC_VIEW.lic'+'&mode=sample';  //這裡改成必傳CW 20121212
   //if not dnFile(HTTPSClient,Furl,'service/slic/SLIC04/sample',SendData,LngPath+VFileName,FReWrite,Memo1,False,DownImgStatus) then
   SendData:='data='+HTTPEncode(UTF8Encode(FData))+'&verify='+FVerify+'&work_no=PLN&file=MPSLIC_VIEW.lic';
   if not dnFile_Get(HTTPSClient,Furl,'service/imgpsc/IMGPSC04/sample',SendData,LngPath+VFileName,FReWrite,Memo1,False,DownImgStatus) then
   begin
-    Showmessage(_Msg('�ˬd���U�ɮ׮�,�����o�Ϳ��~!!')+_Msg('���~�N�X:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason);
+    Showmessage(_Msg('檢查註冊檔案時,網路發生錯誤!!')+_Msg('錯誤代碼:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason);
     Exit;
   end;
-  /////�U��MPSLIC_VIEW.lic /////
+  /////下載MPSLIC_VIEW.lic /////
 
-  ////��zip/////
+  ////壓zip/////
   S := TStringlist.Create;
   try
     S.Add(En_DecryptionStr_Base64('E',GetDate,'9338430'));
@@ -4144,8 +4202,8 @@
   DeleteFile(LngPath+VFileName);
   DeleteFile(LngPath+'mps.dat');
   end;
-  ////��zip//////
-  Showmessage('�ץX����,�ץX�ɮ�:'+LngPath+'mps.zip');
+  ////壓zip//////
+  Showmessage('匯出完成,匯出檔案:'+LngPath+'mps.zip');
 end;
 
 procedure TCB_IMGPSScanX.ImportBtClick(Sender: TObject);
@@ -4172,16 +4230,16 @@
 
       str2dir(ZipPath);
       if not ExecuteUnZip_Pwd(OpenDialog1.FileName,ZipPath,False,'9338430') then
-        Showmessage('�L�k�����Y');
+        Showmessage('無法解壓縮');
       if not FileExists(ZipPath+'mps.dat') then
       begin
-        Showmessage('�榡����,�L�k�פJ');
+        Showmessage('格式不符,無法匯入');
         Exit;
       end;
       S.LoadFromFile(ZipPath+'mps.dat');
       if (En_DecryptionStr_Base64('D',S.Strings[0],'9338430')<> ServerDate) then
       begin
-        Showmessage('�ɮ׹L��,�L�k�פJ');
+        Showmessage('檔案過期,無法匯入');
         Exit;
       end;
 
@@ -4191,29 +4249,29 @@
         RenameFile(ZipPath+S.Strings[i],ZipPath+LicName);
         if (LicName = 'MPSLIC_SCAN.lic') or (LicName = 'MPSLIC_VIEW.lic') then
 
-        /////�W��MPSLICXXXX.lic ////
+        /////上傳MPSLICXXXX.lic ////
         //if not upFile(HTTPSClient,FUrl,'servlet/CWC04','formid='+LicName+'@workno=CW@mode=sample','file',ZipPath+LicName,FReWrite,Memo1,False) then
         //begin
         SendData := 'data='+HTTPEncode(UTF8Encode(FData))+'&verify='+FVerify+'&work_no=PLN&file_name='+LicName;
         if not upFile(HTTPSClient,FUrl,'service/imgpsc/IMGPSC02/sample',SendData,'file',ZipPath+LicName,FReWrite,Memo1,False) then
         begin
-          Showmessage(_Msg('�ˬd���U��,�����o�Ϳ��~!!')+_MSg('���~�N�X:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason+')');
+          Showmessage(_Msg('檢查註冊時,網路發生錯誤!!')+_MSg('錯誤代碼:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason+')');
           DataLoading(False,False);
           Exit;
         end;
         if memo1.Lines.Strings[0] = '1' then
         begin
-          Showmessage(_Msg('�ˬd���U��,�����o�Ϳ��~!!')+_Msg('���~��]:')+memo1.Lines.Strings[1]);
+          Showmessage(_Msg('檢查註冊時,網路發生錯誤!!')+_Msg('錯誤原因:')+memo1.Lines.Strings[1]);
           DataLoading(False,False);
           Exit;
         end
         Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
         begin
-          Showmessage(_Msg('�ˬd���U��,�����o�Ϳ��~!!')+_Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J'));
+          Showmessage(_Msg('檢查註冊時,網路發生錯誤!!')+_Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入'));
           DataLoading(False,False);
           Exit;
         end;
-        /////�W��MPSLICXXXX.lic /////
+        /////上傳MPSLICXXXX.lic /////
       end;
     end;
   Finally
@@ -4221,7 +4279,7 @@
   S.Free;
   _DelTree(ZipPath);
   end;
-  Showmessage('�פJ����');
+  Showmessage('匯入完成');
 end;
 
 procedure TCB_IMGPSScanX.HotKeyDown (var Msg : TMessage);
@@ -4242,7 +4300,7 @@
     NowForm := TForm(Sender);
 
   FormName := NowForm.Name;
-  IISUnit.IIS_LngfileName := LngPath+'Language.Lng';  //��IISUnit ��h��y���r���
+  IISUnit.IIS_LngfileName := LngPath+'Language.Lng';  //給IISUnit 轉多國語言字串用
   if FLanguage = '' then
     FLanguage := 'zh_tw';
   IISUnit.IIS_NowLng := FLanguage;
@@ -4252,6 +4310,7 @@
       TForm(NowForm).Caption := ini.ReadString(FLanguage,FormName+'.FormTitle','');
     for i := 0 to NowForm.ComponentCount - 1 do
     begin
+//ShowMessage(NowForm.Components[i].Name);
       if NowForm.Components[i] is TButton then
       begin
         TButton(NowForm.Components[i]).Caption := ini.ReadString(FLanguage,FormName+'.'+TButton(NowForm.Components[i]).Name,'');
@@ -4341,7 +4400,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.FindISB2View(Vmode:Integer):TImageScrollBox; //���ISB�����
+Function TCB_IMGPSScanX.FindISB2View(Vmode:Integer):TImageScrollBox; //找空的ISB來顯示
 var
   i,n : Integer;
   ISB : TImageScrollBox;
@@ -4367,7 +4426,7 @@
   end;
 end;
 
-Procedure TCB_IMGPSScanX.R_W_Scanini(Mode:Char); //'R'��;'W'�g�J
+Procedure TCB_IMGPSScanX.R_W_Scanini(Mode:Char); //'R'讀取;'W'寫入
 var
   ini : Tinifile;
 begin
@@ -4386,7 +4445,7 @@
           ScanBright := ini.ReadInteger('Scanner','ScanBright',Def_ScanBright);
           ScanContrast := ini.ReadInteger('Scanner','ScanContrast',Def_ScanContrast);
           ScanImgShowMode := ini.ReadInteger('Scanner','ScanImgShowMode',Def_ScanImgShowMode);
-          ScanImgSetUse := ini.ReadBool('Scanner','ScanImgSetUse',Def_ScanImgSetUse);  //20101110 BA�����˾��t�Ӧ��ճ]�w�n�s�W���ﶵ�O�_�Ұ�
+          ScanImgSetUse := ini.ReadBool('Scanner','ScanImgSetUse',Def_ScanImgSetUse);  //20101110 BA說掃瞄器廠商有調設定要新增此選項是否啟動
         end;
     'W':begin
           ini.WriteBool('DeviceDelete','Mode',DeviceDelete);
@@ -4400,7 +4459,7 @@
           ini.WriteInteger('Scanner','ScanBright',ScanBright);
           ini.WriteInteger('Scanner','ScanContrast',ScanContrast);
           ini.WriteInteger('Scanner','ScanImgShowMode',ScanImgShowMode);
-          ini.WriteBool('Scanner','ScanImgSetUse',ScanImgSetUse);  //20101110 BA�����˾��t�Ӧ��ճ]�w�n�s�W���ﶵ�O�_�Ұ�
+          ini.WriteBool('Scanner','ScanImgSetUse',ScanImgSetUse);  //20101110 BA說掃瞄器廠商有調設定要新增此選項是否啟動
         end;
     end;
 
@@ -4409,13 +4468,13 @@
   end;
 end;
 
-Procedure TCB_IMGPSScanX.GetDefScanIni; //���o���˪��w�]��
+Procedure TCB_IMGPSScanX.GetDefScanIni; //取得掃瞄的預設值
 var
   i : Integer;
   PARA_NO,PARA_CONTENT: String;
 begin
   Def_DeviceDelete := True;
-  Def_DeviceDeleteSize := 3072;  //20120821 �令3000(�X�{)
+  Def_DeviceDeleteSize := 3072;  //20120821 改成3000(出現)
   Def_ScannerReverse := False;
   Def_BoardClear := False;
   Def_ScanDpi := 300;
@@ -4429,7 +4488,7 @@
 
   for i := 0 to WORK_INF_List.Count - 1 do
   begin
-    IF GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_BLANKDEL_USE' Then   //�ťխ��Ұ�
+    IF GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_BLANKDEL_USE' Then   //空白頁啟動
     begin
       PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
       if UpperCase(PARA_CONTENT) ='Y'  then
@@ -4437,7 +4496,7 @@
       Else
         Def_DeviceDelete := False;
     end
-    Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_BLANKDEL_SIZE' Then  //�ťխ�Size
+    Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_BLANKDEL_SIZE' Then  //空白頁Size
     begin
       PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
       if PARA_CONTENT = ''  then
@@ -4446,7 +4505,7 @@
         Def_DeviceDeleteSize := Strtoint(PARA_CONTENT);
 
     end
-    Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_REVERSE' Then  //�O�_�ݤϬ�
+    Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_REVERSE' Then  //是否需反相
     begin
       PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
       if UpperCase(PARA_CONTENT) ='Y'  then
@@ -4454,7 +4513,7 @@
       Else
         Def_ScannerReverse := False;
     end
-    Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_BOARDCLEAR' Then  //�O�_�M����
+    Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_BOARDCLEAR' Then  //是否清黑邊
     begin
       PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
       if UpperCase(PARA_CONTENT) ='Y'  then
@@ -4462,7 +4521,7 @@
       Else
         Def_BoardClear := False;
     end
-    Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_DPI' Then  //����DPI
+    Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_DPI' Then  //掃瞄DPI
     begin
       PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
       if PARA_CONTENT = ''  then
@@ -4470,7 +4529,7 @@
       else
         Def_ScanDpi := Strtoint(PARA_CONTENT);
     end
-    Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_DUPLEX' Then  //�O�_��������
+    Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_DUPLEX' Then  //是否雙面掃瞄
     begin
       PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
       if UpperCase(PARA_CONTENT) ='Y'  then
@@ -4479,7 +4538,7 @@
         Def_ScanDuplex := False;
 
     end
-    Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_ROTATE_MODE' Then //���ˮɱ��ਤ��
+    Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_ROTATE_MODE' Then //掃瞄時旋轉角度
     begin
       PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
       if PARA_CONTENT = '0' then
@@ -4493,7 +4552,7 @@
       Else
         Def_ScanRotate := 0;
     end
-    Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_DESKEW' Then //�O�_�ɱ��B��
+    Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_DESKEW' Then //是否傾斜矯正
     begin
       PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
       if UpperCase(PARA_CONTENT) ='Y'  then
@@ -4501,7 +4560,7 @@
       Else
         Def_ScanDeskew := False;
     end
-    Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_IMGSET_USE' Then  //�O�_�ϥΫG�׹��]�w
+    Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_IMGSET_USE' Then  //是否使用亮度對比設定
     begin
       PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
       if UpperCase(PARA_CONTENT) ='Y'  then
@@ -4509,7 +4568,7 @@
       else
         Def_ScanImgSetUse := False;
     end
-    Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_BRIGHT' Then //�G��
+    Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_BRIGHT' Then //亮度
     begin
       PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
       if PARA_CONTENT =''  then
@@ -4520,7 +4579,7 @@
         Def_ScanBright := 0;
 
     end
-    Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_CONTRAST' Then //���
+    Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_CONTRAST' Then //對比
     begin
       PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
       if PARA_CONTENT =''  then
@@ -4542,27 +4601,27 @@
       Else
         Def_ScanImgShowMode := 0;
     end
-    Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'CASE_IN_TIME' Then     //���i��I��ɶ�
+    Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'CASE_IN_TIME' Then     //取進件截止時間
     begin
       PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
       ScanDenialTime := PARA_CONTENT;
     end
-    Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_HINT' Then     //���y���ܦr��
+    Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'SCAN_HINT' Then     //掃描提示字串
     begin
       PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
       ScanDenialHint := PARA_CONTENT;
     end
-    Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'NO_SAVE_FORM_ID' Then     //���y���s�ɤ����N��
+    Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'NO_SAVE_FORM_ID' Then     //掃描不存檔之表單代號
     begin
       PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
       NoSaveBarCodeList.CommaText := PARA_CONTENT;
     end
-    Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'LOCAL_PATH' Then     //�����ݸ��|
+    Else if GetSQLData(WORK_INF_List,'PARA_NO',i) = 'LOCAL_PATH' Then     //本機端路徑
     begin
       PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
       ImagePath:= PARA_CONTENT;
     end
-    Else if UpperCase(GetSQLData(WORK_INF_List,'PARA_NO',i)) = 'GUIDEFORMID' Then     //��ɤޭ������
+    Else if UpperCase(GetSQLData(WORK_INF_List,'PARA_NO',i)) = 'GUIDEFORMID' Then     //當導引頁的表單
     begin
       PARA_CONTENT := GetSQLData(WORK_INF_List,'PARA_CONTENT',i);
       GuideFormIDList.CommaText := PARA_CONTENT;
@@ -4695,13 +4754,13 @@
   Result := False;     // http://192.168.0.101:8080/fbnp/servlet/CWC01?act=getservertime
   If not ProcessServlet_Get(HTTPSClient,FURL+'service/imgpsc/IMGPSC01/servertimeforocx','',FReWrite,Memo1,False) Then
   begin
-    HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+    HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
     Result := False;
     Exit;
   end;
   IF memo1.Lines.Strings[0] = '1' Then
   begin
-    HttpErrStr := _Msg('���~��]:')+memo1.Lines.Strings[1];
+    HttpErrStr := _Msg('錯誤原因:')+memo1.Lines.Strings[1];
     Result := False;
     Exit;
   end
@@ -4710,19 +4769,19 @@
     ServerDate := memo1.Lines.Strings[1];
     ServerTime := Copy(ServerDate,9,6);
     ServerDate := Copy(ServerDate,1,8);
-    Balance := GetBalance(ServerTime); //Server ��Local���ɶ��t
+    Balance := GetBalance(ServerTime); //Server 跟Local的時間差
     Result := True;
   end
   Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
   begin
-    HttpErrStr := _Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J');
+    HttpErrStr := _Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入');
     Result := False;
     Exit;
   end;
 
 end;
 
-Function TCB_IMGPSScanX.GetSetInf1 : Boolean; //���t�γ]�w��TMode1 DOC_INF
+Function TCB_IMGPSScanX.GetSetInf1 : Boolean; //取系統設定資訊Mode1 DOC_INF
 Var
   ColumeStr : String;
   S : TStringlist;
@@ -4737,14 +4796,14 @@
 
   If not ProcessServlet_Get(HTTPSClient,FURL+'service/imgpsc/IMGPSC01/tables','checktime='+EnCodeDateTime+'&mode=1&col='+En_DecryptionStr_Base64('E',ColumeStr,Mpskey)+'&work_no='+FWork_No,FReWrite,Memo1,False) Then
   begin
-    HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+    HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
     Result := False;
     Exit;
   end;
 
   IF memo1.Lines.Strings[0] = '1' Then
   begin
-    HttpErrStr := _Msg('���~��]:')+memo1.Lines.Strings[1];
+    HttpErrStr := _Msg('錯誤原因:')+memo1.Lines.Strings[1];
     Result := False;
     Exit;
   end
@@ -4758,13 +4817,13 @@
   end
   Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
   begin
-    HttpErrStr := _Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J');
+    HttpErrStr := _Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入');
     Result := False;
     Exit;
   end;
 end;
 
-Function TCB_IMGPSScanX.GetSetInf2 : Boolean; //���t�γ]�w��TMode2  DM_FORM_INF
+Function TCB_IMGPSScanX.GetSetInf2 : Boolean; //取系統設定資訊Mode2  DM_FORM_INF
 var
   ColumeStr : String;
   S : TStringlist;
@@ -4777,13 +4836,13 @@
   //If not ProcessServlet(HTTPSClient,FURL+'servlet/CWC02 ','checktime='+EnCodeDateTime+'&mode=2&col='+ColumeStr+'&workno='+FWork_No,FReWrite.Text,Memo1) Then
    If not ProcessServlet_Get(HTTPSClient,FURL+'service/imgpsc/IMGPSC01/tables','checktime='+EnCodeDateTime+'&mode=2&col='+En_DecryptionStr_Base64('E',ColumeStr,Mpskey)+'&work_no='+FWork_No,FReWrite,Memo1,False) Then
   begin
-    HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+    HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
     Result := False;
     Exit;
   end;
   IF memo1.Lines.Strings[0] = '1' Then
   begin
-    HttpErrStr := _Msg('���~��]:')+memo1.Lines.Strings[1];
+    HttpErrStr := _Msg('錯誤原因:')+memo1.Lines.Strings[1];
     Result := False;
     Exit;
   end
@@ -4797,13 +4856,13 @@
   end
   Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
   begin
-    HttpErrStr := _Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J');
+    HttpErrStr := _Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入');
     Result := False;
     Exit;
   end;
 end;
 
-Function TCB_IMGPSScanX.GetSetInf3 : Boolean; //���t�γ]�w��Tmode3  FORM_INF
+Function TCB_IMGPSScanX.GetSetInf3 : Boolean; //取系統設定資訊mode3  FORM_INF
 var
   ColumeStr : String;
   S : TStringlist;
@@ -4817,13 +4876,13 @@
   //If not ProcessServlet(HTTPSClient,FURL+'servlet/CWC02 ','checktime='+EnCodeDateTime+'&mode=3&col='+ColumeStr+'&workno='+FWork_No,FReWrite.Text,Memo1) Then
   If not ProcessServlet_Get(HTTPSClient,FURL+'service/imgpsc/IMGPSC01/tables','checktime='+EnCodeDateTime+'&mode=3&col='+En_DecryptionStr_Base64('E',ColumeStr,Mpskey)+'&work_no='+FWork_No,FReWrite,Memo1,False) Then
   begin
-    HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+    HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
     Result := False;
     Exit;
   end;
   IF memo1.Lines.Strings[0] = '1' Then
   begin
-    HttpErrStr := _Msg('���~��]:')+memo1.Lines.Strings[1];
+    HttpErrStr := _Msg('錯誤原因:')+memo1.Lines.Strings[1];
     Result := False;
     Exit;
   end
@@ -4837,13 +4896,13 @@
   end
   Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
   begin
-    HttpErrStr := _Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J');
+    HttpErrStr := _Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入');
     Result := False;
     Exit;
   end;
 end;
 
-Function TCB_IMGPSScanX.GetSetInf4 : Boolean; //���t�γ]�w��Tmode4  CHECK_RULE_INF
+Function TCB_IMGPSScanX.GetSetInf4 : Boolean; //取系統設定資訊mode4  CHECK_RULE_INF
 var
   ColumeStr : String;
   S : TStringlist;
@@ -4857,13 +4916,13 @@
   //If not ProcessServlet(HTTPSClient,FURL+'servlet/CWC02 ','checktime='+EnCodeDateTime+'&mode=4&col='+ColumeStr+'&workno='+FWork_No,FReWrite.Text,Memo1) Then
   If not ProcessServlet_Get(HTTPSClient,FURL+'service/imgpsc/IMGPSC01/tables','checktime='+EnCodeDateTime+'&mode=4&col='+En_DecryptionStr_Base64('E',ColumeStr,Mpskey)+'&work_no='+FWork_No,FReWrite,Memo1,False) Then
   begin
-    HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+    HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
     Result := False;
     Exit;
   end;
   IF memo1.Lines.Strings[0] = '1' Then
   begin
-    HttpErrStr := _Msg('���~��]:')+memo1.Lines.Strings[1];
+    HttpErrStr := _Msg('錯誤原因:')+memo1.Lines.Strings[1];
     Result := False;
     Exit;
   end
@@ -4877,14 +4936,14 @@
   end
   Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
   begin
-    HttpErrStr := _Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J');
+    HttpErrStr := _Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入');
     Result := False;
     Exit;
   end;
   CheckRule2OMRErrInfo;
 end;
 
-Function TCB_IMGPSScanX.GetSetInf5 : Boolean; //���t�γ]�w��Tmode5  MEMO_INF
+Function TCB_IMGPSScanX.GetSetInf5 : Boolean; //取系統設定資訊mode5  MEMO_INF
   var
   ColumeStr : String;
   S : TStringlist;
@@ -4897,13 +4956,13 @@
   //If not ProcessServlet(HTTPSClient,FURL+'servlet/CWC02 ','checktime='+EnCodeDateTime+'&mode=5&col='+ColumeStr+'&workno='+FWork_No,FReWrite.Text,Memo1) Then
   If not ProcessServlet_Get(HTTPSClient,FURL+'service/imgpsc/IMGPSC01/tables','checktime='+EnCodeDateTime+'&mode=5&col='+En_DecryptionStr_Base64('E',ColumeStr,Mpskey)+'&work_no='+FWork_No,FReWrite,Memo1,False) Then
   begin
-    HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+    HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
     Result := False;
     Exit;
   end;
   IF memo1.Lines.Strings[0] = '1' Then
   begin
-    HttpErrStr := _Msg('���~��]:')+memo1.Lines.Strings[1];
+    HttpErrStr := _Msg('錯誤原因:')+memo1.Lines.Strings[1];
     Result := False;
     Exit;
   end
@@ -4917,13 +4976,13 @@
   end
   Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
   begin
-    HttpErrStr := _Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J');
+    HttpErrStr := _Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入');
     Result := False;
     Exit;
   end;
 end;
 
-Function TCB_IMGPSScanX.GetSetInf6 : Boolean; //���t�γ]�w��Tmode5  WORK_INF
+Function TCB_IMGPSScanX.GetSetInf6 : Boolean; //取系統設定資訊mode5  WORK_INF
 var
   ColumeStr : String;
   S : TStringlist;
@@ -4937,13 +4996,13 @@
   //If not ProcessServlet(HTTPSClient,FURL+'servlet/CWC02 ','checktime='+EnCodeDateTime+'&mode=5&col='+ColumeStr+'&workno='+FWork_No,FReWrite.Text,Memo1) Then
   If not ProcessServlet_Get(HTTPSClient,FURL+'service/imgpsc/IMGPSC01/tables','checktime='+EnCodeDateTime+'&mode=6&col='+En_DecryptionStr_Base64('E',ColumeStr,Mpskey)+'&work_no='+FWork_No,FReWrite,Memo1,False) Then
   begin
-    HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+    HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
     Result := False;
     Exit;
   end;
   IF memo1.Lines.Strings[0] = '1' Then
   begin
-    HttpErrStr := _Msg('���~��]:')+memo1.Lines.Strings[1];
+    HttpErrStr := _Msg('錯誤原因:')+memo1.Lines.Strings[1];
     Result := False;
     Exit;
   end
@@ -4957,13 +5016,13 @@
   end
   Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
   begin
-    HttpErrStr := _Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J');
+    HttpErrStr := _Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入');
     Result := False;
     Exit;
   end;
 end;
 
-Function TCB_IMGPSScanX.GetSetInf7 : Boolean; //���t�γ]�w��Tmode5  LASTEST_FORM_INF
+Function TCB_IMGPSScanX.GetSetInf7 : Boolean; //取系統設定資訊mode5  LASTEST_FORM_INF
 var
   ColumeStr : String;
   S : TStringlist;
@@ -4977,13 +5036,13 @@
   //If not ProcessServlet(HTTPSClient,FURL+'servlet/CWC02 ','checktime='+EnCodeDateTime+'&mode=5&col='+ColumeStr+'&workno='+FWork_No,FReWrite.Text,Memo1) Then
   If not ProcessServlet_Get(HTTPSClient,FURL+'service/imgpsc/IMGPSC01/tables','checktime='+EnCodeDateTime+'&mode=7&col='+En_DecryptionStr_Base64('E',ColumeStr,Mpskey)+'&work_no='+FWork_No,FReWrite,Memo1,False) Then
   begin
-    HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+    HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
     Result := False;
     Exit;
   end;
   IF memo1.Lines.Strings[0] = '1' Then
   begin
-    HttpErrStr := _Msg('���~��]:')+memo1.Lines.Strings[1];
+    HttpErrStr := _Msg('錯誤原因:')+memo1.Lines.Strings[1];
     Result := False;
     Exit;
   end
@@ -4997,13 +5056,13 @@
   end
   Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
   begin
-    HttpErrStr := _Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J');
+    HttpErrStr := _Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入');
     Result := False;
     Exit;
   end;
 end;
 
-Procedure TCB_IMGPSScanX.SetFormID_DocNo; //�NFormID��Docno��X�ӥt�s�Jlist��    20130403�W�[
+Procedure TCB_IMGPSScanX.SetFormID_DocNo; //將FormID及Docno抽出來另存入list裡    20130403增加
 var
   i : Integer;
 begin
@@ -5015,7 +5074,7 @@
 
 end;
 
-Procedure TCB_IMGPSScanX.SetIn_WH_DocNo; //�N�n�J�w��DocNo��X�ӥt�s�Jlist��
+Procedure TCB_IMGPSScanX.SetIn_WH_DocNo; //將要入庫的DocNo抽出來另存入list裡
 var
   i : Integer;
 begin
@@ -5029,7 +5088,7 @@
   StringtoFile(IN_WH_DocNoList.Text,'D:\121.txt');}
 end;
 
-Procedure TCB_IMGPSScanX.CheckRule2OMRErrInfo;   //�ˮֳW�h��JOMRErrINFo Record
+Procedure TCB_IMGPSScanX.CheckRule2OMRErrInfo;   //檢核規則填入OMRErrINFo Record
 var i : Integer;
     CheckNo : String;
 begin
@@ -5040,14 +5099,14 @@
     if FindSQLData(CHECK_RULE_INF_List,'MESG_SHOW_TYPE,MESG_DISP_TYPE,CHECK_MESG,SCAN_MODE','CHECK_NO',CheckNo,0,FindResult) then
     begin
       if GetFindResult('MESG_SHOW_TYPE') = '1' then
-        OMRErrInfo[i].Display := True  //���
+        OMRErrInfo[i].Display := True  //顯示
       Else if GetFindResult('MESG_SHOW_TYPE') = '2' then
-        OMRErrInfo[i].Display := False; //�����
+        OMRErrInfo[i].Display := False; //不顯示
 
       if GetFindResult('MESG_DISP_TYPE') = '1' then
-        OMRErrInfo[i].Ignore := True    //�i����
+        OMRErrInfo[i].Ignore := True    //可忽略
       Else if GetFindResult('MESG_DISP_TYPE') = '2' then
-        OMRErrInfo[i].Ignore := False;  //���i����
+        OMRErrInfo[i].Ignore := False;  //不可忽略
 
       OMRErrInfo[i].Info := GetFindResult('CHECK_MESG');
       OMRErrInfo[i].Mode := GetFindResult('SCAN_MODE');
@@ -5074,7 +5133,7 @@
   end;
 end;
 
-Procedure TCB_IMGPSScanX.DeleteImageFile(Path,FileName,CaseID:String); // �R���ɮ�  (�L�k�o��DocDir��)
+Procedure TCB_IMGPSScanX.DeleteImageFile(Path,FileName,CaseID:String); // 刪除檔案  (無法得到DocDir用)
 var
   i : Integer;
   FileList:TStringlist;
@@ -5103,7 +5162,7 @@
   end;}
 end;
 
-Procedure TCB_IMGPSScanX.DeleteFormCodeFile(CaseID,DocDir,FormID:String);  //�R�����wFormID���
+Procedure TCB_IMGPSScanX.DeleteFormCodeFile(CaseID,DocDir,FormID:String);  //刪除指定FormID文件
 var
   i: Integer;
   FileList : TStringlist;
@@ -5128,7 +5187,7 @@
   {for i := ContextList.Count - 1 downto 0 do
   begin
     FName := ContextList.Strings[i];
-    if FormID = 'Err' then  //�R�����U���
+    if FormID = 'Err' then  //刪未註冊文件
     begin
       If not FormIDExists(FileName2FormCode(FName),False,0) Then
       begin
@@ -5149,7 +5208,7 @@
   ReSortFileName(Path); }
 end;
 
-Function TCB_IMGPSScanX.DeleteDocNoFile(Path,DocNo:String):Boolean;  //�R�����wDocNo���
+Function TCB_IMGPSScanX.DeleteDocNoFile(Path,DocNo:String):Boolean;  //刪除指定DocNo文件
 var
   i: Integer;
   FName : String;
@@ -5163,7 +5222,7 @@
       DeleteFile(Path+FName);
       ContextList.Delete(i);
       Context_DocnoList.Delete(i);
-      Result := True; //���R����w���
+      Result := True; //有刪到指定文件
     end;
   end;
   ContextList.SaveToFile(Path+'Context.dat');
@@ -5175,7 +5234,7 @@
     Cust_DocNoList.LoadFromFile(Path+'CustomDocNo.dat');
 end;
 
-Procedure TCB_IMGPSScanX.DeleteShowFile(Path:String); //�R����ܤ����v��
+Procedure TCB_IMGPSScanX.DeleteShowFile(Path:String); //刪除顯示中的影像
 var
   i : Integer;
   DelFile : String;
@@ -5189,7 +5248,7 @@
 
 end;
 
-Function TCB_IMGPSScanX.GetDataDocNoPage(MainDocNo,MainVersion:String):Integer;  //���O�������_��������
+Function TCB_IMGPSScanX.GetDataDocNoPage(MainDocNo,MainVersion:String):Integer;  //取記錄的文件_版本頁數
 var
   P : String;
 begin
@@ -5204,7 +5263,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.CheckCaseDocNoPage(CaseID,DocNo,Version:String;Pages:Integer):Integer; //���ץ�̪����_��������
+Function TCB_IMGPSScanX.CheckCaseDocNoPage(CaseID,DocNo,Version:String;Pages:Integer):Integer; //取案件裡的文件_版本頁數
 var
   i,n,Count : integer;
   S : TStringlist;
@@ -5225,7 +5284,7 @@
         begin
           //Showmessage(inttostr(Count+1));
           Inc(Count);
-          Break;   //���F...���}
+          Break;   //找到了...離開
         end;
       end;
     end;
@@ -5235,7 +5294,7 @@
   Result := Count;
 end;
 
-Function TCB_IMGPSScanX.FindFormCodePages(CaseID,FormCode:String):Integer;  //�p��ץ��FormID������
+Function TCB_IMGPSScanX.FindFormCodePages(CaseID,FormCode:String):Integer;  //計算案件裡FormID的頁數
 var
   i,Count : integer;
   S : TStringlist;
@@ -5259,7 +5318,7 @@
   Result := Count;
 end;
 
-Function TCB_IMGPSScanX.GetDataFormCodePages(FormCode:String):Integer;   //���O����FormcID������
+Function TCB_IMGPSScanX.GetDataFormCodePages(FormCode:String):Integer;   //取記錄的FormcID的頁數
 begin
   If FindSQLData(FORM_INF_List,'T1.MAX_PAGE','T1.FORM_ID',FormCode,0,FindResult) Then
   begin
@@ -5270,7 +5329,7 @@
   end;
 end;
 
-Procedure TCB_IMGPSScanX.CaseReSize(CaseID:String); //�ץ󪺼v���Y��
+Procedure TCB_IMGPSScanX.CaseReSize(CaseID:String); //案件的影像縮放
 var
   S : TStringlist;
   FileName : String;
@@ -5286,19 +5345,19 @@
     For i := 0 to S.Count -1 do
     begin
       FileName := S.Strings[i];
-      ImageReSize(CaseID,FileName);  //�̤Q�r�w���I���Y��
+      ImageReSize(CaseID,FileName);  //依十字定位點做縮放
     end;
   finally
   S.Free;
   end;
 end;
 
-Procedure TCB_IMGPSScanX.ImageReSize(CaseID,FileName:String);  //�̤Q�r�w���I���Y��
+Procedure TCB_IMGPSScanX.ImageReSize(CaseID,FileName:String);  //依十字定位點做縮放
 var
   FormID : String;
   DH,DW : String;
   NowW,NowH : Integer;
-  ANCHOR : String; //�O�_���Q�r�u
+  ANCHOR : String; //是否有十字線
   SizeStr : String;
   S : TStringlist;
   v,v1:Integer;
@@ -5312,7 +5371,7 @@
     DW := GetFindResult('T1.FORM_WIDTH');
     ANCHOR := UpperCase(GetFindResult('T1.ANCHOR'));
     ANCHOR := Index2Anchor(ANCHOR);
-    if ((ANCHOR = 'ANCHOR') or (ANCHOR = 'FRAME')) and (DH <> '') and (DW <> '') then  //���Q�r�w���I
+    if ((ANCHOR = 'ANCHOR') or (ANCHOR = 'FRAME')) and (DH <> '') and (DW <> '') then  //有十字定位點
     begin
       ImageScrollBox1.LoadFromFile(ImageSavePath+CaseID+'\Upload\'+FileName,1);
       //FindPoint(ImageScrollBox1.Graphic,UpLPoint,UpRPoint,DownLPoint,NowW,NowH);
@@ -5323,7 +5382,7 @@
       IF (SizeStr <> '') and (Copy(SizeStr,1,v) <> 'ERROR') then
       begin
         ImageScrollBox1.SaveToFile(ImageSavePath+CaseID+'\Upload\'+FileName);
-        S := TStringlist.Create;                     ///20110422���� �����W�Ǥ~��
+        S := TStringlist.Create;                     ///20110422拿掉 換成上傳才做
         if FileExists(ImageSavePath+CaseID+'\Upload\ReSize.dat') then
           S.LoadFromFile(ImageSavePath+CaseID+'\Upload\ReSize.dat');
         //S.Add(FormCode2FormName(FormID)+' '+SizeStr);
@@ -5331,7 +5390,7 @@
         S.SaveToFile(ImageSavePath+CaseID+'\Upload\ReSize.dat');
         S.Free;
       end;
-      if (Copy(SizeStr,1,v) = 'ERROR') then   //�����T�өw���I
+      if (Copy(SizeStr,1,v) = 'ERROR') then   //未找到三個定位點
       begin
         S := TStringlist.Create;
         if FileExists(ImageSavePath+CaseID+'\Upload\AnchorError.dat') then
@@ -5346,10 +5405,10 @@
   end;
 end;
 
-Procedure TCB_IMGPSScanX.ImageReSize_tmp(FormID,FileName:String);  //�̤Q�r�w���I���Y��(�Ȧs��)
+Procedure TCB_IMGPSScanX.ImageReSize_tmp(FormID,FileName:String);  //依十字定位點做縮放(暫存檔)
 var
   DH,DW : String;
-  ANCHOR : String; //�O�_���Q�r�u
+  ANCHOR : String; //是否有十字線
   SizeStr : String;
   S : TStringlist;
 begin
@@ -5359,7 +5418,7 @@
     DW := GetFindResult('T1.FORM_WIDTH');
     ANCHOR := UpperCase(GetFindResult('T1.ANCHOR'));
     ANCHOR := Index2Anchor(ANCHOR);
-    if ((ANCHOR = 'ANCHOR') or (ANCHOR = 'FRAME')) and (DH <> '') and (DW <> '') then  //���Q�r�w���I
+    if ((ANCHOR = 'ANCHOR') or (ANCHOR = 'FRAME')) and (DH <> '') and (DW <> '') then  //有十字定位點
     begin
       ImageScrollBox1.LoadFromFile(FileName,1);
       SizeStr := CheckSize(ImageScrollBox1,UpLPoint,UpRPoint,DownLPoint,DW,DH);
@@ -5382,7 +5441,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.TransCaseID(Path,CaseID:String;MainCase:Boolean):Boolean; //�ǰe�ץ�
+Function TCB_IMGPSScanX.TransCaseID(Path,CaseID:String;MainCase:Boolean):Boolean; //傳送案件
 Var
   i,n,v: Integer;
   ZipFileList : TStringlist;
@@ -5395,7 +5454,7 @@
   SendData:String;
   Doc_Data,Doc_Data1 : String;
   In_Doc1,In_Doc2 : String;
-  AttachYN : String; //�O�_������ Y:�� N:�S��
+  AttachYN : String; //是否有附件 Y:有 N:沒有
 begin
   Result := True;
   TransName := CaseID;
@@ -5408,68 +5467,84 @@
   if FileExists(Path+'CustomDocNo.dat') then
     Cust_DocNoList.LoadFromFile(Path+'CustomDocNo.dat');
   Pages := ContextList.Count;
-
-  if (FMode = 'NSCAN') or (FMode = 'ASCAN') or (FMode = 'DSCAN') or (FMode = 'SSCAN') or (FMode = 'MSCAN') or (FMode = 'RI_SCAN') or (FMode = 'RSCAN') or (FMode = 'ESCAN') then
+  if (FMode = 'NSCAN') or (FMode = 'ESCAN') or (FMode = 'ASCAN') or (FMode = 'DSCAN') or (FMode = 'SSCAN') or (FMode = 'MSCAN') or (FMode = 'RI_SCAN') or (FMode = 'RSCAN')  then
   begin
     //Showmessage('1');
     UpformID := GetCaseFormID(Path);
-    {if UpformID = '' then             //20131213  yuu�����ޥDform
+    {if UpformID = '' then             //20131213  yuu說不管主form
     begin
-      Showmessage(_msg('������DFormID!!'));
+      Showmessage(_msg('取不到主FormID!!'));
       Result := False;
       DataLoading(False,False);
       Exit;
     end;}
   end;
-  CaseResort2Scanlist(Path); //�ɦW�ӳ]�w�ƧDz���scanlist.dat
-  //CaseResort(Path);  //�ɦW�ӳ]�w�Ƨ�
-  CreateFormID_FormName(Path,CaseID);  //����FormID_FormName.dat
-  CreateDocNo_DocName(Path,CaseID); //����DocNo_Name.dat
-  Doc_Data := CreateDocNo_Info(CaseID);  //���ͫO�޳U��� Docno,����,����;Docno,����,���� ���^�Ǧr��
-  Doc_Data1 := CreateCustDocNo_Info(CaseID);  //���ͦ۩w��� Docname,����,����;Docno,����,���� ���^�Ǧr��
-  In_Doc1 := CreateDocnoFrom_Info(CaseID); //���ͳQ�޶i���O�޳U����T  Docno[tab]����[tab]�ץ�s��#13#10Docno[tab]����[tab]�ץ�s��
-  In_Doc2 := CreateCustDocNoFrom_Info(CaseID);   //���ͳQ�޶i���۩w����T  Docno[tab]����[tab]�ץ�s��#13#10Docno[tab]����[tab]�ץ�s��
-  AttachYN := CreateAttach_Info(CaseID); //�O�_�٦����� Y:�� N:�S��
+
+  CaseResort2Scanlist(Path); //檔名照設定排序產生scanlist.dat
+  //CaseResort(Path);  //檔名照設定排序
+  CreateFormID_FormName(Path,CaseID);  //產生FormID_FormName.dat
+  CreateDocNo_DocName(Path,CaseID); //產生DocNo_Name.dat
+//ShowMessage('EEEEEEEEEE');
+  Doc_Data := CreateDocNo_Info(CaseID);  //產生保管袋文件 Docno,份數,頁數;Docno,份數,頁數 的回傳字串
+//ShowMessage('1111111111');
+  Doc_Data1 := CreateCustDocNo_Info(CaseID);  //產生自定文件 Docname,份數,頁數;Docno,份數,頁數 的回傳字串
+//ShowMessage('2222222222');
+  In_Doc1 := CreateDocnoFrom_Info(CaseID); //產生被引進的保管袋文件資訊  Docno[tab]份數[tab]案件編號#13#10Docno[tab]份數[tab]案件編號
+//ShowMessage('333333333333333333');
+  In_Doc2 := CreateCustDocNoFrom_Info(CaseID);   //產生被引進的自定文件資訊  Docno[tab]份數[tab]案件編號#13#10Docno[tab]份數[tab]案件編號
+//ShowMessage('4444444444444');
+  AttachYN := CreateAttach_Info(CaseID); //是否還有附件 Y:有 N:沒有
   //self.ReadCaseIndex()
+//ShowMessage('555555555555');
   ReadCaseIndex(Path);
+//ShowMessage('DDDDDDDDDD');
   //LoanDoc := 'Y';
-  //���;B�n�v��
+  //產生遮罩影像
   if FWork_No = 'CW' then
     HaveMask := Case2Mask(Path,MaskPath);
-  //���;B�n�v��
+  //產生遮罩影像
  // S := S +#13+'5-->'+ Timetostr(now);
 
 
-
-  //////����/////
+//ShowMessage('壓縮前');
+  //////壓檔/////
   ZipMainFile(Path,Path,'Img.zip');
   if HaveMask then
-    ZipMaskFile(Path,MaskPath,Path,'MaskImg.zip');  //���B�n�]�w���~����
-  /////����////
-  ////�W��/////
-  SendData:='data='+HTTPEncode(UTF8Encode(FData))+'&verify='+FVerify+'&form_id='+UpformID+'&loan_doc='+Case_loandoc+'&case_no='+TransName+'&doc_data='+HTTPEncode(UTF8Encode(Doc_Data))+'&doc_data1='+HTTPEncode(UTF8Encode(Doc_Data1))+'&attach='+AttachYN+'&in_doc1='+HTTPEncode(UTF8Encode(In_Doc1))+'&in_doc2='+HTTPEncode(UTF8Encode(In_Doc2));
+    ZipMaskFile(Path,MaskPath,Path,'MaskImg.zip');  //有遮罩設定的才產生
+  /////壓檔////
+  ////上傳/////
+  SendData:='data='+HTTPEncode(UTF8Encode(FData))
+  +'&verify='+FVerify
+  +'&form_id='+UpformID
+  +'&loan_doc='+Case_loandoc
+  +'&case_no='+TransName
+  +'&doc_data='+HTTPEncode(UTF8Encode(Doc_Data))
+  +'&doc_data1='+HTTPEncode(UTF8Encode(Doc_Data1))
+  +'&attach='+AttachYN
+  +'&in_doc1='+HTTPEncode(UTF8Encode(In_Doc1))
+  +'&in_doc2='+HTTPEncode(UTF8Encode(In_Doc2));
 
   if not upFile(HTTPSClient,FUrl,'service/imgpsc/IMGPSC02/caseupload',SendData,'file',Path+'Img.zip',FReWrite,Memo1,False) then
   begin
-    Showmessage(Format(_Msg('�ǰe�ץ�s��(%s)�ɮ׮�,�����o�Ϳ��~!!'+_Msg('���~�N�X:')),[CaseID])+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason);
+    Showmessage(Format(_Msg('傳送案件編號(%s)檔案時,網路發生錯誤!!'+_Msg('錯誤代碼:')),[CaseID])+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason);
     Result := False;
     Exit;
   end;
   if memo1.Lines.Strings[0] = '1' then
   begin
-    Showmessage(Format(_Msg('�ǰe�ץ�s��(%s)�ɮ׮�,�����o�Ϳ��~!!')+_Msg('���~��]:'),[CaseID])+memo1.Lines.Strings[1]);
+    Showmessage(Format(_Msg('傳送案件編號(%s)檔案時,網路發生錯誤!!')+_Msg('錯誤原因:'),[CaseID])+memo1.Lines.Strings[1]);
     Result := False;
     Exit;
   end
   Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
   begin
-    Showmessage(Format(_Msg('�ǰe�ץ�s��(%s)�ɮ׮�,�����o�Ϳ��~!!')+_Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J'),[CaseID]));
+    Showmessage(Format(_Msg('傳送案件編號(%s)檔案時,網路發生錯誤!!')+_Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入'),[CaseID]));
     Result := False;
     Exit;
   end;
-  ////�W��////
+  ////上傳////
 
-  if FMode = 'ESCAN' then    //�W���¥�ޤJ�ɮ�      //20140616 �쥻���h�¥�A�h�s��,�אּ���h�s��A�h�¥�
+  if FMode = 'ESCAN' then    //上傳舊件引入檔案      //20140616 原本先搬舊件再搬新件,改為先搬新件再搬舊件
   begin
     if not TransOldCaseFile(ImageSavePath+CaseID+'\') then
     begin
@@ -5480,22 +5555,22 @@
 
 
 
-  // �I�sServer���� /////
+  // 呼叫Server完成 /////
   {If not CaseComplete(Path,CaseID,MainCase) Then
   begin
-    Showmessage(_Msg('�q���ץ�ǰe������,�����o�Ϳ��~!!')+HttpErrStr);
+    Showmessage(_Msg('通知案件傳送完成時,網路發生錯誤!!')+HttpErrStr);
     DataLoading(False,False);
     Result := False;
     Exit;
   end;  }
-  /// �I�sServer����////
+  /// 呼叫Server完成////
 
-  ////�R��////
-  //_DelTree(Path);  //�|�u�RTransPath
+  ////刪檔////
+  //_DelTree(Path);  //會只刪TransPath
 //ShowMessage('STOP');
   _DelTree(ImageSavePath+CaseID);
   SetCaseList('D',-1,CaseID);
-  ////�R��////
+  ////刪檔////
 end;
 
 Procedure TCB_IMGPSScanX.NewTreeNodeRefresh;
@@ -5503,10 +5578,10 @@
   v : Integer;
 begin
   //v := Pos('-',NewTreeNode.Text);
-  //NewTreeNode.Text := Copy(NewTreeNode.Text,1,v-1)+'-�@'+inttostr(NewTreeNode.Count)+'��';
+  //NewTreeNode.Text := Copy(NewTreeNode.Text,1,v-1)+'-共'+inttostr(NewTreeNode.Count)+'筆';
   GetCase_PageCount(CaseCount,PageCount);
   v := Pos('-',NewTreeNode.Text);
-  NewTreeNode.Text := Format(_Msg('%s-�@%d���@%d��'),[Copy(NewTreeNode.Text,1,v-1),CaseCount,PageCount]);
+  NewTreeNode.Text := Format(_Msg('%s-共%d筆共%d頁'),[Copy(NewTreeNode.Text,1,v-1),CaseCount,PageCount]);
 end;
 
 Procedure TCB_IMGPSScanX.MyTreeNode1Refresh;
@@ -5514,7 +5589,7 @@
   v : Integer;
 begin
   v := Pos('-',MyTreeNode1.Text);
-  MyTreeNode1.Text := Format(_Msg('%s-%d��'),[Copy(MyTreeNode1.Text,1,v-1),MyTreeNode1.Count]);
+  MyTreeNode1.Text := Format(_Msg('%s-%d筆'),[Copy(MyTreeNode1.Text,1,v-1),MyTreeNode1.Count]);
 end;
 
 Procedure TCB_IMGPSScanX.MyTreeNode2ReFresh(CaseID:String);
@@ -5522,7 +5597,7 @@
   P : Integer;
 begin
   //p:= ContextList.Count;
-  //MytreeNode1.Text := Format(_Msg('%s-%d��'),[CaseID,p]);
+  //MytreeNode1.Text := Format(_Msg('%s-%d頁'),[CaseID,p]);
   DrawDocItem2(MytreeNode1,CaseID);
   //DrawDocItem(MytreeNode1,FORM_INF_List,CaseID);
 end;
@@ -5530,12 +5605,12 @@
 Procedure TCB_IMGPSScanX.MyTreeNode3ReFresh(CaseID:String);
 begin
 
-  //DrawDocItem1(MytreeNode1,Doc_Inf_List,CaseID);  //201408280��
+  //DrawDocItem1(MytreeNode1,Doc_Inf_List,CaseID);  //201408280改
   DrawDocItem2(MytreeNode1,CaseID);
   //DrawDocItem(MytreeNode1,FORM_INF_List,CaseID);
 end;
 
-Function TCB_IMGPSScanX.Node2DocNo(Node2:TTreeNode):String;  //MyTreeNode2��DocNo�X��
+Function TCB_IMGPSScanX.Node2DocNo(Node2:TTreeNode):String;  //MyTreeNode2取DocNo出來
 var
   v,v1,v2 : Integer;
 begin
@@ -5549,7 +5624,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.Node3DocNo(Node3:TTreeNode):String;  //MyTreeNode3��DocNo�X��
+Function TCB_IMGPSScanX.Node3DocNo(Node3:TTreeNode):String;  //MyTreeNode3取DocNo出來
 var
   v,v1,v2 : Integer;
 begin
@@ -5563,7 +5638,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.Node3FormID(Node3:TTreeNode):String;  //MyTreeNode3��FormCode�X��
+Function TCB_IMGPSScanX.Node3FormID(Node3:TTreeNode):String;  //MyTreeNode3取FormCode出來
 var
   v,v1,v2 : Integer;
 begin
@@ -5578,7 +5653,7 @@
 end;
 
 
-Function TCB_IMGPSScanX.GetNode2Name(Node2:TTreeNode):String;  //��MyTreeNode2���ѧO�r�X��(�O���e�I���)
+Function TCB_IMGPSScanX.GetNode2Name(Node2:TTreeNode):String;  //取MyTreeNode2的識別字出來(記之前點選用)
 var
   v : Integer;
 begin
@@ -5605,19 +5680,19 @@
     DownUrl := FUrl+CaseID+'&checktime='+EnCodeDateTime;
     if not dnFile(HTTPSClient,DownUrl,'','',DPath+CaseID+'.zip',FReWrite,Memo1,False,DownImgStatus) then
     begin
-      HttpErrStr := _Msg('���~�N�X:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason;
+      HttpErrStr := _Msg('錯誤代碼:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason;
       Result := False;
       Exit;
     end;
     if Memo1.Lines.Strings[0] = '1' then
     begin
-      HttpErrStr :=_Msg('���~��]:')+memo1.Lines.Strings[1];
+      HttpErrStr :=_Msg('錯誤原因:')+memo1.Lines.Strings[1];
       Result := False;
       Exit;
     end
     Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
     begin
-      HttpErrStr := _Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J');
+      HttpErrStr := _Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入');
       Result := False;
       Exit;
     end;
@@ -5637,14 +5712,14 @@
     end
     Else
     begin
-      if ((FMode = 'FSCAN') or (FMode = 'ISCAN')) and (Memo1.Lines.Strings[0] ='NO_FILE') then  //FGIS�e�x�פJ��S���v���O�諸
+      if ((FMode = 'FSCAN') or (FMode = 'ISCAN')) and (Memo1.Lines.Strings[0] ='NO_FILE') then  //FGIS前台匯入件沒有影像是對的
       begin
         SC.Clear;
         SC.SaveToFile(DPath+'Context.dat');
       end
       Else
       begin
-        HttpErrStr := _Msg('�䤣��v��');
+        HttpErrStr := _Msg('找不到影像');
         Result := False;
         Exit;
       end;
@@ -5660,7 +5735,7 @@
       Version := FormCode2Version(FormID);
       If FindSQLData(Doc_Inf_List,'ADD_SCAN_RULE','DOC_NO,DOC_VERSION',DocNo+','+Version,0,FindResult) Then
       begin
-        if GetFindResult('ADD_SCAN_RULE') = 'R' then  //���������R�A�[  20101026 User�ѧRFormCode��RDocNo
+        if GetFindResult('ADD_SCAN_RULE') = 'R' then  //替換的先刪再加  20101026 User由刪FormCode改刪DocNo
         begin
           //DeleteFormCodeFile(DPath,FormID);
           ContextList.LoadFromFile(DPath+'Context.dat');
@@ -5668,7 +5743,7 @@
         end;
       end;
     end;
-    for I := 0 to SC.Count - 1 do   //�ƻs�ɥR�i�Ӫ��v��
+    for I := 0 to SC.Count - 1 do   //複製補充進來的影像
     begin
       OldFName := SC.Strings[i];
       Main_C.LoadFromFile(DPath+'Context.dat');
@@ -5681,7 +5756,7 @@
       begin
         CopyFile(PWideChar(SPath+OldFName),PWideChar(DPath+NewMainFName),False);
       end;
-      if FormID = '' then //����
+      if FormID = '' then //附件
       begin
         CopyFile(PWideChar(SPath+OldFName),PWideChar(DPath+NewMainFName),False);
       end;
@@ -5692,7 +5767,7 @@
   SC.Free;
   Main_C.Free;
   end;
-  ///�[�J���q�l�ɶפJ�ץ��
+  ///加入的電子檔匯入案件裡
   if DirectoryExists(SPath+'AttFile\') then
     AttFile_Arrange(SPath+'AttFile\',DPath+'AttFile\');
 end;}
@@ -5707,25 +5782,26 @@
   EnCodeDateTime := En_DecryptionStr_Base64('E',ServerDate+GetBalance2Time(Balance),Mpskey);
   ///service/slic/SLIC04/case?data=&verify=&case_no=&file=
   SendData := 'data='+HTTPEncode(UTF8Encode(FData))+'&verify='+FVerify+'&case_no='+CaseID+'&file=';
-//ShowMessage(SendData);
+ShowMessage(SendData);
   if not dnFile_Get(HTTPSClient,Furl,'service/imgpsc/IMGPSC04/case',SendData,Path+CaseID+'.zip',FReWrite,Memo1,False,DownImgStatus) then
   begin
-    HttpErrStr := _Msg('���~�N�X:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason;
+    HttpErrStr := _Msg('錯誤代碼:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason;
     Result := False;
     Exit;
   end;
   if Memo1.Lines.Strings[0] = '1' then
   begin
-    HttpErrStr :=_Msg('���~��]:')+memo1.Lines.Strings[1];
+    HttpErrStr :=_Msg('錯誤原因:')+memo1.Lines.Strings[1];
     Result := False;
     Exit;
   end
   Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
   begin
-    HttpErrStr := _Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J');
+    HttpErrStr := _Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入');
     Result := False;
     Exit;
   end;
+ShowMessage('sssss');
   AttPath := Path + 'AttFile\';
   if FileExists(Path+CaseID+'.zip') then
   begin
@@ -5742,28 +5818,28 @@
   end
   Else
   begin
-    HttpErrStr := _Msg('�䤣��v��');
+    HttpErrStr := _Msg('找不到影像');
     Result := True;
     Exit;
   end;
 
 end;
 
-Function TCB_IMGPSScanX.GetNoNameCase(Path:String):String; //�����t��XXXX
+Function TCB_IMGPSScanX.GetNoNameCase(Path:String):String; //取未配號XXXX
 var
   i : Integer;
 begin
   for i := 1 to 9999 do
   begin
-    if Not DirectoryExists(Path+_Msg('���t��')+Add_Zoo(i,4)) then
+    if Not DirectoryExists(Path+_Msg('未配號')+Add_Zoo(i,4)) then
     begin
-      Result := _Msg('���t��')+Add_Zoo(i,4);
+      Result := _Msg('未配號')+Add_Zoo(i,4);
       Break;
     end;
   end;
 end;
 
-Procedure TCB_IMGPSScanX.CaseResort(Path:String); //�ץ��ɮ׭��s�Ƨ�(������Docno��)
+Procedure TCB_IMGPSScanX.CaseResort(Path:String); //案件的檔案重新排序(次文件依Docno排)
 var
   i,n,v,v1 : Integer;
   S,S1 : TStringlist;
@@ -5775,7 +5851,7 @@
   try
   S.LoadFromFile(Path+'Context.dat');
   X := 0;
-  {for I := 1 to FORM_INF_List.Count - 1 do    //�bFormID���]�w��   //�D��� ��SQL��   20101028��
+  {for I := 1 to FORM_INF_List.Count - 1 do    //在FormID有設定的   //主文件 照SQL排   20101028改
   begin
     FormID := GetSQLData(FORM_INF_List,'T1.FORM_ID',i);
     if FormCode2FileName(FormID,S) = '' then
@@ -5787,15 +5863,15 @@
       begin
         Inc(X);
         OldName := S.Strings[n];
-        //NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //�q�즳�ƶq�[1�}�l�s
-        NewName := Add_Zoo(S.Count+x,3)+FileName2NoQuene_Filename(OldName); //�q�즳�ƶq�[1�}�l�s
+        //NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //從原有數量加1開始編
+        NewName := Add_Zoo(S.Count+x,3)+FileName2NoQuene_Filename(OldName); //從原有數量加1開始編
         S.Strings[n] := '*'+S.Strings[n];
         S1.Add(OldName+','+NewName);
       end;
     end;
   end;}
 
-  {for I := 0 to FORM_INF_List.Count - 1 do  //����� ��FormID 1~8�X+���˶��DZ�   20110512���F�Y�Ӥ��n��������]�n�D��
+  {for I := 0 to FORM_INF_List.Count - 1 do  //次文件 照FormID 1~8碼+掃瞄順序排   20110512為了某個文件要先打的原因要求改
   begin
     for n := 0 to S.Count - 1 do
     begin
@@ -5805,13 +5881,13 @@
       begin
         Inc(X);
         OldName := S.Strings[n];
-        NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //�q�즳�ƶq�[1�}�l�s
+        NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //從原有數量加1開始編
         S.Strings[n] := '*'+S.Strings[n];
         S1.Add(OldName+','+NewName);
       end;
     end;
   end;}
-  for I := 0 to Doc_Inf_List.Count - 1 do  //�D��� �Ӥ��N�X+���˶��DZ�   20101101��   20110512�ߤW�S����^��
+  for I := 0 to Doc_Inf_List.Count - 1 do  //主文件 照文件代碼+掃瞄順序排   20101101改   20110512晚上又說改回來
   begin
     DocNo := GetSQLData(Doc_Inf_List,'DOC_NO',i);
     if DocNo2FileName(DocNo,S) = '' then
@@ -5823,8 +5899,8 @@
       begin
         Inc(X);
         OldName := S.Strings[n];
-        //NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //�q�즳�ƶq�[1�}�l�s
-        NewName := Add_Zoo(S.Count+x,3)+FileName2NoQuene_Filename(OldName); //�q�즳�ƶq�[1�}�l�s
+        //NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //從原有數量加1開始編
+        NewName := Add_Zoo(S.Count+x,3)+FileName2NoQuene_Filename(OldName); //從原有數量加1開始編
         S.Strings[n] := '*'+S.Strings[n];
         S1.Add(OldName+','+NewName);
       end;
@@ -5832,7 +5908,7 @@
   end;
 
 
-  for I := 0 to Doc_Inf_List.Count - 1 do  //����� �Ӥ��N�X+���˶��DZ�   20101101��   20110512�ߤW�S����^��
+  for I := 0 to Doc_Inf_List.Count - 1 do  //次文件 照文件代碼+掃瞄順序排   20101101改   20110512晚上又說改回來
   begin
     DocNo := GetSQLData(Doc_Inf_List,'DOC_NO',i);
     if DocNo2FileName(DocNo,S) = '' then
@@ -5844,15 +5920,15 @@
       begin
         Inc(X);
         OldName := S.Strings[n];
-        //NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //�q�즳�ƶq�[1�}�l�s
-        NewName := Add_Zoo(S.Count+x,3)+FileName2NoQuene_Filename(OldName); //�q�즳�ƶq�[1�}�l�s
+        //NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //從原有數量加1開始編
+        NewName := Add_Zoo(S.Count+x,3)+FileName2NoQuene_Filename(OldName); //從原有數量加1開始編
         S.Strings[n] := '*'+S.Strings[n];
         S1.Add(OldName+','+NewName);
       end;
     end;
   end;
 
-  {for n := 0 to S.Count - 1 do    //����� �ӱ��˶��DZ�   20101028��
+  {for n := 0 to S.Count - 1 do    //次文件 照掃瞄順序排   20101028改
   begin
     FormID := GetSQLData(FORM_INF_List,'T1.FORM_ID',i);
     Doc_Type := GetSQLData(FORM_INF_List,'T2.DOC_TYPE',i);
@@ -5862,13 +5938,13 @@
       begin
         Inc(X);
         OldName := S.Strings[n];
-        NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //�q�즳�ƶq�[1�}�l�s
+        NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //從原有數量加1開始編
         S.Strings[n] := '*'+S.Strings[n];
         S1.Add(OldName+','+NewName);
       end;
     end;
   end;}
-  for i := 0 to S.Count - 1 do   //FormID�S�]�w������
+  for i := 0 to S.Count - 1 do   //FormID沒設定的或附件
   begin
     if S.Strings[i][1] <> '*' then
     begin
@@ -5881,7 +5957,7 @@
     end;
   end;
   S.Clear;
-  for i := 0 to S1.Count - 1 do  //�}�l�ഫ�ɦW
+  for i := 0 to S1.Count - 1 do  //開始轉換檔名
   begin
     v := Pos(',',S1.Strings[i]);
     v1 := length(S1.Strings[i]);
@@ -5901,7 +5977,7 @@
   end;
 end;
 
-Procedure TCB_IMGPSScanX.CaseResort2Scanlist(Path:String); //�ץ��ɮ׭��s�Ƨǵ�scanlist(������FormID��)
+Procedure TCB_IMGPSScanX.CaseResort2Scanlist(Path:String); //案件的檔案重新排序給scanlist(次文件依FormID排)
 var
   i,n,v,v1 : Integer;
   S,S1 : TStringlist;
@@ -5914,7 +5990,7 @@
   if FileExists(Path+'Context.dat') then
     S.LoadFromFile(Path+'Context.dat');
   X := 0;
-  for I := 1 to FORM_INF_List.Count - 1 do    //�bFormID���]�w��   //�D��� ��SQL��   20101028��
+  for I := 1 to FORM_INF_List.Count - 1 do    //在FormID有設定的   //主文件 照SQL排   20101028改
   begin
     FormID := GetSQLData(FORM_INF_List,'T1.FORM_ID',i);
     if FormCode2FileName(FormID,S) = '' then
@@ -5926,15 +6002,15 @@
       begin
         Inc(X);
         OldName := S.Strings[n];
-        //NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //�q�즳�ƶq�[1�}�l�s
-        NewName := Add_Zoo(S.Count+x,3)+FileName2NoQuene_Filename(OldName); //�q�즳�ƶq�[1�}�l�s
+        //NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //從原有數量加1開始編
+        NewName := Add_Zoo(S.Count+x,3)+FileName2NoQuene_Filename(OldName); //從原有數量加1開始編
         S.Strings[n] := '*'+S.Strings[n];
         S1.Add(OldName+','+NewName);
       end;
     end;
   end;
 
-  for I := 0 to FORM_INF_List.Count - 1 do  //����� ��SQL��   20110512���F�Y�Ӥ��n��������]�n�D��
+  for I := 0 to FORM_INF_List.Count - 1 do  //次文件 照SQL排   20110512為了某個文件要先打的原因要求改
   begin
 
     FormID := GetSQLData(FORM_INF_List,'T1.FORM_ID',i);
@@ -5947,15 +6023,15 @@
       begin
         Inc(X);
         OldName := S.Strings[n];
-        //NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //�q�즳�ƶq�[1�}�l�s
-        NewName := Add_Zoo(S.Count+x,3)+FileName2NoQuene_Filename(OldName); //�q�즳�ƶq�[1�}�l�s
+        //NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //從原有數量加1開始編
+        NewName := Add_Zoo(S.Count+x,3)+FileName2NoQuene_Filename(OldName); //從原有數量加1開始編
         S.Strings[n] := '*'+S.Strings[n];
         S1.Add(OldName+','+NewName);
       end;
     end;
   end;
 
-  {for I := 0 to Doc_Inf_List.Count - 1 do  //����� �Ӥ��N�X+���˶��DZ�   20101101��   20110512�ߤW�S����^��
+  {for I := 0 to Doc_Inf_List.Count - 1 do  //次文件 照文件代碼+掃瞄順序排   20101101改   20110512晚上又說改回來
   begin
     DocNo := GetSQLData(Doc_Inf_List,'DOC_NO',i);
     Doc_Type := GetSQLData(Doc_Inf_List,'DOC_TYPE',i);
@@ -5965,14 +6041,14 @@
       begin
         Inc(X);
         OldName := S.Strings[n];
-        NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //�q�즳�ƶq�[1�}�l�s
+        NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //從原有數量加1開始編
         S.Strings[n] := '*'+S.Strings[n];
         S1.Add(OldName+','+NewName);
       end;
     end;
   end;}
 
-  {for n := 0 to S.Count - 1 do    //����� �ӱ��˶��DZ�   20101028��
+  {for n := 0 to S.Count - 1 do    //次文件 照掃瞄順序排   20101028改
   begin
     for i := 0 to FORM_INF_List.Count - 1 do
     begin
@@ -5982,13 +6058,13 @@
       begin
         Inc(X);
         OldName := S.Strings[n];
-        NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //�q�즳�ƶq�[1�}�l�s
+        NewName := Add_Zoo(S.Count+x,3)+Copy(OldName,4,length(OldName)-3); //從原有數量加1開始編
         S.Strings[n] := '*'+S.Strings[n];
         S1.Add(OldName+','+NewName);
       end;
     end;
   end;}
-  for i := 0 to S.Count - 1 do   //FormID�S�]�w������
+  for i := 0 to S.Count - 1 do   //FormID沒設定的或附件
   begin
     if S.Strings[i][1] <> '*' then
     begin
@@ -6002,7 +6078,7 @@
   end;
 
   S.Clear;
-  for i := 0 to S1.Count - 1 do  //�}�l�ഫ�ɦW
+  for i := 0 to S1.Count - 1 do  //開始轉換檔名
   begin
     v := Pos(',',S1.Strings[i]);
     v1 := length(S1.Strings[i]);
@@ -6023,7 +6099,7 @@
 end;
 
 
-Procedure TCB_IMGPSScanX.DistinctDocinCase(Path:String); //�C�X�ץ�̪�Docno_����
+Procedure TCB_IMGPSScanX.DistinctDocinCase(Path:String); //列出案件裡的Docno_版本
 var
   i,n,v : Integer;
   S : TStringlist;
@@ -6061,7 +6137,7 @@
   end;
 end;
 
-Procedure TCB_IMGPSScanX.DistinctDocNoinCase(Path:String); //�C�X�ץ�̪�Docno
+Procedure TCB_IMGPSScanX.DistinctDocNoinCase(Path:String); //列出案件裡的Docno
 var
   i,n,v : Integer;
   S : TStringlist;
@@ -6097,7 +6173,7 @@
 
 end;
 
-Procedure TCB_IMGPSScanX.ClearErrini(CaseID:String;CaseNode:TTreeNode); //�M���ˮ��ɮ�
+Procedure TCB_IMGPSScanX.ClearErrini(CaseID:String;CaseNode:TTreeNode); //清掉檢核檔案
 var
   i : Integer;
 begin
@@ -6105,7 +6181,7 @@
     DeleteFile(ImageSavePath+CaseID+'\Checkerr.ini');
   if FileExists(ImageSavePath+CaseID+'\CheckMemo.dat') then
     DeleteFile(ImageSavePath+CaseID+'\CheckMemo.dat');
-  {if FileExists(ImageSavePath+CaseID+'\ReSize.dat') then  //20110421����  �]���O���|����
+  {if FileExists(ImageSavePath+CaseID+'\ReSize.dat') then  //20110421拿掉  因為記錄會不見
     DeleteFile(ImageSavePath+CaseID+'\ReSize.dat');}
   if FileExists(ImageSavePath+CaseID+'\RemoveMemo.dat') then
     DeleteFile(ImageSavePath+CaseID+'\RemoveMemo.dat');
@@ -6116,7 +6192,7 @@
   CaseNode.SelectedIndex := 2;
 end;
 
-Procedure TCB_IMGPSScanX.SetCaseList(Mode:Char;Index:Integer;text:String);  //'A:�[�J,I:���J,D:�R��,E:�ק�'
+Procedure TCB_IMGPSScanX.SetCaseList(Mode:Char;Index:Integer;text:String);  //'A:加入,I:插入,D:刪除,E:修改'
 var
   i : Integer;
 begin
@@ -6155,7 +6231,7 @@
     CaseList.SaveToFile(ImageSavePath+'CaseList.dat');
 end;
 
-Procedure TCB_IMGPSScanX.SetDocNoList(Mode:Char;Index:Integer;CaseNo,DocDir,Copies:String);  //'A:�[�J,I:���J,D:�R��,E:�ק�'
+Procedure TCB_IMGPSScanX.SetDocNoList(Mode:Char;Index:Integer;CaseNo,DocDir,Copies:String);  //'A:加入,I:插入,D:刪除,E:修改'
 var
   i : Integer;
   CaseDocNoList : TStringlist;
@@ -6186,7 +6262,7 @@
       'D':begin
             if Index <> -1 then
             begin
-              //SetRecordEditedDocDir('D',CaseNo,CaseDocNoList.Strings[Index]);  //20140624 �ק�R�����ɤ]�O�@������,�R���|�L�k�q���e�ݺ���������
+              //SetRecordEditedDocDir('D',CaseNo,CaseDocNoList.Strings[Index]);  //20140624 修改刪除文件時也記一筆異動,刪掉會無法通知前端網頁有異動
               SetRecordEditedDocDir('A',CaseNo,CaseDocNoList.Strings[Index]);
               CaseDocNoList.Delete(Index);
               CaseDocNo_CopiesList.Delete(Index);
@@ -6198,7 +6274,7 @@
               begin
                 if DocDir = CaseDocNoList.Strings[i] then
                 begin
-                  //SetRecordEditedDocDir('D',CaseNo,CaseDocNoList.Strings[i]);  //20140624 �ק�R�����ɤ]�O�@������,�R���|�L�k�q���e�ݺ���������
+                  //SetRecordEditedDocDir('D',CaseNo,CaseDocNoList.Strings[i]);  //20140624 修改刪除文件時也記一筆異動,刪掉會無法通知前端網頁有異動
                   SetRecordEditedDocDir('A',CaseNo,CaseDocNoList.Strings[i]);
                   CaseDocNoList.Delete(i);
                   CaseDocNo_CopiesList.Delete(i);
@@ -6217,7 +6293,7 @@
     begin
       CaseDocNoList.SaveToFile(ImageSavePath+CaseNo+'\CaseDocNo.dat');
       CaseDocNo_CopiesList.SaveToFile(ImageSavePath+CaseNo+'\CaseDocNo_Copies.dat');
-      //Showmessage('�s�F');
+      //Showmessage('存了');
     end;
   finally
   CaseDocNoList.Free;
@@ -6225,18 +6301,18 @@
   end;
 end;
 
-Procedure TCB_IMGPSScanX.SetContextList(Mode:Char;Index:Integer;CaseNo,DocDir,FileName:String);  //'A:�[�J,I:���J,D:�R��,E:�ק�'
+Procedure TCB_IMGPSScanX.SetContextList(Mode:Char;Index:Integer;CaseNo,DocDir,FileName:String);  //'A:加入,I:插入,D:刪除,E:修改'
 var
   i : Integer;
   //DocNo:String;
 begin
   //DocNo := FormCode2DocNo(FileName2FormCode(FileName));
   if DocDir = '' then
-    DocDir := AttName ; //����
+    DocDir := AttName ; //附件
   ContextList.Clear;
   if FileExists(ImageSavePath+CaseNo+'\'+DocDir+'\Context.dat') then
     ContextList.LoadFromFile(ImageSavePath+CaseNo+'\'+DocDir+'\Context.dat');
-  SetRecordEditedDocDir('A',CaseNo,DocDir);  //�O����󦳲���
+  SetRecordEditedDocDir('A',CaseNo,DocDir);  //記錄文件有異動
   case Mode of
     'A':begin
           ContextList.Add(FileName);
@@ -6273,7 +6349,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.checkCaseOMRDone:Boolean;  //�ˬd�ץ�O�_����OMR�ˮ�
+Function TCB_IMGPSScanX.checkCaseOMRDone:Boolean;  //檢查案件是否完成OMR檢核
 var
   i : Integer;
 begin
@@ -6288,14 +6364,14 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.CheckCaseID_OK:Boolean;  //�ˬd�O�_�����t�����ץ�
+Function TCB_IMGPSScanX.CheckCaseID_OK:Boolean;  //檢查是否有未配號的案件
 var
   i,n : Integer;
 begin
   Result := True;
   for i := 0 to NewTreeNode.Count - 1 do
   begin
-    if Pos(_msg('���t��'),NewTreeNode.Item[i].Text) > 0 then
+    if Pos(_msg('未配號'),NewTreeNode.Item[i].Text) > 0 then
     begin
       Result := False;
       Break;
@@ -6303,7 +6379,7 @@
   end;
 end;
 
-Procedure TCB_IMGPSScanX.CreateEmptyCase(Path,CaseID:String);  //���ͪťծ׸�(�������)
+Procedure TCB_IMGPSScanX.CreateEmptyCase(Path,CaseID:String);  //產生空白案號(重掃件用)
 var
   S : TStringlist;
 begin
@@ -6347,7 +6423,7 @@
   ScrollRec[Index].Rate := iRate;
 end;
 
-Procedure TCB_IMGPSScanX.FormIDReplace(CaseID,DocDir,OldFormID,NewFormID:String); //���wFormID�󴫦��s��FormID
+Procedure TCB_IMGPSScanX.FormIDReplace(CaseID,DocDir,OldFormID,NewFormID:String); //指定FormID更換成新的FormID
 var
   i : Integer;
   OldFileList,NewFileList : TStringlist;
@@ -6410,7 +6486,7 @@
   end;
 end;
 
-Procedure TCB_IMGPSScanX.ShowFileReplace(Path,NewFormID:String);//��ܪ��v�������s��FormID
+Procedure TCB_IMGPSScanX.ShowFileReplace(Path,NewFormID:String);//顯示的影像換成新的FormID
 var
   i,n : Integer;
   OldFile,NewFile:String;
@@ -6426,7 +6502,7 @@
   end;
 end;
 
-Procedure TCB_IMGPSScanX.PageReplaceFormID(Path,NowFormID,NewFormID:String); //�������FormID
+Procedure TCB_IMGPSScanX.PageReplaceFormID(Path,NowFormID,NewFormID:String); //選取頁更換FormID
 var
   i,n : Integer;
   S,S1 : TStringlist;
@@ -6476,19 +6552,19 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.ModeNeedCheck(OMRMode,ScanMode:String):Boolean; //���˼Ҧ��O�_�n���ˮ�
+Function TCB_IMGPSScanX.ModeNeedCheck(OMRMode,ScanMode:String):Boolean; //掃瞄模式是否要做檢核
 begin
   Result := False;
   if Pos(ScanMode,OMRMode) > 0 then
     Result := True;
 end;
 
-Function TCB_IMGPSScanX.GetInputMask:String; //���o��J���O�渹�X
+Function TCB_IMGPSScanX.GetInputMask:String; //取得輸入的保單號碼
 var
   InputMaskForm: TInputMaskForm;
 begin
   Result := '';
-  ShowText := _msg('��J�O�渹�X��');
+  ShowText := _msg('輸入保單號碼中');
   DataLoading(True,True);
   InputMaskForm := TInputMaskForm.Create(self);
   try
@@ -6520,9 +6596,9 @@
     begin
       iDocDir := DocDirList.Strings[i];
       iDocno := DocNoDir2DocNo(iDocDir);
-      {if (((FIs_In_Wh  = 'Y') and (not DocNoIs_In_WH(iDocNo))) or   //�J�w���y���ݫD�J�w���
+      {if (((FIs_In_Wh  = 'Y') and (not DocNoIs_In_WH(iDocNo))) or   //入庫掃描不看非入庫文件
          ((FIs_In_Wh  = 'N') and (DocNoIs_In_WH(iDocNo)))) and
-         ((iDocNo <> 'Attach') and (Copy(iDocNo,1,5)<>'ZZZZZ')) then     //�D�J�w���y���ݤJ�w���
+         ((iDocNo <> 'Attach') and (Copy(iDocNo,1,5)<>'ZZZZZ')) then     //非入庫掃描不看入庫文件
       begin
         Continue;
       end;}
@@ -6575,7 +6651,7 @@
   end;
 end;
 
-Procedure TCB_IMGPSScanX.WriteResize(ImgName,TxtName:String); //����Resize.dat
+Procedure TCB_IMGPSScanX.WriteResize(ImgName,TxtName:String); //產生Resize.dat
 var
   TagTxt : String;
   RecHeight,RecWidth : String;
@@ -6609,7 +6685,7 @@
       if FileExists(TxtName) then
         S.LoadFromFile(TxtName);
       if (RecHeight <> '') and (RecWidth <> '') and ((RecHeight<>ImgHeight) or (RecWidth<>ImgWidth)) then
-        S.Add(ExtractfileName(ImgName)+',���:'+RecHeight+',��e:'+RecWidth+',���ܰ�:'+ImgHeight+',�e�ܰ�:'+ImgWidth);
+        S.Add(ExtractfileName(ImgName)+',原長:'+RecHeight+',原寬:'+RecWidth+',長變動:'+ImgHeight+',寬變動:'+ImgWidth);
       S.SaveToFile(TxtName);
     finally
     S.Free;
@@ -6618,7 +6694,7 @@
 
 end;
 
-Function TCB_IMGPSScanX.GetCase_PageCount(var CaseCount,PageCount:Integer):Boolean; //���X�ץ󪺼ƶq�έ���
+Function TCB_IMGPSScanX.GetCase_PageCount(var CaseCount,PageCount:Integer):Boolean; //取出案件的數量及頁數
 var
   i,n: Integer;
   CaseList,DocList,FileList : TStringlist;
@@ -6665,7 +6741,7 @@
   Result := True;
 end;
 
-Function TCB_IMGPSScanX.FindNoSaveBarCode : Boolean; //��O�_�����n�x�s�v�������X
+Function TCB_IMGPSScanX.FindNoSaveBarCode : Boolean; //找是否有不要儲存影像的條碼
 var
   i,n : Integer;
 begin
@@ -6685,12 +6761,12 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.BarCode2CaseID : String; //Barcode�̳W�h�নCaseID
+Function TCB_IMGPSScanX.BarCode2CaseID : String; //Barcode依規則轉成CaseID
 var
   i : Integer;
   iCaseID : String;
 begin
-  Result := ''; //�S���
+  Result := ''; //沒找到
   iCaseID := '';
   for i := 1 to MpsBarcodeinf.Count-1  do
   begin
@@ -6703,12 +6779,12 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.BarCode2FormID : String; //Barcode�̳W�h�নFormID
+Function TCB_IMGPSScanX.BarCode2FormID : String; //Barcode依規則轉成FormID
 var
   i : Integer;
   FormID : String;
 begin
-  Result := ''; //�S���
+  Result := ''; //沒找到
   FormID := '';
   for i := 1 to MpsBarcodeinf.Count  do
   begin
@@ -6718,7 +6794,7 @@
       if not FormIDAppear(FormID) then
         FormID := '';
     end;
-    if (FormID <> '') and FormIDExists(FormID,False,0) then   //���i��FormID�N���}
+    if (FormID <> '') and FormIDExists(FormID,False,0) then   //有可用的FormID就離開
     begin
       Result := FormID;
       Break;
@@ -6796,7 +6872,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.GetDocNoDir(Path,DocNo:String):String; //���X�ثeDocNo������
+Function TCB_IMGPSScanX.GetDocNoDir(Path,DocNo:String):String; //取出目前DocNo的份數
 var
   i : Integer;
   iDocNo : String;
@@ -6818,7 +6894,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.CheckFormIDExists(DocNoNode:TTreeNode;FormID:String):Boolean; //�ˬdFormID�O�_�s�b����
+Function TCB_IMGPSScanX.CheckFormIDExists(DocNoNode:TTreeNode;FormID:String):Boolean; //檢查FormID是否存在文件裡
 var
   i : Integer;
 begin
@@ -6833,7 +6909,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.DocNo2DocNoDir(Path,DocNo:String):String;    //DocNo�নDocNo(����)�ؿ�
+Function TCB_IMGPSScanX.DocNo2DocNoDir(Path,DocNo:String):String;    //DocNo轉成DocNo(份數)目錄
 var
   i : Integer;
   iDocNo : String;
@@ -6855,7 +6931,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.DocNoDir2DocNo(DocNoDir:String):String; //DocNo(����)�ؿ��নDocNo
+Function TCB_IMGPSScanX.DocNoDir2DocNo(DocNoDir:String):String; //DocNo(份數)目錄轉成DocNo
 var
   v,ln : Integer;
 begin
@@ -6871,7 +6947,7 @@
     Result := DocNoDir
 end;
 
-Function TCB_IMGPSScanX.DocNoDir2Index(Path,DocNoDir:String):Integer; //DocNo(����)�ؿ��নindex
+Function TCB_IMGPSScanX.DocNoDir2Index(Path,DocNoDir:String):Integer; //DocNo(份數)目錄轉成index
 var
   i : Integer;
   CaseNo_List : TStringlist;
@@ -6948,7 +7024,7 @@
   end;
 end;
 
-Procedure TCB_IMGPSScanX.ZipMaskFile(SoPath,MarkPath,DePath,ZipName:String); //���Y�B�n�v����
+Procedure TCB_IMGPSScanX.ZipMaskFile(SoPath,MarkPath,DePath,ZipName:String); //壓縮遮罩影像檔
 var
   ZipFileList : TStringlist;
   n : Integer;
@@ -6982,7 +7058,7 @@
   end;
 end;
 
-Procedure TCB_IMGPSScanX.ParserPoint(S:String); //�ѪR�Q�r�I���r��
+Procedure TCB_IMGPSScanX.ParserPoint(S:String); //解析十字點的字串
 var
   PointList : TStringlist;
   Rect : TRect;
@@ -7027,7 +7103,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.FormID2Anchor(FormID:String):String;  //��FormID���X�Q�r�Ҧ�
+Function TCB_IMGPSScanX.FormID2Anchor(FormID:String):String;  //用FormID取出十字模式
 var
   Anchor : String;
 begin
@@ -7039,7 +7115,7 @@
   Result := Index2Anchor(Anchor);
 end;
 
-Function TCB_IMGPSScanX.Index2Anchor(Anchor:String):String;   //�Q�r�Ҧ� 0->NONE;1->ANCHOR;2->FRAME
+Function TCB_IMGPSScanX.Index2Anchor(Anchor:String):String;   //十字模式 0->NONE;1->ANCHOR;2->FRAME
 begin
   if Anchor = '0' then
     Result := 'NONE'
@@ -7052,7 +7128,7 @@
 procedure TCB_IMGPSScanX.ScanDuplexCBClick(Sender: TObject);
 begin
   ScanDuplex := ScanDuplexCB.Checked;
-  //R_W_ScanIni('W');       //user�n�D�令�w�]�ᤣ���
+  //R_W_ScanIni('W');       //user要求改成預設後不能改
 end;
 
 Function TCB_IMGPSScanX.GetFormatID(CaseID: string):String;
@@ -7066,26 +7142,26 @@
     if FileExists(ImageSavePath+CaseID+'\CaseIndex.dat') then
     begin
       S.LoadFromFile(ImageSavePath+CaseID+'\CaseIndex.dat');
-      //Format_ID := S.Strings[5];    //�D��� (�����渹or��O�渹or�O�渹�Xor�O�I�Ҹ�or��ץ���s)
+      //Format_ID := S.Strings[5];    //主鍵值 (報價單號or續保單號or保單號碼or保險證號or原案件受編)
       //Result := Format_ID;
-      //Handle_No := S.Strings[0];    //�g��N��
-      //Cen_Uid := S.Strings[1];      //�Q�O�HID
-      //Cen_Cliname := S.Strings[2];  //�Q�O�H�m�W
-      //Cen_Platno := S.Strings[3];   //����
-      //Case_Priority := S.Strings[4];//�ץ󵥯�
+      //Handle_No := S.Strings[0];    //經辦代號
+      //Cen_Uid := S.Strings[1];      //被保人ID
+      //Cen_Cliname := S.Strings[2];  //被保人姓名
+      //Cen_Platno := S.Strings[3];   //車號
+      //Case_Priority := S.Strings[4];//案件等級
     end;
   finally
   S.Free;
   end;
 end;
 
-Function TCB_IMGPSScanX.MemoInfoTransfer(Mode,Str:String;ID_S,Name_S:TStringlist):String;  //���O�N�X���O���O�ഫ  Mode 'ID':�N�X��W��;'NAME':�W����N�X
+Function TCB_IMGPSScanX.MemoInfoTransfer(Mode,Str:String;ID_S,Name_S:TStringlist):String;  //註記代碼註記類別轉換  Mode 'ID':代碼轉名稱;'NAME':名稱轉代碼
 var
   i : Integer;
 begin
   if Mode = 'ID' then
   begin
-    Result := '�ۦ��J';
+    Result := '自行輸入';
     for i := 0 to ID_S.Count - 1 do
     begin
       if Str = ID_S.Strings[i] then
@@ -7109,7 +7185,7 @@
   end;
 end;
 
-Procedure TCB_IMGPSScanX.SetSQLData(ColumeStr:String;FromList,ToList:TStringlist); //��SQL�ȶ�J
+Procedure TCB_IMGPSScanX.SetSQLData(ColumeStr:String;FromList,ToList:TStringlist); //把SQL值塞入
 var
   i : Integer;
 begin
@@ -7121,7 +7197,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.GetSQLData(TableList:TStringlist;Colname:String;colNo:Integer):String; //�����ί��ި���
+Function TCB_IMGPSScanX.GetSQLData(TableList:TStringlist;Colname:String;colNo:Integer):String; //依欄位及索引取值
 var
   i,col,v,v1 : Integer;
   ColStr,DataStr: TStringList;
@@ -7182,7 +7258,7 @@
   DataStr.Free;
 end;
 
-Function TCB_IMGPSScanX.FindSQLData(TableList:TStringlist;ColumeStr,KeyColumeStr,KeyStr:String;ColNo:Integer;Var ResultList:TStringlist):Boolean; //����w�����
+Function TCB_IMGPSScanX.FindSQLData(TableList:TStringlist;ColumeStr,KeyColumeStr,KeyStr:String;ColNo:Integer;Var ResultList:TStringlist):Boolean; //找指定的資料
 Var i,n,Findindex : Integer;
     ColList,KeyColList,KeyList : TStringlist;
     Cols,Keycols,keys :String;
@@ -7204,7 +7280,7 @@
     KeyList.CommaText := KeyStr;
     if ColNo = 0 then
     begin
-      for i := 1 to TableList.Count -1 do  //��key�藍��
+      for i := 1 to TableList.Count -1 do  //找key對不對
       begin
         Findindex := i;
         for n := 0 to KeyColList.Count - 1 do
@@ -7214,16 +7290,16 @@
           keys := KeyList.Strings[n];
           //Showmessage(keys);
           //Showmessage(TableList.Strings[i]);
-          if GetSQLData(TableList,Keycols,i) = keys then //��.�~��
-          //if Pos('!@!'+keys+'!@!','!@!'+TableList.Strings[i]+'!@!') >0 then  //�b��ƦC�e��[!@! ��pos���覡�ӧﵽ�t��  //20130521�o�{���Ʒ|�����D
+          if GetSQLData(TableList,Keycols,i) = keys then //對.繼續
+          //if Pos('!@!'+keys+'!@!','!@!'+TableList.Strings[i]+'!@!') >0 then  //在資料列前後加!@! 用pos的方式來改善速度  //20130521發現找資料會有問題
             Continue
-          Else   //����.���}
+          Else   //不對.離開
           begin
             Find := False;
             Break;
           end;
         end;
-        if Find then Break;  // ���F���}
+        if Find then Break;  // 找到了離開
       end;
     end
     Else
@@ -7235,17 +7311,17 @@
         Find := True;
         Keycols := KeyColList.Strings[n];
         keys := KeyList.Strings[n];
-        //if GetSQLData(TableList,Keycols,i) = keys then //��.�~��
-        if Pos('!@!'+keys+'!@!','!@!'+TableList.Strings[i]+'!@!') >0 then  //�b��ƦC�e��[!@! ��pos���覡�ӧﵽ�t��
+        //if GetSQLData(TableList,Keycols,i) = keys then //對.繼續
+        if Pos('!@!'+keys+'!@!','!@!'+TableList.Strings[i]+'!@!') >0 then  //在資料列前後加!@! 用pos的方式來改善速度
             Continue
-        Else   //����.���}
+        Else   //不對.離開
         begin
           Find := False;
           Break;
         end;
       end;
     end;
-    if Find then //�����key
+    if Find then //有找到key
     begin
       for n := 0 to ColList.Count -1 do
       begin
@@ -7280,7 +7356,7 @@
 
 end;
 
-Procedure TCB_IMGPSScanX.DataLoading(Loading:Boolean;UseTimer:Boolean);  //��Ƹ��J���n�����I�諸�ʧ@
+Procedure TCB_IMGPSScanX.DataLoading(Loading:Boolean;UseTimer:Boolean);  //資料載入中要停止點選的動作
 begin
   If Loading Then
   begin
@@ -7321,7 +7397,7 @@
   S : TStringlist;
   UpFormID : String;
 begin
-  ShowText := _Msg('�B�z�ˮ֥��Ѥ�,�еy��');
+  ShowText := _Msg('處理檢核失敗中,請稍候');
   DataLoading(True,True);
   ErrlistForm := TErrlistForm.Create(Self);
   RejectCase := False;
@@ -7339,12 +7415,12 @@
       TransPath := ImageSavePath+NowCaseNo+'\';
       if FMode = 'ISCAN' then
         TransPath :=  ImageSavePath + NowCaseNo+'\DownTemp\';
-      ShowText := NowCaseNo+_Msg('��ƤW�Ǥ�,�еy��');
+      ShowText := NowCaseNo+_Msg('資料上傳中,請稍候');
       DataLoading(True,True);
 
       if FMode = 'ISCAN' then
       begin
-        If Not TransCaseID(TransPath,NowCaseNo,True) Then  //�ǰe�ץ�
+        If Not TransCaseID(TransPath,NowCaseNo,True) Then  //傳送案件
         begin
           DataLoading(False,False);
           Exit;
@@ -7352,7 +7428,7 @@
       end
       Else
       begin
-        If Not TransCaseID(TransPath,NowCaseNo,True) Then  //�ǰe�ץ�
+        If Not TransCaseID(TransPath,NowCaseNo,True) Then  //傳送案件
         begin
           DataLoading(False,False);
           Exit;
@@ -7360,7 +7436,7 @@
       end;
       CaseHelpBtn.Visible := False;
       LoadImgFile;
-      Showmessage(NowCaseNo+_Msg('�ǰe����'));
+      Showmessage(NowCaseNo+_Msg('傳送完成'));
       DataLoading(False,False);
     end
     Else
@@ -7382,27 +7458,27 @@
 begin
   //if TreeView1.Selected = nil then Exit;
   //if TreeView1.Selected = NewTreeNode then Exit;
-  Displaypath := '';  //20130327 �ץ������渹�|���m�����D
+  Displaypath := '';  //20130327 修正報價單號會錯置的問題
   S := TStringlist.Create;
   try
     ClearView(1);
-    ShowText := CaseID+_Msg('�ˮ֤�,�еy��');
+    ShowText := CaseID+_Msg('檢核中,請稍候');
     DataLoading(True,True);
     For i := 0 to NewTreeNode.Count -1 do
     begin
       v := posend('-',NewTreenode.Item[i].Text);
       CaseID := Copy(NewTreenode.Item[i].Text,1,v-1);
-      ShowText := CaseID+_Msg('�ˮ֤�,�еy��');
+      ShowText := CaseID+_Msg('檢核中,請稍候');
       DataLoading(True,True);
-      if (NewTreenode.Item[i].ImageIndex <> 7) and (NewTreenode.Item[i].ImageIndex <> 5) then  //�ˮ֧��������A�ˮ�
+      if (NewTreenode.Item[i].ImageIndex <> 7) and (NewTreenode.Item[i].ImageIndex <> 5) then  //檢核完成的不再檢核
       begin
-        If OMRCheckCase(CaseID) then  //�����\
+        If OMRCheckCase(CaseID) then  //有成功
         begin
           S.Add('Y');
           S.SaveToFile(ImageSavePath+CaseID+'\OMRCheckOk.dat');
         end;
       end;
-      //MyTreeNode2ReFresh(CaseID);  //�쥻�OOMR��@�ץ�,��令OMR�����ץ� �ҥH�o�ӭnmark
+      //MyTreeNode2ReFresh(CaseID);  //原本是OMR單一案件,後改成OMR全部案件 所以這個要mark
     end;
     LoadImgFile;
     TreeView1Click(nil);
@@ -7410,7 +7486,7 @@
   finally
   S.Free;
   end;
-  Showmessage(_Msg('�ˮ֧���'));
+  Showmessage(_Msg('檢核完成'));
 end;
 
 procedure TCB_IMGPSScanX.ClearView(stkv:Integer);
@@ -7429,7 +7505,7 @@
   ISB1Click(ISB1);
 end;
 
-Function TCB_IMGPSScanX.DrawDocItem2(CaseNode : TTreenode;Caseno:String):Boolean;  //�e�X���W�٪�Tree
+Function TCB_IMGPSScanX.DrawDocItem2(CaseNode : TTreenode;Caseno:String):Boolean;  //畫出文件名稱的Tree
 Var
   i,n,m : Integer;
   DocNode,FormNode : TTreeNode;
@@ -7451,7 +7527,7 @@
   try
     CaseNode.ImageIndex := 1;
     CaseNode.SelectedIndex := 1;
-    While CaseNode.Count > 0 do  //���R
+    While CaseNode.Count > 0 do  //全刪
     begin
       CaseNode.Item[0].Delete;
     end;
@@ -7472,18 +7548,18 @@
       iDocNo := DocNoDir2DocNo(CaseDocNoList.Strings[i]);
       //Showmessage(iDocNo);
       //Showmessage(DocNo2DocName(Caseno,iDocNo));
-      {if (((FIs_In_Wh  = 'Y') and (not DocNoIs_In_WH(iDocNo))) or   //�J�w���y���ݫD�J�w���
+      {if (((FIs_In_Wh  = 'Y') and (not DocNoIs_In_WH(iDocNo))) or   //入庫掃描不看非入庫文件
          ((FIs_In_Wh  = 'N') and (DocNoIs_In_WH(iDocNo)))) and
-         ((iDocNo <> 'Attach') and (Copy(iDocNo,1,5)<>'ZZZZZ')) then     //�D�J�w���y���ݤJ�w���
+         ((iDocNo <> 'Attach') and (Copy(iDocNo,1,5)<>'ZZZZZ')) then     //非入庫掃描不看入庫文件
       begin
         Continue;
       end;}
       if not DocNoAppear(iDocNo) then Continue;
 
 
-      //DocNode := TreeView1.Items.AddChild(CaseNode,Format('%s{%s}-%d'+_msg('��'),[CaseDocNoList.Strings[i],DocNo2DocName(Caseno,iDocNo),DocNoPage]));
-      //DocNode := TreeView1.Items.AddChild(CaseNode,Format('%s{%s}-%d'+_msg('��'),[CaseDocNoList.Strings[i],DocNo2DocName(Caseno,iDocNo),DocNoCopies]));
-      DocNode := TreeView1.Items.AddChild(CaseNode,Format('%s{%s}-%d'+_msg('��'),[DocNo2DocName(Caseno,iDocNo),CaseDocNoList.Strings[i],DocNoCopies]));
+      //DocNode := TreeView1.Items.AddChild(CaseNode,Format('%s{%s}-%d'+_msg('頁'),[CaseDocNoList.Strings[i],DocNo2DocName(Caseno,iDocNo),DocNoPage]));
+      //DocNode := TreeView1.Items.AddChild(CaseNode,Format('%s{%s}-%d'+_msg('份'),[CaseDocNoList.Strings[i],DocNo2DocName(Caseno,iDocNo),DocNoCopies]));
+      DocNode := TreeView1.Items.AddChild(CaseNode,Format('%s{%s}-%d'+_msg('份'),[DocNo2DocName(Caseno,iDocNo),CaseDocNoList.Strings[i],DocNoCopies]));
 
       if GetUseCase('F',ImageSavePath+Caseno+'\',CaseDocNoList.Strings[i]) <> '' Then
       begin
@@ -7500,7 +7576,7 @@
         DocNode.ImageIndex := 2;
         DocNode.SelectedIndex := 2;
       end;
-      if ((Pos('ZZZZZ',DocNode.Text) = 0) and (Pos('YYYYY',DocNode.Text) = 0)) and (FileList.Count =0) then  //����
+      if ((Pos('ZZZZZ',DocNode.Text) = 0) and (Pos('YYYYY',DocNode.Text) = 0)) and (FileList.Count =0) then  //制式文件
       begin
         for n := 1 to LASTEST_FORM_INF_List.Count - 1 do
         begin
@@ -7512,27 +7588,27 @@
             FormID := iiFormID;
             FormPage := GetFormIDPage(FileList,FormID);
             FormName := FormCode2FormName(Caseno,FormID);
-            //FormNode := TreeView1.Items.AddChild(DocNode,FormID+'{'+FormName+'}-'+inttostr(FormPage)+_msg('��'));
-            FormNode := TreeView1.Items.AddChild(DocNode,FormName+'{'+FormID+'}-'+inttostr(FormPage)+_msg('��'));
+            //FormNode := TreeView1.Items.AddChild(DocNode,FormID+'{'+FormName+'}-'+inttostr(FormPage)+_msg('頁'));
+            FormNode := TreeView1.Items.AddChild(DocNode,FormName+'{'+FormID+'}-'+inttostr(FormPage)+_msg('頁'));
             FormNode.ImageIndex := 4;
             FormNode.SelectedIndex := 4;
             DocNode.AlphaSort(True);
           end;
         end;
       end
-      else if (Pos('ZZZZZ',DocNode.Text) > 0) or (Pos('YYYYY',DocNode.Text) > 0) then //�ۭq���
+      else if (Pos('ZZZZZ',DocNode.Text) > 0) or (Pos('YYYYY',DocNode.Text) > 0) then //自訂文件
       begin
         FormID := GetCustomFormID(ImageSavePath+Caseno+'\',CaseDocNoList.Strings[i]);
         //showmessage(FileList.Text);
         FormPage := GetFormIDPage(FileList,FormID);
         FormName := FormCode2FormName(Caseno,FormID);
-        //FormNode := TreeView1.Items.AddChild(DocNode,FormID+'{'+FormName+'}-'+inttostr(FormPage)+_msg('��'));
-        FormNode := TreeView1.Items.AddChild(DocNode,FormName+'{'+FormID+'}-'+inttostr(FormPage)+_msg('��'));
+        //FormNode := TreeView1.Items.AddChild(DocNode,FormID+'{'+FormName+'}-'+inttostr(FormPage)+_msg('頁'));
+        FormNode := TreeView1.Items.AddChild(DocNode,FormName+'{'+FormID+'}-'+inttostr(FormPage)+_msg('頁'));
         FormNode.ImageIndex := 4;
         FormNode.SelectedIndex := 4;
         DocNode.AlphaSort(True);
       end;
-      SortDocDir_FormID(Caseno,CaseDocNoList.Strings[i]);  //�ɦW��FormID�Ƨ�
+      SortDocDir_FormID(Caseno,CaseDocNoList.Strings[i]);  //檔名依FormID排序
 
       for n := 0 to FileList.Count - 1 do
       begin
@@ -7552,8 +7628,8 @@
             FormID := iiFormID;
             FormPage := GetFormIDPage(FileList,FormID);
             FormName := FormCode2FormName(Caseno,FormID);
-            //FormNode := TreeView1.Items.AddChild(DocNode,FormID+'{'+FormName+'}-'+inttostr(FormPage)+_msg('��'));
-            FormNode := TreeView1.Items.AddChild(DocNode,FormName+'{'+FormID+'}-'+inttostr(FormPage)+_msg('��'));
+            //FormNode := TreeView1.Items.AddChild(DocNode,FormID+'{'+FormName+'}-'+inttostr(FormPage)+_msg('頁'));
+            FormNode := TreeView1.Items.AddChild(DocNode,FormName+'{'+FormID+'}-'+inttostr(FormPage)+_msg('頁'));
 
             FormNode.ImageIndex := 4;
             FormNode.SelectedIndex := 4;
@@ -7567,7 +7643,7 @@
          // Application.ProcessMessages;
          // FormPage := GetFormIDPage(FileList,FormID);
          /// FormName := FormCode2FormName(Caseno,FormID);
-         /// FormNode := TreeView1.Items.AddChild(DocNode,FormID+'{'+FormName+'}-'+inttostr(FormPage)+_msg('��'));
+         /// FormNode := TreeView1.Items.AddChild(DocNode,FormID+'{'+FormName+'}-'+inttostr(FormPage)+_msg('頁'));
          // FormNode.ImageIndex := 4;
          // FormNode.SelectedIndex := 4;
         //end;
@@ -7586,8 +7662,8 @@
       end;
       DocNoPage := FileList.Count;
       iDocNo := DocNoDir2DocNo(AttName);
-      //DocNode := TreeView1.Items.AddChild(CaseNode,Format('%s{%s}-%d'+_msg('��'),[AttName,DocNo2DocName(Caseno,iDocNo),1]));
-      DocNode := TreeView1.Items.AddChild(CaseNode,Format('%s{%s}-%d'+_msg('��'),[DocNo2DocName(Caseno,iDocNo),AttName,1]));
+      //DocNode := TreeView1.Items.AddChild(CaseNode,Format('%s{%s}-%d'+_msg('份'),[AttName,DocNo2DocName(Caseno,iDocNo),1]));
+      DocNode := TreeView1.Items.AddChild(CaseNode,Format('%s{%s}-%d'+_msg('份'),[DocNo2DocName(Caseno,iDocNo),AttName,1]));
       DocNode.ImageIndex := 2;
       DocNode.SelectedIndex := 2;
       for n := 0 to FileList.Count - 1 do
@@ -7597,8 +7673,8 @@
         begin
           FormPage := GetFormIDPage(FileList,FormID);
           FormName := FormCode2FormName(Caseno,FormID);
-          //FormNode := TreeView1.Items.AddChild(DocNode,FormID+'{'+FormName+'}-'+inttostr(FormPage)+_msg('��'));
-          FormNode := TreeView1.Items.AddChild(DocNode,FormName+'{'+FormID+'}-'+inttostr(FormPage)+_msg('��'));
+          //FormNode := TreeView1.Items.AddChild(DocNode,FormID+'{'+FormName+'}-'+inttostr(FormPage)+_msg('頁'));
+          FormNode := TreeView1.Items.AddChild(DocNode,FormName+'{'+FormID+'}-'+inttostr(FormPage)+_msg('頁'));
 
           FormNode.ImageIndex := 4;
           FormNode.SelectedIndex := 4;
@@ -7634,6 +7710,47 @@
   end;
 end;
 
+procedure TCB_IMGPSScanX.initParameter;
+begin
+
+//  if FCaseNoLength=0 then
+//  begin
+//
+//  end;
+
+  if FFileSizeLimit = 0 then
+  begin
+    FFileSizeLimit := 5*1024;
+  end;
+
+
+  if FImgDPI=0 then
+  begin
+    FImgDPI := 300;
+    ScanDpi := FImgDPI;
+  end
+  else
+  begin
+    //FImgDPI := StrToInt(Value);
+    ScanDpi := FImgDPI;
+  end;
+
+  if FScanColor = 0 then
+  begin
+    ScanColor := ifBlackWhite;
+  end;
+
+  if FScanColor = 1 then
+  begin
+    ScanColor := ifGray256 ;
+  end;
+
+  if FScanColor = 2 then
+  begin
+    ScanColor := ifTrueColor ;
+  end;
+end;
+
 procedure TCB_IMGPSScanX.PrtLbClick(Sender: TObject);
 var
     Width          : Double;
@@ -7644,9 +7761,9 @@
     PrtDialog : TPrintDialog;
     S : String;
 begin
-  ShowText := '�C�L��,�еy��';
+  ShowText := '列印中,請稍候';
   DataLoading(True,True);
-  Case2upload(NowCaseNo);   //���ͭ�v�����c
+  Case2upload(NowCaseNo);   //產生原影像結構
 
 
   //ontextList.LoadFromFile(ImageSavePath+NowCaseNo+'\Upload\Context.dat');
@@ -7658,7 +7775,7 @@
     FileList.LoadFromFile(ImageSavePath+NowCaseNo+'\Upload\Context.dat');
     DocDirList.LoadFromFile(ImageSavePath+NowCaseNo+'\Upload\DocDir.dat');
 
-    InitialLanguage(PrintForm);  //���J�h��y��
+    InitialLanguage(PrintForm);  //載入多國語言
     PrintForm.CheckListBox1.Items.Clear;
     For i := 0 to FileList.Count - 1 do
     begin
@@ -7687,7 +7804,7 @@
       end;
       if S = '' then
       begin
-        Showmessage(_msg('�|����ܱ��C�L���'));
+        Showmessage(_msg('尚未選擇欲列印文件'));
         Exit;
       end
       Else
@@ -7737,7 +7854,7 @@
     OldCaseInfoForm.FReWrite := FReWrite;
     OldCaseInfoForm.FOldCaseInfo := FOldCaseInfo;
 
-    //OldCaseInfoList  �ץ�s��@#,�~��@#,�~�ȧO@#,�O�_�¥�@#,���s��[����]@#,���s��[����] tab �ץ�s��@#,�~��@#,�~�ȧO@#,�O�_�¥�@#,���s��[����]@#,���s��[����]
+    //OldCaseInfoList  案件編號@#,年度@#,業務別@#,是否舊件@#,文件編號[份數]@#,文件編號[份數] tab 案件編號@#,年度@#,業務別@#,是否舊件@#,文件編號[份數]@#,文件編號[份數]
     OldCaseInfoList.StrictDelimiter := true;
     OldCaseInfoList.Delimiter := #9;
     OldCaseInfoList.DelimitedText := FOldCaseInfo;
@@ -7804,7 +7921,7 @@
 
 
           iDocNoList.Add(NewDocDir);
-          Oldcopies := GetDocDirCopies(NowCaseNo+'\'+OldCaseInfoForm.UseCaseID,OldDocDir); //�®ת�CaseID ��b�s��CaseID�ؿ���
+          Oldcopies := GetDocDirCopies(NowCaseNo+'\'+OldCaseInfoForm.UseCaseID,OldDocDir); //舊案的CaseID 放在新案CaseID目錄裡
           if FileExists(ImageSavePath+NowCaseNo+'\'+OldCaseInfoForm.UseCaseID+'\CaseDocNo_Copies.dat') then
             iDocNo_CopiesList.Add(inttostr(Oldcopies))
           else
@@ -7815,9 +7932,9 @@
           end;
           MkDir(NewPath+NewDocDir);
         end;
-        SetUseCase('A',NewPath,NewDocDir,OldCaseInfoForm.UseCaseID,'');  //NewDocDir �q���Ӫ�
-        SetUseCase('A',OldPath,OldDocDir,'',NowCaseNo);      //OldDocDir �h���F
-        StringtoFile('Y',OldPath+'UseCase.dat');  //�n�W��
+        SetUseCase('A',NewPath,NewDocDir,OldCaseInfoForm.UseCaseID,'');  //NewDocDir 從哪來的
+        SetUseCase('A',OldPath,OldDocDir,'',NowCaseNo);      //OldDocDir 去哪了
+        StringtoFile('Y',OldPath+'UseCase.dat');  //要上傳
         for n := 0 to DocNoList.Count - 1 do
         begin
           if OldDocDir = DocNoList.Strings[n] then
@@ -7838,9 +7955,9 @@
       iDocNoList.SaveToFile(NewPath+'CaseDocNo.dat');
       iDocNo_CopiesList.SaveToFile(NewPath+'CaseDocNo_Copies.dat');
       DrawDocItem2(MyTreeNode1,NowCaseNo);
-      MyTreeNode1.Text := Format('%s-%d'+_Msg('��'),[NowCaseno,GetCasePage(ImageSavePath,NowCaseNo)]);
+      MyTreeNode1.Text := Format('%s-%d'+_Msg('頁'),[NowCaseno,GetCasePage(ImageSavePath,NowCaseNo)]);
       NewTreeNodeRefresh;
-      ClearErrini(NowCaseno,MyTreeNode1);  //�M���ˮְO��
+      ClearErrini(NowCaseno,MyTreeNode1);  //清掉檢核記錄
     end;
   finally
   OldCaseInfoForm.OldDocDirList.Free;
@@ -7857,7 +7974,7 @@
   end;
 end;
 
-procedure TCB_IMGPSScanX.LoadImgFile;  //���J�s������
+procedure TCB_IMGPSScanX.LoadImgFile;  //載入新件及替換件
 Var
   i,v,v1,m : Integer;
   CasePage : integer;
@@ -7871,16 +7988,16 @@
   DisplayPath := '';
   ClearCaseIndex;
   CaseHelpBtn.Visible := False;
-  //Del_Sub_NothingPath(ImageSavePath);  //�M���ץ�ؿ��O�Ū�
+  //Del_Sub_NothingPath(ImageSavePath);  //清掉案件目錄是空的
   TreeView1.Items.Clear;
   NewTreeNode := nil;
   MyTreenode1 := nil;
   MyTreenode2 := nil;
   MyTreenode3 := nil;
-  NewTreeNode := TreeView1.Items.Add(nil,Format(_Msg('%s-�@%d���@%d��'),[FModeName,0,0]));
+  NewTreeNode := TreeView1.Items.Add(nil,Format(_Msg('%s-共%d筆共%d頁'),[FModeName,0,0]));
   NewTreenode.ImageIndex := 0;
   NewTreenode.SelectedIndex := 0;
-  Del_Sub_NothingPath(ImageSavePath);  //�M���ץ�ؿ��O�Ū�
+  Del_Sub_NothingPath(ImageSavePath);  //清掉案件目錄是空的
   GetCase_PageCount(CaseCount,PageCount);
   CaseList.Clear;
   if FileExists(ImageSavePath + 'CaseList.dat') then
@@ -7901,11 +8018,11 @@
     end;
 
     CasePage := GetCasePage(ImageSavePath,CaseList.Strings[i]);
-    MytreeNode1 := TreeView1.Items.AddChild(NewTreeNode,Format(_Msg('%s-%d��'),[CaseList.Strings[i],CasePage]));
+    MytreeNode1 := TreeView1.Items.AddChild(NewTreeNode,Format(_Msg('%s-%d頁'),[CaseList.Strings[i],CasePage]));
     MytreeNode1.ImageIndex := 1;
     MytreeNode1.SelectedIndex := 1;
-    DrawDocItem2(MytreeNode1,CaseList.Strings[i]); //���X���W�٪���öǦ^�O�_���ӽЮѪ��v��
-    if Pos(_Msg('���t��'),CaseList.Strings[i]) > 0 then
+    DrawDocItem2(MytreeNode1,CaseList.Strings[i]); //長出文件名稱的樹並傳回是否有申請書的影像
+    if Pos(_Msg('未配號'),CaseList.Strings[i]) > 0 then
     begin
       MytreeNode1.ImageIndex := 5;
       MytreeNode1.SelectedIndex := 5;
@@ -7921,7 +8038,7 @@
       MyTreenode1.ImageIndex := 5;
       MyTreenode1.SelectedIndex := 5;
 
-      //AllEnforceLb.Visible := True; //�����j���e��
+      //AllEnforceLb.Visible := True; //全部強迫送件
     end;
   end;
   MyTreenode1 := nil;
@@ -7935,11 +8052,11 @@
   begin
     GetCase_PageCount(CaseCount,PageCount);
     v := Pos('-',NewTreeNode.Text);
-    NewTreeNode.Text := Format(_Msg('%s-�@%d���@%d��'),[Copy(NewTreeNode.Text,1,v-1),CaseCount,PageCount]);
+    NewTreeNode.Text := Format(_Msg('%s-共%d筆共%d頁'),[Copy(NewTreeNode.Text,1,v-1),CaseCount,PageCount]);
   end;
 end;
 
-procedure TCB_IMGPSScanX.LoadImgFile1;  //���J�s������
+procedure TCB_IMGPSScanX.LoadImgFile1;  //載入新件及替換件
 Var
   i,n,v,v1,m : Integer;
   p : integer;
@@ -7954,17 +8071,17 @@
   DisplayPath := '';
   ClearCaseIndex;
   CaseHelpBtn.Visible := False;
-  //Del_Sub_NothingPath(ImageSavePath);  //�M���ץ�ؿ��O�Ū�
+  //Del_Sub_NothingPath(ImageSavePath);  //清掉案件目錄是空的
   TreeView1.Items.Clear;
   NewTreeNode := nil;
   MyTreenode1 := nil;
   MyTreenode2 := nil;
   MyTreenode3 := nil;
-  NewTreeNode := TreeView1.Items.Add(nil,Format(_Msg('%s-�@%d���@%d��'),[FModeName,0,0]));
+  NewTreeNode := TreeView1.Items.Add(nil,Format(_Msg('%s-共%d筆共%d頁'),[FModeName,0,0]));
   NewTreenode.ImageIndex := 0;
   NewTreenode.SelectedIndex := 0;
 
-  Del_Sub_NothingPath(ImageSavePath);  //�M���ץ�ؿ��O�Ū�
+  Del_Sub_NothingPath(ImageSavePath);  //清掉案件目錄是空的
   GetCase_PageCount(CaseCount,PageCount);
   CaseList.Clear;
   if FileExists(ImageSavePath + 'CaseList.dat') then
@@ -7979,7 +8096,7 @@
     for m := 0 to CaseDocNoList.Count - 1 do
     begin
       iDocNo := CaseDocNoList.Strings[i];
-      MytreeNode1 := TreeView1.Items.AddChild(NewTreeNode,Format(_Msg('%s-%d��'),[CaseList.Strings[n],p]));
+      MytreeNode1 := TreeView1.Items.AddChild(NewTreeNode,Format(_Msg('%s-%d頁'),[CaseList.Strings[n],p]));
       MytreeNode1.ImageIndex := 1;
       MytreeNode1.SelectedIndex := 1;
     end;
@@ -8005,13 +8122,13 @@
         Cust_DocNoList.LoadFromFile(ImageSavePath+CaseList.Strings[n]+'\CustomDocNo.dat');
 
       P := ContextList.Count;
-      MytreeNode1 := TreeView1.Items.AddChild(NewTreeNode,Format(_Msg('%s-%d��'),[CaseList.Strings[n],p]));
+      MytreeNode1 := TreeView1.Items.AddChild(NewTreeNode,Format(_Msg('%s-%d頁'),[CaseList.Strings[n],p]));
       MytreeNode1.ImageIndex := 1;
       MytreeNode1.SelectedIndex := 1;
-      //DrawDocItem1(MytreeNode1,Doc_Inf_List,CaseList.Strings[n]); //���X���W�٪���öǦ^�O�_���ӽЮѪ��v��
-      DrawDocItem2(MytreeNode1,CaseList.Strings[n]); //���X���W�٪���öǦ^�O�_���ӽЮѪ��v��  20140820��
+      //DrawDocItem1(MytreeNode1,Doc_Inf_List,CaseList.Strings[n]); //長出文件名稱的樹並傳回是否有申請書的影像
+      DrawDocItem2(MytreeNode1,CaseList.Strings[n]); //長出文件名稱的樹並傳回是否有申請書的影像  20140820改
 
-      if Pos(_Msg('���t��'),CaseList.Strings[n]) > 0 then
+      if Pos(_Msg('未配號'),CaseList.Strings[n]) > 0 then
       begin
         MytreeNode1.ImageIndex := 5;
         MytreeNode1.SelectedIndex := 5;
@@ -8027,7 +8144,7 @@
         MyTreenode1.ImageIndex := 5;
         MyTreenode1.SelectedIndex := 5;
 
-        //AllEnforceLb.Visible := True; //�����j���e��
+        //AllEnforceLb.Visible := True; //全部強迫送件
       end;
     end;
   end;
@@ -8045,11 +8162,11 @@
   begin
     GetCase_PageCount(CaseCount,PageCount);
     v := Pos('-',NewTreeNode.Text);
-    NewTreeNode.Text := Format(_Msg('%s-�@%d���@%d��'),[Copy(NewTreeNode.Text,1,v-1),CaseCount,PageCount]);
+    NewTreeNode.Text := Format(_Msg('%s-共%d筆共%d頁'),[Copy(NewTreeNode.Text,1,v-1),CaseCount,PageCount]);
   end;
 end;
 
-Function TCB_IMGPSScanX.FindDivFormCode(FormCode:String):Boolean; //�䦳�S�����ת����X
+Function TCB_IMGPSScanX.FindDivFormCode(FormCode:String):Boolean; //找有沒有分案的條碼
 var
   i : Integer;
   DelBarCode : String;
@@ -8063,7 +8180,7 @@
     IF FindSQLData(FORM_INF_List,'T1.FORM_ID,T1.DIVISION','T1.FORM_ID',FormCode,0,FindResult) then
     begin
       S.CommaText := GetFindResult('T1.DIVISION');
-      for i := 0 to S.Count - 1 do   //�i�঳�h��
+      for i := 0 to S.Count - 1 do   //可能有多組
       begin
         if S.Strings[i] = iMode then
         begin
@@ -8077,7 +8194,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.CheckAvailable:Boolean; //�ˬd�O�_�i�ϥΤ���
+Function TCB_IMGPSScanX.CheckAvailable:Boolean; //檢查是否可使用元件
 var
   SendData : String;
   Msg:String;
@@ -8085,20 +8202,20 @@
   MacID,IPStr,LegalDate :String;
 begin
   Result := False;
-  /////�U��MPSLIC_SCAN.lic //////
+  /////下載MPSLIC_SCAN.lic //////
   SendData:='data='+HTTPEncode(UTF8Encode(FData))+'&verify='+FVerify+'&work_no=PLN&file=MPSLIC_SCAN.lic';
   if not dnFile_Get(HTTPSClient,Furl,'service/imgpsc/IMGPSC04/sample',SendData,LngPath+'MPSLIC_SCAN.lic',FReWrite,Memo1,False,DownImgStatus) then
   begin
-    Showmessage(_Msg('�ˬd���U�ɮ׮�,�����o�Ϳ��~!!')+_Msg('���~�N�X:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason);
+    Showmessage(_Msg('檢查註冊檔案時,網路發生錯誤!!')+_Msg('錯誤代碼:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason);
     Exit;
   end;
-  /////�U��MPSLIC_SCAN.lic ///
+  /////下載MPSLIC_SCAN.lic ///
 
-  if CheckLicensebyIP_new(LngPath+'MPSLIC_SCAN.lic',MacID,IPStr,LegalDate,Msg,Nowcount,Totalcount,Lic_Idx) then  //�ˬd�O�_�v���U�L
+  if CheckLicensebyIP_new(LngPath+'MPSLIC_SCAN.lic',MacID,IPStr,LegalDate,Msg,Nowcount,Totalcount,Lic_Idx) then  //檢查是否己註冊過
   begin
     if (LegalDate <> '') and (ServerDate>LegalDate) and (Lic_Idx>(Totalcount)) then
     begin
-      Showmessage(_Msg('�w�g�W�L�i�ϥδ����ζW�X���v�ƽгs���t��'));
+      Showmessage(_Msg('已經超過可使用期限及超出授權數請連絡廠商'));
       Result := False;
       //Exit;
     end
@@ -8109,7 +8226,7 @@
   begin
     if Msg <> '' then
     begin
-      Showmessage(Format(_Msg('���U�ɦ����D,�гs���t�� ���~��]:%s'),[Msg]));
+      Showmessage(Format(_Msg('註冊檔有問題,請連絡廠商 錯誤原因:%s'),[Msg]));
       Result := false;
       Exit;
     end
@@ -8118,51 +8235,51 @@
       if (LegalDate <> '') and (ServerDate>LegalDate) and (NowCount =0 )  then
       begin
         Lic_Idx := 0;
-        Showmessage(_Msg('�w�g�W�L�i�ϥδ����гs���t��'));
+        Showmessage(_Msg('已經超過可使用期限請連絡廠商'));
         Result := False;
         //Exit;
       end
-      //else if (LegalDate = '') and (Nowcount >= Totalcount+10) then  //�W�L���U�ƶq
-      else if ((LegalDate = '') or ((LegalDate <> '') and (ServerDate>LegalDate)) ) and (Nowcount >= Totalcount) then  //�W�L���U�ƶq  20150717 yuu�������e��10��
+      //else if (LegalDate = '') and (Nowcount >= Totalcount+10) then  //超過註冊數量
+      else if ((LegalDate = '') or ((LegalDate <> '') and (ServerDate>LegalDate)) ) and (Nowcount >= Totalcount) then  //超過註冊數量  20150717 yuu說拿掉送的10個
       begin
         Lic_Idx := 0;
-        Showmessage(_Msg('�w�g�W�L���v�ƽгs���t��'));
+        Showmessage(_Msg('已經超過授權數請連絡廠商'));
         Result := False;
       end
-      Else  //���W�L���U�ƶq�n�g�J���U��
+      Else  //未超過註冊數量要寫入註冊檔
       begin
-        {if Messagedlg(_Msg('�z�|�����U���v�O�_�n�i����U??'),MtConfirmation,[mbyes,mbcancel],0) = mrcancel then
+        {if Messagedlg(_Msg('您尚未註冊授權是否要進行註冊??'),MtConfirmation,[mbyes,mbcancel],0) = mrcancel then
         begin
           Result := False;
           Exit;
         end;}
-        ShowText := _Msg('���v��,�еy��');
+        ShowText := _Msg('授權中,請稍候');
         AddLicense(LngPath+'MPSLIC_SCAN.lic',MacID,IPStr,Msg);
         Nowcount := Nowcount + 1;
         DataLoading(True,True);
 
-        /////�W��MPSLICSCAN.lic ////
+        /////上傳MPSLICSCAN.lic ////
         SendData:='data='+HTTPEncode(UTF8Encode(FData))+'@verify='+FVerify+'@work_no=PLN@file_name=MPSLIC_SCAN.lic';
         if not upFile(HTTPSClient,FUrl,'service/imgpsc/IMGPSC02/sample',SendData,'file',LngPath+'MPSLIC_SCAN.lic',FReWrite,Memo1,False) then
         begin
-          Showmessage(_Msg('�ˬd���U��,�����o�Ϳ��~!!')+_MSg('���~�N�X:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason+')');
+          Showmessage(_Msg('檢查註冊時,網路發生錯誤!!')+_MSg('錯誤代碼:')+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason+')');
           DataLoading(False,False);
           Exit;
         end;
         if memo1.Lines.Strings[0] = '1' then
         begin
-          Showmessage(_Msg('�ˬd���U��,�����o�Ϳ��~!!')+_Msg('���~��]:')+memo1.Lines.Strings[1]);
+          Showmessage(_Msg('檢查註冊時,網路發生錯誤!!')+_Msg('錯誤原因:')+memo1.Lines.Strings[1]);
           DataLoading(False,False);
           Exit;
         end
         Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
         begin
-          Showmessage(_Msg('�ˬd���U��,�����o�Ϳ��~!!')+_Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J'));
+          Showmessage(_Msg('檢查註冊時,網路發生錯誤!!')+_Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入'));
           DataLoading(False,False);
           Exit;
         end;
-        /////�W��MPSLICSCAN.lic /////
-        //Sleep(30000);    //�Ĥ@�����U��30��  ������
+        /////上傳MPSLICSCAN.lic /////
+        //Sleep(30000);    //第一次註冊睡30秒  先不睡
         Result := True;
       end;
     end;
@@ -8170,9 +8287,9 @@
   if FileExists(LngPath+'MPSLIC_SCAN.lic') then
     DeleteFile(LngPath+'MPSLIC_SCAN.lic');
   if LegalDate = '' then
-    StatusBar1.Panels[4].Text := '���U��:'+MacID+' �Ѿl���U��:'+inttostr(Totalcount-Nowcount);
+    StatusBar1.Panels[4].Text := '註冊號:'+MacID+' 剩餘註冊數:'+inttostr(Totalcount-Nowcount);
   if LegalDate <> '' then
-    StatusBar1.Panels[4].Text := '*���U��:'+MacID+'('+inttostr(Lic_Idx)+')'+' �Ѿl���U��:'+inttostr(Totalcount-Nowcount);
+    StatusBar1.Panels[4].Text := '*註冊號:'+MacID+'('+inttostr(Lic_Idx)+')'+' 剩餘註冊數:'+inttostr(Totalcount-Nowcount);
 end;
 
 procedure TCB_IMGPSScanX.SmoothCBClick(Sender: TObject);
@@ -8184,7 +8301,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.Case2Mask(SoPath,DePath:String):Boolean;//���;B�n�v��
+Function TCB_IMGPSScanX.Case2Mask(SoPath,DePath:String):Boolean;//產生遮罩影像
 var
   XT : TXMLTool;
   i : Integer;
@@ -8216,7 +8333,7 @@
       Anchor := FormID2Anchor(FormID);
       //ParserPoint(CropMpsV.FindPoint(Anchor));
       FindPoint(ImageScrollBox1.Graphic,UpLPoint,UpRPoint,DownLPoint,Anchor);
-      if FileExists(CheckXmlPath+FormID+'.xml') then  //�S��Xml�N���ξB�n
+      if FileExists(CheckXmlPath+FormID+'.xml') then  //沒有Xml就不用遮罩
       begin
         XT.LoadFromFile(CheckXmlPath+FormID+'.xml');
         if XT.SubNodes['/form/settype10/'].First then
@@ -8229,7 +8346,7 @@
             begin
               Site := XT.Node['/form/settype10/'+ColEName+'/'+nodename+'/'].Attributes['colxy'];
               SiteList.Add(Site);
-              Result := True;  //���]�w
+              Result := True;  //有設定
             end
             Else
             begin
@@ -8248,7 +8365,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.CheckNeedCrop(Graphic:TDibGraphic):Boolean; //�O�_�OA3�n���v��
+Function TCB_IMGPSScanX.CheckNeedCrop(Graphic:TDibGraphic):Boolean; //是否是A3要切影像
 Var
   i,FormIDCount : Integer;
 begin
@@ -8272,7 +8389,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.GetNewCustomDocNo(Path,DocName:String):String; //���X���ϥΪ��ۭq���N��
+Function TCB_IMGPSScanX.GetNewCustomDocNo(Path,DocName:String):String; //取出未使用的自訂文件代號
 var
   ini : Tinifile;
   Ct:Integer;
@@ -8289,7 +8406,7 @@
     Ct := ini.ReadInteger('CustomCount','Count',0);
     inc(Ct);
     DocNo := 'ZZZZZ'+Add_Zoo(Ct,3);
-    if FIs_In_Wh <> 'Y' then //���O�J�w���
+    if FIs_In_Wh <> 'Y' then //不是入庫文件
       DocNo := 'YYYYY'+Add_Zoo(Ct,3);
     FormID := DocNo+'010101A';
     ini.WriteInteger('CustomCount','Count',Ct);
@@ -8305,7 +8422,7 @@
   NewDocNo :='ZZZZZ001';
   if FileExists(Path+'CustomDocNo.dat') then
   begin
-    ///   ZZZZZ001_�۩w���W��  001_�۩w���W��
+    ///   ZZZZZ001_自定文件名稱  001_自定文件名稱
     S.LoadFromFile(Path+'CustomDocNo.dat');
     for i := 0 to S.Count - 1 do
     begin
@@ -8315,7 +8432,7 @@
       C_Name := Copy(S.Strings[i],v+1,ln-v);
       if DocName = C_Name then
       begin
-        Showmessage('���W�٤w�s�b');
+        Showmessage('文件名稱已存在');
         Result := '';
         Exit;
       end;
@@ -8331,7 +8448,7 @@
   end; }
 end;
 
-Function TCB_IMGPSScanX.GetCustomDocName(Path,DocNo:String):String; //���X�۩w���W��
+Function TCB_IMGPSScanX.GetCustomDocName(Path,DocNo:String):String; //取出自定文件名稱
 var
   ini : Tinifile;
 begin
@@ -8343,7 +8460,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.GetCustomFormID(Path,DocNo:String):String; //���X�۩w���FormID
+Function TCB_IMGPSScanX.GetCustomFormID(Path,DocNo:String):String; //取出自定文件FormID
 var
   ini : Tinifile;
 begin
@@ -8355,7 +8472,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.GetCustomDocDir(Path,DocName:String):String; //���X�۩w���DocDir
+Function TCB_IMGPSScanX.GetCustomDocDir(Path,DocName:String):String; //取出自定文件DocDir
 var
   i,ct:integer;
   ini : Tinifile;
@@ -8382,7 +8499,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.FindCustomDocName(Path,DocName:String):Boolean; //�M��۩w���W�٬O�_�s�b
+Function TCB_IMGPSScanX.FindCustomDocName(Path,DocName:String):Boolean; //尋找自定文件名稱是否存在
 var
   ini : Tinifile;
   Ct,i:Integer;
@@ -8406,7 +8523,7 @@
   end;
 end;
 
-Procedure TCB_IMGPSScanX.DeleteCustomDocDir(Path,DocNo:String); //�R���۩w���DocNo
+Procedure TCB_IMGPSScanX.DeleteCustomDocDir(Path,DocNo:String); //刪除自定文件DocNo
 var
   ini : Tinifile;
 begin
@@ -8418,7 +8535,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.CheckFormID_Prt(FormID:String):Boolean; //�ǤJ��FormID�O�_�w�]�C�L
+Function TCB_IMGPSScanX.CheckFormID_Prt(FormID:String):Boolean; //傳入的FormID是否預設列印
 begin
   Result := False;
   If FindSQLData(FORM_INF_List,'T1.IS_PRINT','T1.FORM_ID',FormID,0,FindResult) Then
@@ -8452,7 +8569,7 @@
           Printer object. Otherwise, if UsePrintJob is True, the Title
           property of the TDibGraphicPrinter object is used to specify the
           job name. }
-        Printer.Title := '�v���C�L';
+        Printer.Title := '影像列印';
       end;
 
       IF (Page mod 2) = 1 Then
@@ -8462,7 +8579,7 @@
 
       ImageScrollBox1.DisplayedGraphic.Canvas.Font.Size := 24;
 
-      //ImageScrollBox1.DisplayedGraphic.Canvas.TextOut(20,20, _Msg('�C�L�H��:')+LoginID+' '+_Msg('�C�L����:')+FUserUnit+' '+_Msg('�C�L���:')+DateTime);
+      //ImageScrollBox1.DisplayedGraphic.Canvas.TextOut(20,20, _Msg('列印人員:')+LoginID+' '+_Msg('列印分行:')+FUserUnit+' '+_Msg('列印日期:')+DateTime);
 
       GraphicPrinter.Print(ImageScrollBox1.DisplayedGraphic);
 
@@ -8477,7 +8594,7 @@
   procedure PrintWithAutoPrintJob;
   begin
       GraphicPrinter.UsePrintJob := True;
-      GraphicPrinter.Title       := '�v���C�L';
+      GraphicPrinter.Title       := '影像列印';
       GraphicPrinter.Print(ImageScrollBox1.Graphic);
   end;
 
@@ -8506,7 +8623,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.FindLastestDocDir(CaseID,DocNo:String):String; //��X�̷s��DocDir
+Function TCB_IMGPSScanX.FindLastestDocDir(CaseID,DocNo:String):String; //找出最新的DocDir
 var
   i : Integer;
   DocNoList,FileList : TStringlist;
@@ -8531,7 +8648,7 @@
   end;
 end;
 
-Procedure TCB_IMGPSScanX.Create_Cust_DocDir(CaseID:String); //���ͥ~���ǤJ�����N���Φ۩w���
+Procedure TCB_IMGPSScanX.Create_Cust_DocDir(CaseID:String); //產生外面傳入的文件代號及自定文件
 var
   i,n : Integer;
   C_DocNoList,C_DocNameList : TStringlist;
@@ -8553,7 +8670,7 @@
       for i := 0 to C_DocNoList.Count - 1 do
       begin
         DocNo := C_DocNoList.Strings[i];
-        //�¥󤣪��X���~�����X��
+        //舊件不長出錯誤的文件出來
         if (FIs_OldCase = 'Y') and (FWork_no='HLN') and (DocNo = FormCode2DocNo('10000001011112A')) then
           Continue;
         NowDocNo_Ct := GetDocNoCount(CaseID,DocNo);
@@ -8567,9 +8684,9 @@
           end;
           if DocNo_CT <= NowDocNo_Ct then
             Continue;
-          if DirectoryExists(ImageSavePath+CaseID+'\'+DocNo+'('+inttostr(DocNo_Ct)+')') then  //�s�b�F
+          if DirectoryExists(ImageSavePath+CaseID+'\'+DocNo+'('+inttostr(DocNo_Ct)+')') then  //存在了
             Continue;
-          if (DocNo_Ct = 1) and DirectoryExists(ImageSavePath+CaseID+'\'+DocNo) then  //�s�b�F  20140327�[
+          if (DocNo_Ct = 1) and DirectoryExists(ImageSavePath+CaseID+'\'+DocNo) then  //存在了  20140327加
             Continue;
           DocDir := DocNo2DocNoDir(ImageSavePath+CaseID+'\',DocNo)
 
@@ -8583,7 +8700,7 @@
           MkDir(ImageSavePath+CaseID+'\'+DocDir);
           SetDocNoList('A',-1,CaseID,DocDir,'1');
         end;
-        if not DocNoNeedDiv(DocNo) then   //���������q��
+        if not DocNoNeedDiv(DocNo) then   //不分份的秀數
           SetDocDirCopies(CaseID,DocNo,GetCustomDocNoCount(DocNo));
 
       end;
@@ -8622,7 +8739,7 @@
   end;
 end;
 
-Procedure TCB_IMGPSScanX.OldCasetoNewCase(CaseID:String); //�N�®ץ����ন�s�W�h
+Procedure TCB_IMGPSScanX.OldCasetoNewCase(CaseID:String); //將舊案份數轉成新規則
 var
   i,n : Integer;
   C_DocNoList,C_DocNameList : TStringlist;
@@ -8650,7 +8767,7 @@
       for i := 0 to DocNoList.Count - 1 do
       begin
         //DocNo := DocNoList.Strings[i];
-        DocNo := DocNoDir2DocNo(DocNoList.Strings[i]);  //20140812 �]���®׿��~��|�X�{DocnoDir
+        DocNo := DocNoDir2DocNo(DocNoList.Strings[i]);  //20140812 因轉舊案錯誤件會出現DocnoDir
         DocNo_Ct := 0;
         for n := 0 to C_DocNoList.Count - 1 do
         begin
@@ -8691,7 +8808,7 @@
 
 end;
 
-Procedure TCB_IMGPSScanX.ErrFormtoCurrentForm(CaseID,EFormID,CFormID:String);//�N�®ת����~FormID�勵�T��FormID
+Procedure TCB_IMGPSScanX.ErrFormtoCurrentForm(CaseID,EFormID,CFormID:String);//將舊案的錯誤FormID改正確的FormID
 var
   DocNoList,FileList :TStringlist;
   EDocNo,CDocNo,iDocNo,iFormID :String;
@@ -8711,7 +8828,7 @@
       EDocDir := DocNoList.Strings[i];
       iDocNo := DocNoDir2DocNo(DocNoList.Strings[i]);
       iPath := ImageSavePath+CaseID+'\'+EDocDir+'\';
-      if FileExists(iPath+'Context.dat') then  //20140909�|�[�o�ӧP�_�y���ۭq�����S�v���|�X���~�T��
+      if FileExists(iPath+'Context.dat') then  //20140909漏加這個判斷造成自訂文件但沒影像會出錯誤訊息
         FileList.LoadFromFile(iPath+'Context.dat');
       for n := 0 to FileList.Count - 1 do
       begin
@@ -8732,7 +8849,7 @@
         MoveFile(PWideChar(iPath),PWideChar(iiPath));
         DocNoList.Strings[i] := StringReplace(DocNoList.Strings[i],iDocNo,CDocNo,[rfReplaceAll]);
         DocNoList.SaveToFile(ImageSavePath+CaseID+'\CaseDocNo.dat');
-        //SetRecordEditedDocDir('A',CaseID,CDocNo);  //20140918 yuu���令������
+        //SetRecordEditedDocDir('A',CaseID,CDocNo);  //20140918 yuu說改成不紀錄
       end;
     end;
   finally
@@ -8741,7 +8858,7 @@
   end;
 end;
 
-Procedure TCB_IMGPSScanX.SetRecordEditedDocDir(Mode:Char;CaseID,DocDir:String);  //�O���Q���ʪ����ؿ�  'A:�[�JD:�R��'
+Procedure TCB_IMGPSScanX.SetRecordEditedDocDir(Mode:Char;CaseID,DocDir:String);  //記錄被異動的文件目錄  'A:加入D:刪掉'
 var
   i : Integer;
   Exists : Boolean;
@@ -8831,7 +8948,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.GetDocNo_IS_WH(DocNo:String):Boolean; //DocNo�O�_���J�w���
+Function TCB_IMGPSScanX.GetDocNo_IS_WH(DocNo:String):Boolean; //DocNo是否為入庫文件
 var
   i :Integer;
 begin
@@ -8846,7 +8963,7 @@
   end;
 end;
 
-Procedure TCB_IMGPSScanX.SortDocDir_FormID(CaseID,DocDir:String); //�NDocDir�̪����s���Ƨ�
+Procedure TCB_IMGPSScanX.SortDocDir_FormID(CaseID,DocDir:String); //將DocDir裡的文件編號排序
 var
   i,n,v,ln : Integer;
   Exists:Boolean;
@@ -8861,13 +8978,13 @@
     if FileExists(ImageSavePath+CaseID+'\'+DocDir+'\Context.dat') then
     begin
       FileList.LoadFromFile(ImageSavePath+CaseID+'\'+DocDir+'\Context.dat');
-      ////���XFormID/////
+      ////取出FormID/////
       for i := 0 to FileList.Count - 1 do
       begin
         FormID := FileName2FormCode(FileList.Strings[i]);
-        if (FormID = 'Attach') or (FormID = 'S_Attach') then Continue;   //�������}
+        if (FormID = 'Attach') or (FormID = 'S_Attach') then Continue;   //附件離開
         Exists := False;
-        for n := 0 to FormIDList.Count - 1 do //�d�@�UFORMID�O�_�w�g�s�b�F
+        for n := 0 to FormIDList.Count - 1 do //查一下FORMID是否已經存在了
         begin
           if FormID = FormIDList.Strings[n] then
           begin
@@ -8879,7 +8996,7 @@
           FormIDList.Add(FormID);
       end;
       FormIDList.Sort;
-      //�ƧǫᲣ�n��W���M��
+      //排序後產要更名的清單
       for i := 0 to FormIDList.Count - 1 do
       begin
         iFormID := FormIDList.Strings[i];
@@ -8892,7 +9009,7 @@
         end;
       end;
       FileList.Clear;
-      //��W���s���Ǫ��ɦW
+      //更名成新順序的檔名
       for i := 0 to SortFileList.Count - 1 do
       begin
         v := Pos(',',SortFileList.Strings[i]);
@@ -8902,7 +9019,7 @@
         RenameFile(ImageSavePath+CaseID+'\'+DocDir+'\'+OldName,ImageSavePath+CaseID+'\'+DocDir+'\'+NewName);
         FileList.Add(NewName);
       end;
-      //�h��@�}�Y
+      //去掉@開頭
       for i := 0 to FileList.Count - 1 do
       begin
         OldName := FileList.Strings[i];
@@ -8941,12 +9058,12 @@
   //TreeView1click(nil);
 end;
 
-Function TCB_IMGPSScanX.DocNoIs_In_WH(DocNo:String):Boolean; //DocNo�O�_���J�w���
+Function TCB_IMGPSScanX.DocNoIs_In_WH(DocNo:String):Boolean; //DocNo是否為入庫文件
 var
   i : Integer;
 begin
   Result := False;
-  if (Copy(DocNo,1,5)='ZZZZZ') then //20140728 yuu ���ۭq���]�O�J�w���
+  if (Copy(DocNo,1,5)='ZZZZZ') then //20140728 yuu 說自訂文件也是入庫文件
   begin
     Result := True;
     Exit;
@@ -8979,7 +9096,7 @@
       for i := 0 to FileList.Count - 1 do
       begin
         Docno := FormCode2DocNo(FileName2FormCode(FileList.Strings[i]));
-ShowMessage('Docno='+Docno);
+//ShowMessage('Docno='+Docno);
         DocNoList.Add(DocNo);
         Exists := False;
         for n := 0 to CaseDocNoList.Count - 1 do
@@ -8993,7 +9110,7 @@
           CaseDocNo_CopiesList.Add('1');
         end;
       end;
-ShowMessage('CreateCaseNeedData  DocNoList='+DocNoList.Text);
+//ShowMessage('CreateCaseNeedData  DocNoList='+DocNoList.Text);
       DocNoList.SaveToFile(Path+'DocDir.dat');
       CaseDocNoList.SaveToFile(Path+'CaseDocNo.dat');
       CaseDocNo_CopiesList.SaveToFile(Path+'CaseDocNo_Copies.dat')
@@ -9020,7 +9137,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.CheckSelectImg_UseCase(Path,CaseID:String):Boolean; //�ˬd��ܪ��v���O�_���]�t�Q�ޥΪ��v��
+Function TCB_IMGPSScanX.CheckSelectImg_UseCase(Path,CaseID:String):Boolean; //檢查選擇的影像是否有包含被引用的影像
 var
   i : Integer;
   iISBName : String;
@@ -9070,33 +9187,33 @@
       OldCasePath := Path+OldCaseID+'\';
       if FileExists(OldCasePath+'UseCase.dat') and FileExists(OldCasePath+'UseCase.ini') then
       begin
-        //////����/////
+        //////壓檔/////
         //ZipMainFile(Path,Path,'Img.zip');
 
-        ////�W��/////
+        ////上傳/////
         SendData:='data='+HTTPEncode(UTF8Encode(Data))+'&verify='+Verify+'&other_case_no='+OldCaseID;
         //Showmessage(FUrl+'service/slic/SLIC02/useOther?'+senddata);
         if not upFile(HTTPSClient,FUrl,'service/imgpsc/IMGPSC02/useOther',SendData,'file',OldCasePath+'UseCase.ini',FReWrite,Memo1,False) then
         begin
-          Showmessage(Format(_Msg('�ǰe�¥�s��(%s)�ɮ׮�,�����o�Ϳ��~!!'+_Msg('���~�N�X:')),[OldCaseID])+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason);
+          Showmessage(Format(_Msg('傳送舊件編號(%s)檔案時,網路發生錯誤!!'+_Msg('錯誤代碼:')),[OldCaseID])+Inttostr(HttpError.HttpErrorCode)+' '+HttpError.HttpReason);
           Result := False;
           Exit;
         end;
         if memo1.Lines.Strings[0] = '1' then
         begin
-          Showmessage(Format(_Msg('�ǰe�¥�s��(%s)�ɮ׮�,�����o�Ϳ��~!!')+_Msg('���~��]:'),[OldCaseID])+memo1.Lines.Strings[1]);
+          Showmessage(Format(_Msg('傳送舊件編號(%s)檔案時,網路發生錯誤!!')+_Msg('錯誤原因:'),[OldCaseID])+memo1.Lines.Strings[1]);
           Result := False;
           Exit;
         end
         Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
         begin
-          Showmessage(Format(_Msg('�ǰe�¥�s��(%s)�ɮ׮�,�����o�Ϳ��~!!')+_Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J'),[OldCaseID]));
+          Showmessage(Format(_Msg('傳送舊件編號(%s)檔案時,網路發生錯誤!!')+_Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入'),[OldCaseID]));
           Result := False;
           Exit;
         end;
       end;
 
-  ////�W��////
+  ////上傳////
     end;
   finally
   OldCaseInfoList.Free;
@@ -9112,46 +9229,46 @@
   SendData:='data='+HTTPEncode(UTF8Encode(FData))+'&verify='+FVerify+'&case_no='+CaseID;
   If not ProcessServlet(HTTPSClient,FURL+'service/imgpsc/IMGPSC06/printlog',SendData,FReWrite,Memo1,False) Then
   begin
-    HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+    HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
     Result := False;
     Exit;
   end;
   IF memo1.Lines.Strings[0] = '1' Then
   begin
-    HttpErrStr := _Msg('���~��]:')+memo1.Lines.Strings[1];
+    HttpErrStr := _Msg('錯誤原因:')+memo1.Lines.Strings[1];
     Result := False;
     Exit;
   end
   Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
   begin
-    HttpErrStr := _Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J');
+    HttpErrStr := _Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入');
     Result := False;
     Exit;
   end;
 end;
 
-Function TCB_IMGPSScanX.FormIDAppear(FormID:String):Boolean; //FormID�O�_�i�X�{
+Function TCB_IMGPSScanX.FormIDAppear(FormID:String):Boolean; //FormID是否可出現
 var
   iDocNo : String;
 begin
   Result := True;
   iDocNo := FormCode2DocNo(FormID);
-  if (((FIs_In_Wh  = 'Y') and (not DocNoIs_In_WH(iDocNo))) or   //�J�w���y���ݫD�J�w���
-     ((FIs_In_Wh  = 'N') and (DocNoIs_In_WH(iDocNo)))) and      //�D�J�w���y���ݤJ�w���
+  if (((FIs_In_Wh  = 'Y') and (not DocNoIs_In_WH(iDocNo))) or   //入庫掃描不看非入庫文件
+     ((FIs_In_Wh  = 'N') and (DocNoIs_In_WH(iDocNo)))) and      //非入庫掃描不看入庫文件
      ((iDocNo <> 'Attach') and (iDocNo <> 'S_Attach') and (Copy(iDocNo,1,5)<>'ZZZZZ')) then
        Result := False;
 end;
 
-Function TCB_IMGPSScanX.DocNoAppear(DocNo:String):Boolean;   //DocNo�O�_�i�X�{
+Function TCB_IMGPSScanX.DocNoAppear(DocNo:String):Boolean;   //DocNo是否可出現
 begin
   Result := True;
-  if (((FIs_In_Wh  = 'Y') and (not DocNoIs_In_WH(DocNo)) or (DocNo ='S_Attach')) or   //�J�w���y���ݫD�J�w���
-     ((FIs_In_Wh  = 'N') and (DocNoIs_In_WH(DocNo)) or (DocNo ='Attach') )) {and      //�D�J�w���y���ݤJ�w���
+  if (((FIs_In_Wh  = 'Y') and (not DocNoIs_In_WH(DocNo)) or (DocNo ='S_Attach')) or   //入庫掃描不看非入庫文件
+     ((FIs_In_Wh  = 'N') and (DocNoIs_In_WH(DocNo)) or (DocNo ='Attach') )) {and      //非入庫掃描不看入庫文件
      (Copy(DocNo,1,5)<>'ZZZZZ')} then
        Result := False;
 end;
 
-Function TCB_IMGPSScanX.GetDocNoCount(CaseID,DocNo:String):Integer; //��DocNo�ƶq
+Function TCB_IMGPSScanX.GetDocNoCount(CaseID,DocNo:String):Integer; //取DocNo數量
 var
   i : Integer;
   Doc_Ct:Integer;
@@ -9181,12 +9298,12 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.GetDocDirCopies(CaseID,DocDir:String):Integer; //��DocDir�ƶq
+Function TCB_IMGPSScanX.GetDocDirCopies(CaseID,DocDir:String):Integer; //取DocDir數量
 var
   i : Integer;
   DocNoList,DocNo_CopiesList : TStringlist;
 begin
-  Result := 1;  //�w�]�^��1  //20140521 ��0�令1
+  Result := 1;  //預設回傳1  //20140521 由0改成1
   DocNoList := TStringlist.Create;
   DocNo_CopiesList := TStringlist.Create;
   try
@@ -9211,7 +9328,7 @@
   end;
 end;
 
-Procedure TCB_IMGPSScanX.SetDocDirCopies(CaseID,DocDir:String;NewCopies:Integer); //�ק�DocDir����
+Procedure TCB_IMGPSScanX.SetDocDirCopies(CaseID,DocDir:String;NewCopies:Integer); //修改DocDir份數
 var
   i : Integer;
   DocNoList,DocNo_CopiesList : TStringlist;
@@ -9239,7 +9356,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.GetDocDirCopies_Rec(Path,CaseID,DocDir:String):Integer; //���O���̪�DocDir����
+Function TCB_IMGPSScanX.GetDocDirCopies_Rec(Path,CaseID,DocDir:String):Integer; //取記錄裡的DocDir份數
 var
   i,n,v,v1 : Integer;
   OldCaseInfoList,Caseinfolist : TStringlist;
@@ -9249,7 +9366,7 @@
   OldCaseInfoList := TStringlist.Create;
   Caseinfolist := TStringlist.Create;
   try
-    //OldCaseInfoList �ץ�s��@#,�~��@#,�~�ȧO@#,�O�_�¥�@#,Data@#,Verify@#,���s��[����]@#,���s��[����] tab �ץ�s��@#,�~��@#,�~�ȧO@#,�O�_�¥�@#,Data@#,Verify@#,���s��[����]@#,���s��[����]
+    //OldCaseInfoList 案件編號@#,年度@#,業務別@#,是否舊件@#,Data@#,Verify@#,文件編號[份數]@#,文件編號[份數] tab 案件編號@#,年度@#,業務別@#,是否舊件@#,Data@#,Verify@#,文件編號[份數]@#,文件編號[份數]
     OldCaseInfoList.StrictDelimiter := true;
     OldCaseInfoList.Delimiter := #9;
     OldCaseInfoList.DelimitedText := FOldCaseInfo;
@@ -9291,7 +9408,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.GetCustomNameCount(CustomName:String):Integer;   //���~�Ǫ��W�ټƶq
+Function TCB_IMGPSScanX.GetCustomNameCount(CustomName:String):Integer;   //取外傳的名稱數量
 var
   i,ct : Integer;
   C_DocNameList : TStringlist;
@@ -9315,7 +9432,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.GetCustomDocNoCount(Docno:String):Integer;   //���~�Ǫ�DocNo�ƶq
+Function TCB_IMGPSScanX.GetCustomDocNoCount(Docno:String):Integer;   //取外傳的DocNo數量
 var
   i,ct : Integer;
   C_DocNoList : TStringlist;
@@ -9354,7 +9471,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.CaseDelete_Enable(CaseID:String):Boolean;  //�ץ�i�_�Q�R��
+Function TCB_IMGPSScanX.CaseDelete_Enable(CaseID:String):Boolean;  //案件可否被刪除
 var
   i : Integer;
   CaseDocNoList : TStringlist;
@@ -9366,7 +9483,7 @@
       CaseDocNoList.LoadFromFile(ImageSavePath+CaseID+'\CaseDocNo.dat');
     for i := 0 to CaseDocNoList.Count - 1 do
     begin
-      if GetUseCase('T',DisplayPath,CaseDocNoList.Strings[i]) <> '' then   //���Q�ޥΨ���
+      if GetUseCase('T',DisplayPath,CaseDocNoList.Strings[i]) <> '' then   //有被引用走的
         Result := False;
     end;
 
@@ -9375,7 +9492,7 @@
   end;
 end;
 
-Procedure TCB_IMGPSScanX.MoveImage(Path:String;mp:Integer); //���ʭ���
+Procedure TCB_IMGPSScanX.MoveImage(Path:String;mp:Integer); //移動頁數
 var
   i,n,inx:Integer;
   FList,D_Flist:TStringlist;
@@ -9433,7 +9550,7 @@
   end;
 end;
 
-Procedure TCB_IMGPSScanX.MoveImage_Drag(Path:String;fp,tp:Integer); //��Բ��ʭ���
+Procedure TCB_IMGPSScanX.MoveImage_Drag(Path:String;fp,tp:Integer); //拖拉移動頁數
 var
   i,n,inx:Integer;
   FList,D_Flist:TStringlist;
@@ -9491,7 +9608,7 @@
   end;
 end;
 
-Procedure TCB_IMGPSScanX.SetUseCase(Mode:Char;Path,DocDir,FormCaseID,ToCaseID:String);   //�O���ޥΨ�L�ץ� A:�[�J D:�R��
+Procedure TCB_IMGPSScanX.SetUseCase(Mode:Char;Path,DocDir,FormCaseID,ToCaseID:String);   //記錄引用其他案件 A:加入 D:刪掉
 var
   ini : Tinifile;
 begin
@@ -9512,7 +9629,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.GetUseCase(Mode:Char;Path,DocDir:String):String;  //F:���Q�ޥ� To:�ޥ�
+Function TCB_IMGPSScanX.GetUseCase(Mode:Char;Path,DocDir:String):String;  //F:取被引用 To:引用
 var
   ini : Tinifile;
 begin
@@ -9560,7 +9677,15 @@
     CopyFile(PWideChar(OldPath+'UseCase.ini'),PWideChar(NewPath+'UseCase.ini'),False);
 
     if FileExists(OldPath+'CaseDocNo.dat') then
+    begin
       DocNoList.LoadFromFile(OldPath+'CaseDocNo.dat');
+    end
+    else
+    begin
+      DocNoList.SaveToFile(OldPath+'CaseDocNo.dat');
+      CopyFile(PWideChar(OldPath+'CaseDocNo.dat'),PWideChar(NewPath+'CaseDocNo.dat'),False);
+    end;
+
     for i := 0 to DocNoList.Count-1 do
     begin
       DocDir := DocNoList.Strings[i];
@@ -9644,20 +9769,11 @@
   iFileList,iFile_DocDirList :TStringlist;
   AA,AA2,AA3,AA4:Boolean;
 begin
-ShowMessage('aaaaaaaa');
-  if not FileExists(SoDir+'CaseDocNo.dat') then
-  begin
-ShowMessage('1111111111');
-  end;
-  if not FileExists(SoDir+'DocDir.dat') then
-  begin
-ShowMessage('222222222');
-  end;
 
-  if (not FileExists(SoDir+'CaseDocNo.dat')) or (not FileExists(SoDir+'DocDir.dat')) then   //�I�e���|�S�o����
+  if (not FileExists(SoDir+'CaseDocNo.dat')) or (not FileExists(SoDir+'DocDir.dat')) then   //截畫面會沒這些檔
   begin
-ShowMessage('���ͥ��n����r��');
-    CreateCaseNeedData(SoDir);   //���ͥ��n����r��
+//ShowMessage('產生必要的文字檔');
+    CreateCaseNeedData(SoDir);   //產生必要的文字檔
   end;
 
   AA:=CopyFile(PWideChar(SoDir+'CaseDocNo.dat'),PWideChar(DeDir+'CaseDocNo.dat'),False);
@@ -9665,7 +9781,7 @@
   AA3:=CopyFile(PWideChar(SoDir+'CustomDocNo.ini'),PWideChar(DeDir+'CustomDocNo.ini'),False);
   AA4:=CopyFile(PWideChar(SoDir+'UseCase.ini'),PWideChar(DeDir+'UseCase.ini'),False);
 //ShowMessage(BoolToStr(AA)+#10#13+BoolToStr(AA2)+#10#13+BoolToStr(AA3)+#10#13+BoolToStr(AA4));
-  if FileExists(SoDir+'DocDir.dat') then
+  if FileExists(SoDir+'DocDir.dat') then     //20170222 新加
   begin
     CopyFile(PWideChar(SoDir+'DocDir.dat'),PWideChar(DeDir+'DocDir.dat'),False);
   end;
@@ -9702,7 +9818,7 @@
       DocDir := DocNoList.Strings[i];
       MkDir(DeDir+DocDir);
     end;}
-ShowMessage('DocNoList='+DocNoList.Text);
+//ShowMessage('DocNoList='+DocNoList.Text);
 
     for i := DocNoList.Count - 1 downto 0 do
     begin
@@ -9715,18 +9831,18 @@
       end
       else
       begin
-ShowMessage('GGG');
+//ShowMessage('GGG');
         DocNoList.Delete(i);
         DocNoList.SaveToFile(DeDir+'CaseDocNo.dat');
         if i <= CaseDocNo_CopiesList.Count-1  then
         begin
-ShowMessage('KKKK');
+//ShowMessage('KKKK');
           CaseDocNo_CopiesList.Delete(i);
           CaseDocNo_CopiesList.SaveToFile(DeDir+'CaseDocNo_Copies.dat');
         end;
       end;
     end;
-  //20170221 �����Ѱ_��  �]���L�b�ɥR���ˮɦn���|����ܪ����D
+  //20170221 先註解起來  因為他在補充掃瞄時好像會有顯示的問題
 
     for i := 0 to iFileList.Count - 1 do
     begin
@@ -9797,7 +9913,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.FormCode2FormName(CaseID,FormCode:String):String; //��FormCode�ন���W��
+Function TCB_IMGPSScanX.FormCode2FormName(CaseID,FormCode:String):String; //用FormCode轉成文件名稱
 var
   i,v,ln : Integer;
   DelBarCode : String;
@@ -9805,13 +9921,13 @@
 begin
   Result := '';
   if (FormCode = '') or (FormCode = 'Attach') or (FormCode = 'S_Attach') then
-    Result := _Msg('���k��')
+    Result := _Msg('未歸類')
   //showmessage('a');
   //stringtofile(FORM_INF_List.Text,'D:\121.txt');
   Else If FindSQLData(FORM_INF_List,'T1.FORM_ID,T1.FORM_DESC','T1.FORM_ID',FormCode,0,FindResult) then
     Result := GetFindResult('T1.FORM_DESC');
 
-  ////// ��ۭq����//////
+  ////// 到自訂文件找//////
   if Result = '' then
     Result := GetCustomDocName(ImageSavePath+CaseID+'\',FormCode2DocNo(FormCode));
   {for i := 0 to Cust_DocNoList.Count - 1 do
@@ -9829,7 +9945,7 @@
   {DelBarCode := '**'+FormCode;
   for I := 0 to FormCodeList.Count - 1 do
   begin
-    if FindDel then //�n��U�[��
+    if FindDel then //要找下架的
     begin
       if (FormCode = FormCodeList.Strings[i]) or (DelBarCode = FormCodeList.Strings[i]) then
       begin
@@ -9848,7 +9964,7 @@
   end; }
 end;
 
-Function TCB_IMGPSScanX.FormCode2FileName(FormCode:String;List:TStrings):String; //��FormCode��X�ɦW(�Ĥ@��)
+Function TCB_IMGPSScanX.FormCode2FileName(FormCode:String;List:TStrings):String; //用FormCode找出檔名(第一頁)
 var
   i : Integer;
   v,v1 : Integer;
@@ -9858,7 +9974,7 @@
   begin
     V := pos('_',List.Strings[i]);
     v1 := pos('.',List.Strings[i]);
-    if (FormCode = '') and (V = 0)then //FormCode �����h�����X��
+    if (FormCode = '') and (V = 0)then //FormCode 為空的則找附件出來
     begin
       Result := List.Strings[i];
       Break;
@@ -9871,7 +9987,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.FileName2FormCode(FileName:String):String; //�q�ɦW���XFormCode
+Function TCB_IMGPSScanX.FileName2FormCode(FileName:String):String; //從檔名取出FormCode
 var
   v,v1 : Integer;
 begin
@@ -9882,43 +9998,43 @@
   begin
     Result := Copy(FileName,v+1,v1-v-1);
   end
-  Else     //����
+  Else     //附件
   begin
     Result := '';
   end;
 end;
 
-Function TCB_IMGPSScanX.FileName2FormName(CaseID,FileName:String):String; //�q�ɦW���X���W��
+Function TCB_IMGPSScanX.FileName2FormName(CaseID,FileName:String):String; //從檔名取出文件名稱
 begin
   Result :=  FormCode2FormName(CaseID,FileName2FormCode(FileName));
 end;
 
-Function TCB_IMGPSScanX.FileName2ScanPage(FileName:String):Integer; //�q�ɦW��X���˭���
+Function TCB_IMGPSScanX.FileName2ScanPage(FileName:String):Integer; //從檔名轉出掃瞄頁數
 Var
   v : Integer;
   FName : String;
 begin
   FName := ExtractFileName(FileName);
   v := Pos('_',FName);
-  if v = 0 then   //����
+  if v = 0 then   //附件
     v := pos('.',FName);
   Result := Strtoint(Copy(FName,1,v-1));
 end;
 
-Function TCB_IMGPSScanX.FileName2NoQuene_Filename(FileName:String):String; //���X�S���Ǹ����ɦW
+Function TCB_IMGPSScanX.FileName2NoQuene_Filename(FileName:String):String; //取出沒有序號的檔名
 var
   v,v1 : Integer;
   FName : String;
 begin
   FName := ExtractFileName(FileName);
   v := Pos('_',FName);
-  if v = 0 then   //����
+  if v = 0 then   //附件
     v := pos('.',FName);
   v1 := length(FName);
   Result := Copy(FName,v,v1-v+1);
 end;
 
-Function TCB_IMGPSScanX.FileName2Index(FileName:String):Integer; //�q�ɦW���X�bContextList���Ǹ�
+Function TCB_IMGPSScanX.FileName2Index(FileName:String):Integer; //從檔名取出在ContextList的序號
 var
   i : Integer;
 begin
@@ -9932,7 +10048,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.FileName2NowDcoNo(FileName:String;CtList,DNList:TStrings):String; //�q�ɦW���X�k�ݪ����N��
+Function TCB_IMGPSScanX.FileName2NowDcoNo(FileName:String;CtList,DNList:TStrings):String; //從檔名取出歸屬的文件代號
 var
   i : Integer;
 begin
@@ -9946,7 +10062,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.FormCode2DocNo(FormCode:String):String;   //FormCode��Docno
+Function TCB_IMGPSScanX.FormCode2DocNo(FormCode:String):String;   //FormCode轉Docno
 Var
   i : Integer;
 begin
@@ -9960,28 +10076,28 @@
     end;
 
   end;
-  if (FormCode <> '') and (Result = '') then    //�O�ۭq���
+  if (FormCode <> '') and (Result = '') then    //是自訂文件
   begin
-    Result := Copy(FormCode,1,8);
+    Result := Copy(FormCode,1,8); //20170224 DocNo 固定長度8碼
   end;
 
-  {If FindSQLData(FORM_INF_List,'T1.DOC_NO','T1.FORM_ID',FormCode,0,FindResult) Then  //20130403�ӺC�F..����
+  {If FindSQLData(FORM_INF_List,'T1.DOC_NO','T1.FORM_ID',FormCode,0,FindResult) Then  //20130403太慢了..換掉
   begin
     Result := GetFindResult('T1.DOC_NO');
   end;}
 end;
 
-Function TCB_IMGPSScanX.FormCode2Version(FormCode:String):String; //FormCode�઩��
+Function TCB_IMGPSScanX.FormCode2Version(FormCode:String):String; //FormCode轉版本
 begin
   Result := Copy(FormCode,11,5);
 end;
 
-Function TCB_IMGPSScanX.FormCode2Page(FormCode:String):String; //FormCode�୶��
+Function TCB_IMGPSScanX.FormCode2Page(FormCode:String):String; //FormCode轉頁數
 begin
   Result := Copy(FormCode,9,2)
 end;
 
-Function TCB_IMGPSScanX.DocNo2DocName(CaseID,DocNo:String):String; //Docno��Doc�W��
+Function TCB_IMGPSScanX.DocNo2DocName(CaseID,DocNo:String):String; //Docno轉Doc名稱
 var
   i,v,ln : Integer;
   CusDocNo,CusDocName : String;
@@ -9989,7 +10105,7 @@
   Result := '';
   if DocNo = AttName then
   begin
-    Result := _Msg('���k��');
+    Result := _Msg('未歸類');
   end
   Else
   begin
@@ -9999,7 +10115,7 @@
     end;
   end;
 
-  if Result = '' then  //�h�ۭq���̧�
+  if Result = '' then  //去自訂文件裡找
   begin
     Result := GetCustomDocName(ImageSavePath+CaseID+'\',DocNo);
     {for i := 0 to Cust_DocNoList.Count - 1 do
@@ -10018,7 +10134,7 @@
 
 end;
 
-Function TCB_IMGPSScanX.DocNo2FileName(DocNo:String;List:TStrings):String; //��DocNo��X�ɦW(�Ĥ@��)
+Function TCB_IMGPSScanX.DocNo2FileName(DocNo:String;List:TStrings):String; //用DocNo找出檔名(第一頁)
 var
   i : Integer;
 begin
@@ -10033,7 +10149,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.FormCode2WorkNo(FormCode:String):String; //��FormCode���X�@�~�O
+Function TCB_IMGPSScanX.FormCode2WorkNo(FormCode:String):String; //用FormCode取出作業別
 begin
   Result := '';
   If FindSQLData(FORM_INF_List,'T1.WORK_NO','T1.FORM_ID',FormCode,0,FindResult) Then
@@ -10042,7 +10158,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.DocNo2WorkNo(DocNo:String):String; //��DocNo���X�@�~�O
+Function TCB_IMGPSScanX.DocNo2WorkNo(DocNo:String):String; //用DocNo取出作業別
 begin
   Result := '';
   If FindSQLData(Doc_Inf_List,'WORK_NO','DOC_NO',DocNo,0,FindResult) Then
@@ -10051,7 +10167,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.DocNoNeedDiv(DocNo:String):Boolean; //�O�_�O�ݤ����ƪ����N��
+Function TCB_IMGPSScanX.DocNoNeedDiv(DocNo:String):Boolean; //是否是需分份數的文件代號
 var
   NeedDiv : String;
 begin
@@ -10064,11 +10180,11 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.CaseNode2Info(Node:TTreeNode;Mode:Char):String;   //�ץ�Node���ץ�s��  Mode: I:Caseno;P:Page
+Function TCB_IMGPSScanX.CaseNode2Info(Node:TTreeNode;Mode:Char):String;   //案件Node取案件編號  Mode: I:Caseno;P:Page
 var
   v,ln : Integer;
 begin
-  //XXXXXX-XX��
+  //XXXXXX-XX頁
   V := Pos('-',Node.Text);
   ln := Length(Node.Text);
   case Mode of
@@ -10078,11 +10194,11 @@
 
 end;
 
-Function TCB_IMGPSScanX.DocNode2Info(Node:TTreeNode;Mode:Char):String;   //���Node�����N�� Mode: I:Docno;N:Docname;P:Page;G:Group
+Function TCB_IMGPSScanX.DocNode2Info(Node:TTreeNode;Mode:Char):String;   //文件Node取文件代號 Mode: I:Docno;N:Docname;P:Page;G:Group
 var
   v,v1,v2,v3,ln :integer;
 begin
-  //���W��@�ռ�{���N��}-XX��
+  //文件名稱@組數{文件代號}-XX頁
   V := PosEnd('@',Node.Text);
   v1 := PosEnd('{',Node.Text);
   v2 := PosEnd('}',Node.Text);
@@ -10096,11 +10212,11 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.FormNode2Info(Node:TTreeNode;Mode:Char):String;   //���Node�����N��  Mode: I:FormID;N:FormName;P:Page
+Function TCB_IMGPSScanX.FormNode2Info(Node:TTreeNode;Mode:Char):String;   //表單Node取表單代號  Mode: I:FormID;N:FormName;P:Page
 var
   v,v1,v2,ln :integer;
 begin
-  //���N��{���W��}-XX��
+  //表單代號{表單名稱}-XX頁
   v := Pos('{',Node.Text);
   v1 := PosEnd('}',Node.Text);
   v2 := PosEnd('-',Node.Text);
@@ -10112,7 +10228,7 @@
   end;
 end;
 
-Procedure TCB_IMGPSScanX.PriorPage(Page:Integer); //�W�@��
+Procedure TCB_IMGPSScanX.PriorPage(Page:Integer); //上一頁
 var
   iISB : TImageScrollBox;
 begin
@@ -10123,7 +10239,7 @@
   end;
 end;
 
-Procedure TCB_IMGPSScanX.NextPage(Page:Integer); //�U�@��
+Procedure TCB_IMGPSScanX.NextPage(Page:Integer); //下一頁
 var
   iISB : TImageScrollBox;
 begin
@@ -10134,7 +10250,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.DocNoExistsinTree(CaseNode:TTreeNode;DocNo:String):Boolean; //�O�_�v�s�b���
+Function TCB_IMGPSScanX.DocNoExistsinTree(CaseNode:TTreeNode;DocNo:String):Boolean; //是否己存在樹裡
 var
   i : Integer;
 begin
@@ -10150,7 +10266,7 @@
 
 end;
 
-Function TCB_IMGPSScanX.DocnoNeedGroup(DocNo:String):Boolean; //�ǤJ��DocNo�O�_�ݤ���
+Function TCB_IMGPSScanX.DocnoNeedGroup(DocNo:String):Boolean; //傳入的DocNo是否需分組
 begin
   Result := False;
   If FindSQLData(Doc_Inf_List,'IS_DOC_DIV','DOC_NO',DocNo,0,FindResult) Then
@@ -10160,7 +10276,7 @@
   end;
 end;
 
-Procedure TCB_IMGPSScanX.DistinctFormCode(CaseID:String); //�q�ץ�̪�FormCode���X�Ĥ@��
+Procedure TCB_IMGPSScanX.DistinctFormCode(CaseID:String); //從案件裡的FormCode取出第一頁
 var
   i,n : Integer;
   LForm,OForm : String;
@@ -10195,7 +10311,7 @@
 end;
 
 
-Function TCB_IMGPSScanX.OMRCheckCase(CaseID:String):Boolean; //OMR�ˮ�
+Function TCB_IMGPSScanX.OMRCheckCase(CaseID:String):Boolean; //OMR檢核
 var
   i,n,m,v,v1 : Integer;
   XT,RelaXT,ValueXT : TXmltool;
@@ -10209,22 +10325,22 @@
   OMROK : Boolean;
   CaseOk : Boolean;
   ErrStr : String;
-  SiteRec,RelaSiteRec : String;  //�h�զ�m�O��
+  SiteRec,RelaSiteRec : String;  //多組位置記錄
   OMRValue : String;
-  MainFormID,MainDocNo,MainVersion : String; //�DFormID
-  MainFormPage,CaseFormPage : Integer;  //�D�n���ݭn������
-  NeedDocNoStr,NoDocNoStr : String; //�ۨ� �������r��
+  MainFormID,MainDocNo,MainVersion : String; //主FormID
+  MainFormPage,CaseFormPage : Integer;  //主要文件需要的頁數
+  NeedDocNoStr,NoDocNoStr : String; //相依 互斥文件字串
   List : TStringlist;
   FormCode : String;
   FormDataPages : Integer;
-  NoSite : Boolean; //���w��
+  NoSite : Boolean; //未定位
   Anchor,Anchor1 : String;
   OMROkCount : Integer;
-  //Casecheck : Boolean;  //�O�_�n���ˮ�
-  //AllCheck : Boolean;  //�O�_�n�������ˮ�
+  //Casecheck : Boolean;  //是否要做檢核
+  //AllCheck : Boolean;  //是否要做完整檢核
 begin
-  ///OMRErrInfo  1: ���n���  2:�̤ۨ�� 3:�������  4:���� 5:��즳�Ȫ����  6:��즳�Ȥ������
-  ///            7: ��즳�Ȭ������]�n����  8:��즳�ȭn�g�Ƶ� 9:���Τ�� 10:�̤j����
+  ///OMRErrInfo  1: 必要文件  2:相依文件 3:互斥文件  4:必填 5:欄位有值附文件  6:欄位有值不附文件
+  ///            7: 欄位有值相關欄位也要有值  8:欄位有值要寫備註 9:停用日期 10:最大頁數
   //Casecheck := True;
   //Allcheck := True;
   //if (FMode = 'ISCAN') then
@@ -10251,20 +10367,20 @@
         end;
         if MainFormID = ''then
         begin
-          //20131203 yuu�����ˬd�o��,������
-          {if FMode <> 'SSCAN' then  //ñ�p����|���DFormID,�����L
+          //20131203 yuu說不檢查這個,先拿掉
+          {if FMode <> 'SSCAN' then  //簽署章件會換主FormID,先跳過
           begin
-            ErrStr:=_Msg('�䤣����פ��');   //�䤣��D���
+            ErrStr:=_Msg('找不到分案文件');   //找不到主文件
             OMRErr2ini(CaseID,ErrStr,'','','','','','',False,False,True);
             CaseOk := false;
           end;}
         end
         Else
         begin
-          //////�D�n�D�D�n���//////
+          //////主要非主要文件//////
           DistinctDocinCase(ImageSavePath+CaseID+'\upload\');
 
-          if ModeNeedCheck(OMRErrInfo[1].Mode,FMode) then //�O�_�n�ˮ�
+          if ModeNeedCheck(OMRErrInfo[1].Mode,FMode) then //是否要檢核
           begin
             for i := 0 to DocNo_VerinCase.Count - 1 do
             begin
@@ -10272,18 +10388,18 @@
               v1 := length(DocNo_VerinCase.Strings[i]);
               MainDocNo := Copy(DocNo_VerinCase.Strings[i],1,v-1); //FormCode2DocNo(MainFormID);
               MainVersion :=Copy(DocNo_VerinCase.Strings[i],v+1,v1-v); //FormCode2Version(MainFormID);
-              MainFormPage := GetDataDocNoPage(MainDocNo,MainVersion); //��Ʈw�O���D��󭶼�
-              CaseFormPage := CheckCaseDocNoPage(CaseID,MainDocNo,MainVersion,MainFormPage); //�ץ�D��󪺭���
+              MainFormPage := GetDataDocNoPage(MainDocNo,MainVersion); //資料庫記錄主文件頁數
+              CaseFormPage := CheckCaseDocNoPage(CaseID,MainDocNo,MainVersion,MainFormPage); //案件主文件的頁數
               IF (MainFormPage > 0) and (MainFormPage <> CaseFormPage) then
               begin
-                ErrStr:=MainDocNo+Format(OMRErrInfo[1].Info,[Inttostr(MainFormPage),Inttostr(CaseFormPage)]); //�D�n���ݦ�XX���Ȫ�XX��
+                ErrStr:=MainDocNo+Format(OMRErrInfo[1].Info,[Inttostr(MainFormPage),Inttostr(CaseFormPage)]); //主要文件需有XX頁僅附XX頁
                 OMRErr2ini(CaseID,ErrStr,'','','','','','',False,OMRErrInfo[1].Ignore,OMRErrInfo[1].Display);
                 if OMRErrInfo[1].Display then
                   CaseOk := false;
               end;
             end;
           end;
-          //////�D�n�D�D�n���/////
+          //////主要非主要文件/////
           //showmessage(MainFormID);
           MainDocNo := FormCode2DocNo(MainFormID);
           MainVersion := FormCode2Version(MainFormID);
@@ -10298,101 +10414,101 @@
             NoDocNoStr := GetFindResult('MUTEX_FORM_ID');
           end;
 
-          //////�̤ۨ��/////
-          if ModeNeedCheck(OMRErrInfo[2].Mode,FMode) then //�O�_�n�ˮ�
+          //////相依文件/////
+          if ModeNeedCheck(OMRErrInfo[2].Mode,FMode) then //是否要檢核
           begin
             List.CommaText := NeedDocNoStr;
             for I := 0 to List.Count - 1 do
             begin
-              if not Case_DocNoExists(CaseID,List.Strings[i]) then  //�S���̤ۨ��
+              if not Case_DocNoExists(CaseID,List.Strings[i]) then  //沒附相依文件
               begin
-                ErrStr:=Format(OMRErrInfo[2].Info,[DocNo2DocName(CaseID,List.Strings[i])]);   //�S���̤ۨ��
+                ErrStr:=Format(OMRErrInfo[2].Info,[DocNo2DocName(CaseID,List.Strings[i])]);   //沒附相依文件
                 OMRErr2ini(CaseID,ErrStr,'','','','','','',False,OMRErrInfo[2].Ignore,OMRErrInfo[2].Display);
                 if OMRErrInfo[2].Display then
                   CaseOk := false;
               end;
             end;
           end;
-          //////�̤ۨ��/////
+          //////相依文件/////
 
-          //////�������/////
-          if ModeNeedCheck(OMRErrInfo[3].Mode,FMode) then //�O�_�n�ˮ�
+          //////互斥文件/////
+          if ModeNeedCheck(OMRErrInfo[3].Mode,FMode) then //是否要檢核
           begin
             List.CommaText := NoDocNoStr;
             for I := 0 to List.Count - 1 do
             begin
-              if Case_DocNoExists(CaseID,List.Strings[i]) then  //���F�������
+              if Case_DocNoExists(CaseID,List.Strings[i]) then  //附了互斥文件
               begin
-                ErrStr:=Format(OMRErrInfo[3].Info,[DocNo2DocName(CaseID,List.Strings[i])]);   //�����������
+                ErrStr:=Format(OMRErrInfo[3].Info,[DocNo2DocName(CaseID,List.Strings[i])]);   //有附互斥文件
                 OMRErr2ini(CaseID,ErrStr,'','','','','','',False,OMRErrInfo[3].Ignore,OMRErrInfo[3].Display);
                 if OMRErrInfo[3].Display then
                   CaseOk := false;
               end;
             end;
           end;
-          //////�������/////
+          //////互斥文件/////
         end;
       //end;
       List.LoadFromFile(ImageSavePath + CaseID+'\upload\Context.dat');
       for i := 0 to List.Count - 1 do
       begin
         FormCode := FileName2FormCode(List.Strings[i]);
-        /////���k��///
-        {IF FormCode = 'Attach' Then   //20140211 yuu�����ˬd�F
+        /////未歸類///
+        {IF FormCode = 'Attach' Then   //20140211 yuu說不檢查了
         begin
-          ErrStr:=_Msg('�|������k��');
+          ErrStr:=_Msg('尚有文件未歸類');
           OMRErr2ini(CaseID,ErrStr,'','','','','','',False,False,True);
           CaseOk := false;
         end; }
-        /////���k��//////
+        /////未歸類//////
 
-        /////�����U���/////
-        {IF not FormIDExists(FormCode,False) then  //�����U���
+        /////未註冊文件/////
+        {IF not FormIDExists(FormCode,False) then  //未註冊文件
         begin
-          ErrStr:=FormCode+_Msg('�������~�Ȫ����N�X');
+          ErrStr:=FormCode+_Msg('不為此業務的表單代碼');
           OMRErr2ini(CaseID,ErrStr,'','','','',False,False,True);
           CaseOk := false;
         end }
-        /////�����U���/////
-        //////�����//
-        {Else} IF ModeNeedCheck(OMRErrInfo[9].Mode,FMode) and (not FormIDExists(FormCode,True,0)) then  //���������
+        /////未註冊文件/////
+        //////停用文件//
+        {Else} IF ModeNeedCheck(OMRErrInfo[9].Mode,FMode) and (not FormIDExists(FormCode,True,0)) then  //有停用的文件
         begin
-          ErrStr:=Format(OMRErrInfo[9].Info,[FormCode2FormName(CaseID,FormCode)]);   //�������
+          ErrStr:=Format(OMRErrInfo[9].Info,[FormCode2FormName(CaseID,FormCode)]);   //有停用文件
           OMRErr2ini(CaseID,ErrStr,'','','','','','',False,OMRErrInfo[9].Ignore,OMRErrInfo[9].Display);
           if OMRErrInfo[9].Display then
             CaseOk := false;
         end;
-        //////�����////
+        //////停用文件////
       end;
     finally
       List.Free;
     end;
     //if AllCheck then
     //begin
-      //////�̤j����/////
+      //////最大頁數/////
       DistinctFormCode(CaseID);
-      if ModeNeedCheck(OMRErrInfo[10].Mode,FMode) then //�O�_�n�ˮ�
+      if ModeNeedCheck(OMRErrInfo[10].Mode,FMode) then //是否要檢核
       begin
         For i := 0 to OMRFileList.Count - 1 do
         begin
           FormCode := FileName2FormCode(OMRFileList.Strings[i]);
           FormDataPages := GetDataFormCodePages(FormCode);
 
-          IF (FormCode <> '') and (FormDataPages > 0) and (FindFormCodePages(CaseID,FormCode) > FormDataPages) then  //���W�L�̤j���ƪ����
+          IF (FormCode <> '') and (FormDataPages > 0) and (FindFormCodePages(CaseID,FormCode) > FormDataPages) then  //有超過最大頁數的文件
           begin
-            ErrStr:=Format(OMRErrInfo[10].Info,[FormCode2FormName(CaseID,FormCode),inttostr(FormDataPages)]);   //���W�L�̤j���Ƥ��
+            ErrStr:=Format(OMRErrInfo[10].Info,[FormCode2FormName(CaseID,FormCode),inttostr(FormDataPages)]);   //有超過最大頁數文件
             OMRErr2ini(CaseID,ErrStr,'','','','','','',False,OMRErrInfo[10].Ignore,OMRErrInfo[10].Display);
             if OMRErrInfo[10].Display then
               CaseOk := false;
           end;
         end;
       end;
-      /////�̤j����/////
+      /////最大頁數/////
     //end;
     ImageScrollBox1.FileName := '';
-    //if FWork_No = 'CW' then   //�z�ߴN�����U�����ˮ֤F
+    //if FWork_No = 'CW' then   //理賠就不做下面的檢核了
     //begin
-      //////OMR�ˮ�///////
+      //////OMR檢核///////
       ContextList.LoadFromFile(ImageSavePath+CaseID+'\upload\Context.dat');
       DistinctFormCode(CaseID);
       ValueXT := TXmltool.Create;
@@ -10403,10 +10519,10 @@
           OMRFormCode := FileName2FormCode(OMRFileList.Strings[i]);
           OMRFormName := FormCode2FormName(CaseID,OMRFormCode);
           Anchor := FormID2Anchor(OMRFormCode);
-          ///�̤Q�r�w���I�Y��////
+          ///依十字定位點縮放////
           ImageReSize(CaseID,OMRFile);
-          ////�̤Q�r�w���I�Y��////
-          if not FileExists(CheckXmlPath+OMRFormCode+'.xml') then  //�S��Xml�N�����ˮ�
+          ////依十字定位點縮放////
+          if not FileExists(CheckXmlPath+OMRFormCode+'.xml') then  //沒有Xml就不用檢核
             Continue;
 
 
@@ -10414,13 +10530,13 @@
           RelaXT := TXmltool.Create;
 
           try
-            //*******����********
-            if ModeNeedCheck(OMRErrInfo[4].Mode,FMode) then //�O�_�n�ˮ�
+            //*******必填********
+            if ModeNeedCheck(OMRErrInfo[4].Mode,FMode) then //是否要檢核
             begin
               if XT.SubNodes['/form/settype1/'].First then
               Repeat
                 OMROK := False;
-                SiteRec := ''; //�M��
+                SiteRec := ''; //清掉
                 ColEName := XT.SubNodes['/form/settype1/'].NodeName;
                 ColCName := XT.Node['/form/settype1/'+ColEName+'/'].Attributes['coldesc'];
                 ColCName := Copy(ColCName,1,length(ColCName)-6);
@@ -10431,11 +10547,11 @@
                   begin
                     Pixel := Strtoint(XT.Node['/form/settype1/'+ColEName+'/'+nodename+'/'].Attributes['pixel']);
                     Site := XT.Node['/form/settype1/'+ColEName+'/'+nodename+'/'].Attributes['colxy'];
-                    if SiteRec= '' then   //�O����m
+                    if SiteRec= '' then   //記錄位置
                       SiteRec := Site
                     else
                       SiteRec := SiteRec+'@'+Site;
-                    //����Nok
+                    //有填就ok
                     //Showmessage(ColCName +','+ inttostr(OMRMpsV1.GetSiteOMR(ImageSavePath+CaseID+'\upload\'+OMRFile,Site))+','+inttostr(Pixel + SafePixel));
                     if GetSiteOMR(ImageSavePath+CaseID+'\upload\'+OMRFile,Site,Bt) > (Pixel + SafePixel)  then
                     begin
@@ -10451,19 +10567,19 @@
                 Until not XT.SubNodes['/form/settype1/'+ColEName+'/'].Next;
                 if not OMROk then
                 begin
-                  ErrStr:=Format(OMRErrInfo[4].Info,[ColCName]);   //XX��쥼��g
+                  ErrStr:=Format(OMRErrInfo[4].Info,[ColCName]);   //XX欄位未填寫
                   OMRErr2ini(CaseID,ErrStr,ImageSavePath+CaseID+'\upload\'+OMRFile,SiteRec,'','',Anchor,Anchor1,False,OMRErrInfo[4].Ignore,OMRErrInfo[4].Display);
                   if OMRErrInfo[4].Display then
                     CaseOk := false;
                 end;
               Until not XT.SubNodes['/form/settype1/'].Next ;
             end;
-            //*******����********
+            //*******必填********
 
             //if AllCheck then
             //begin
-            //*******���Ȭ���������]�n����*******
-            if ModeNeedCheck(OMRErrInfo[7].Mode,FMode) then //�O�_�n�ˮ�
+            //*******有值相關文件的欄位也要有值*******
+            if ModeNeedCheck(OMRErrInfo[7].Mode,FMode) then //是否要檢核
             begin
               if XT.SubNodes['/form/settype3/'].First then
               Repeat
@@ -10473,14 +10589,14 @@
                 ColCName := XT.Node['/form/settype3/'+ColEName+'/'].Attributes['coldesc'];
                 ColCName := Copy(ColCName,1,length(ColCName)-6);
                 Site := XT.Node['/form/settype3/'+ColEName+'/'].Attributes['colxy'];
-                if SiteRec= '' then   //�O����m
+                if SiteRec= '' then   //記錄位置
                   SiteRec := Site
                 else
                   SiteRec := SiteRec+'@'+Site;
                 Pixel := XT.Node['/form/settype3/'+ColEName+'/'].Attributes['pixel'];
                 if GetSiteOMR(ImageSavePath+CaseID+'\upload\'+OMRFile,Site,Bt) > (Pixel + SafePixel) then
                 begin
-                  ////����g////
+                  ////有填寫////
 
                   if XT.SubNodes['/form/settype3/'+ColEName+'/'].First then
                   Repeat
@@ -10510,7 +10626,7 @@
                           begin
                             RelaPixel := Strtoint(RelaXT.Node['/form/settype2/'+RelaColEName+'/'+nodename+'/'].Attributes['pixel']);
                             RelaSite := RelaXT.Node['/form/settype2/'+RelaColEName+'/'+nodename+'/'].Attributes['colxy'];
-                            if RelaSiteRec= '' then   //�O����m
+                            if RelaSiteRec= '' then   //記錄位置
                               RelaSiteRec := RelaSite
                             else
                               RelaSiteRec := RelaSiteRec+'@'+RelaSite;
@@ -10531,11 +10647,11 @@
                         if not OMROk then
                         begin
                           if not FileExists(ImageSavePath+CaseID+'\upload\'+RelaFile) then
-                            ErrStr:=Format(OMRErrInfo[7].Info,[ColCName,RelaColCName])+'('+_msg('����')+RelaFormName+')'   //XX����g��,XX��쥼��g
+                            ErrStr:=Format(OMRErrInfo[7].Info,[ColCName,RelaColCName])+'('+_msg('未附')+RelaFormName+')'   //XX欄位填寫時,XX欄位未填寫
                           Else if NoSite then
-                            ErrStr:=Format(OMRErrInfo[7].Info,[ColCName,RelaColCName])+'('+_msg('���w��')+')'
+                            ErrStr:=Format(OMRErrInfo[7].Info,[ColCName,RelaColCName])+'('+_msg('未定位')+')'
                           Else
-                            ErrStr:=Format(OMRErrInfo[7].Info,[ColCName,RelaColCName]);   //XX����g��,XX��쥼��g
+                            ErrStr:=Format(OMRErrInfo[7].Info,[ColCName,RelaColCName]);   //XX欄位填寫時,XX欄位未填寫
                           OMRErr2ini(CaseID,ErrStr,ImageSavePath+CaseID+'\upload\'+OMRFile,SiteRec,ImageSavePath+CaseID+'\upload\'+RelaFile,RelaSiteRec,Anchor,Anchor1,False,OMRErrInfo[7].Ignore,OMRErrInfo[7].Display);
                           if OMRErrInfo[7].Display then
                             CaseOk := false;
@@ -10547,10 +10663,10 @@
                 end;
               Until not XT.SubNodes['/form/settype3/'].Next ;
             end;
-            //*******���Ȭ���������]�n����*******
+            //*******有值相關文件的欄位也要有值*******
 
-            //*******���Ȭ��������줣�঳��*******
-            if ModeNeedCheck(OMRErrInfo[11].Mode,FMode) then //�O�_�n�ˮ�
+            //*******有值相關文件的欄位不能有值*******
+            if ModeNeedCheck(OMRErrInfo[11].Mode,FMode) then //是否要檢核
             begin
               if XT.SubNodes['/form/settype8/'].First then
               Repeat
@@ -10561,7 +10677,7 @@
                 ColCName := XT.Node['/form/settype8/'+ColEName+'/'].Attributes['coldesc'];
                 ColCName := Copy(ColCName,1,length(ColCName)-6);
                 Site := XT.Node['/form/settype8/'+ColEName+'/'].Attributes['colxy'];
-                if SiteRec= '' then   //�O����m
+                if SiteRec= '' then   //記錄位置
                   SiteRec := Site
                 else
                   SiteRec := SiteRec+'@'+Site;
@@ -10569,7 +10685,7 @@
 
                 if GetSiteOMR(ImageSavePath+CaseID+'\upload\'+OMRFile,Site,Bt) > (Pixel + SafePixel) then
                 begin
-                  ////����g// //
+                  ////有填寫// //
                   inc(OMROkCount);
                 end;
                 if XT.SubNodes['/form/settype8/'+ColEName+'/'].First then
@@ -10600,7 +10716,7 @@
                         begin
                           RelaPixel := Strtoint(RelaXT.Node['/form/settype2/'+RelaColEName+'/'+nodename+'/'].Attributes['pixel']);
                           RelaSite := RelaXT.Node['/form/settype2/'+RelaColEName+'/'+nodename+'/'].Attributes['colxy'];
-                          if RelaSiteRec= '' then   //�O����m
+                          if RelaSiteRec= '' then   //記錄位置
                             RelaSiteRec := RelaSite
                           else
                             RelaSiteRec := RelaSiteRec+'@'+RelaSite;
@@ -10622,11 +10738,11 @@
                       if OMROkCount > 1  then
                       begin
                         if not FileExists(ImageSavePath+CaseID+'\upload\'+RelaFile) then
-                          ErrStr:=Format(OMRErrInfo[11].Info,[ColCName,RelaColCName])+'('+_msg('����')+RelaFormName+')'   //XX����g��,XX���]��g
+                          ErrStr:=Format(OMRErrInfo[11].Info,[ColCName,RelaColCName])+'('+_msg('未附')+RelaFormName+')'   //XX欄位填寫時,XX欄位也填寫
                         Else if NoSite then
-                          ErrStr:=Format(OMRErrInfo[11].Info,[ColCName,RelaColCName])+'('+_msg('���w��')+')'
+                          ErrStr:=Format(OMRErrInfo[11].Info,[ColCName,RelaColCName])+'('+_msg('未定位')+')'
                         Else
-                          ErrStr:=Format(OMRErrInfo[11].Info,[ColCName,RelaColCName]);   //XX����g��,XX���]��g
+                          ErrStr:=Format(OMRErrInfo[11].Info,[ColCName,RelaColCName]);   //XX欄位填寫時,XX欄位也填寫
                         OMRErr2ini(CaseID,ErrStr,ImageSavePath+CaseID+'\upload\'+OMRFile,SiteRec,ImageSavePath+CaseID+'\upload\'+RelaFile,RelaSiteRec,Anchor,Anchor1,False,OMRErrInfo[7].Ignore,OMRErrInfo[7].Display);
                         if OMRErrInfo[11].Display then
                           CaseOk := false;
@@ -10637,12 +10753,12 @@
                 Until not XT.SubNodes['/form/settype8/'+ColEName+'/'].Next;
               Until not XT.SubNodes['/form/settype8/'].Next ;
             end;
-            //*******���Ȭ��������줣�঳��*******
+            //*******有值相關文件的欄位不能有值*******
 
 
 
-              //*******���Ȭ̤ۨ��*******
-            if ModeNeedCheck(OMRErrInfo[5].Mode,FMode) then //�O�_�n�ˮ�
+              //*******有值相依文件*******
+            if ModeNeedCheck(OMRErrInfo[5].Mode,FMode) then //是否要檢核
             begin
               if XT.SubNodes['/form/settype4/'].First then
               Repeat
@@ -10652,14 +10768,14 @@
                 ColCName := XT.Node['/form/settype4/'+ColEName+'/'].Attributes['coldesc'];
                 ColCName := Copy(ColCName,1,length(ColCName)-6);
                 Site := XT.Node['/form/settype4/'+ColEName+'/'].Attributes['colxy'];
-                if SiteRec= '' then   //�O����m
+                if SiteRec= '' then   //記錄位置
                   SiteRec := Site
                 else
                   SiteRec := SiteRec+'@'+Site;
                 Pixel := XT.Node['/form/settype4/'+ColEName+'/'].Attributes['pixel'];
                 if GetSiteOMR(ImageSavePath+CaseID+'\upload\'+OMRFile,Site,Bt) > (Pixel + SafePixel) then
                 begin
-                  ////����g////
+                  ////有填寫////
                   if XT.SubNodes['/form/settype4/'+ColEName+'/'].First then
                   Repeat
                     nodename := XT.SubNodes['/form/settype4/'+ColEName+'/'].NodeName;
@@ -10673,7 +10789,7 @@
                       RelaDocName := XT.Node['/form/settype4/'+ColEName+'/'+nodename+'/'].Attributes['relaformname'];
                       if RelaFile='' then
                       begin
-                        ErrStr:=Format(OMRErrInfo[5].Info,[ColCName,RelaDocName]);   //XX���XX����g��,�ݪ�XX���
+                        ErrStr:=Format(OMRErrInfo[5].Info,[ColCName,RelaDocName]);   //XX文件XX欄位填寫時,需附XX文件
                         OMRErr2ini(CaseID,ErrStr,ImageSavePath+CaseID+'\upload\'+OMRFile,SiteRec,'','',Anchor,Anchor1,False,OMRErrInfo[5].Ignore,OMRErrInfo[5].Display);
                         if OMRErrInfo[5].Display then
                           CaseOk := false;
@@ -10683,10 +10799,10 @@
                 end;
               Until not XT.SubNodes['/form/settype4/'].Next ;
             end;
-              //*******���Ȭ̤ۨ��*******
+              //*******有值相依文件*******
 
-              //*******���Ȥ������*******
-            if ModeNeedCheck(OMRErrInfo[6].Mode,FMode) then //�O�_�n�ˮ�
+              //*******有值互斥文件*******
+            if ModeNeedCheck(OMRErrInfo[6].Mode,FMode) then //是否要檢核
             begin
               if XT.SubNodes['/form/settype5/'].First then
               Repeat
@@ -10696,14 +10812,14 @@
                 ColCName := XT.Node['/form/settype5/'+ColEName+'/'].Attributes['coldesc'];
                 ColCName := Copy(ColCName,1,length(ColCName)-6);
                 Site := XT.Node['/form/settype5/'+ColEName+'/'].Attributes['colxy'];
-                if SiteRec= '' then   //�O����m
+                if SiteRec= '' then   //記錄位置
                   SiteRec := Site
                 else
                   SiteRec := SiteRec+'@'+Site;
                 Pixel := XT.Node['/form/settype5/'+ColEName+'/'].Attributes['pixel'];
                 if GetSiteOMR(ImageSavePath+CaseID+'\upload\'+OMRFile,Site,Bt) > (Pixel + SafePixel) then
                 begin
-                  ////����g////
+                  ////有填寫////
                   if XT.SubNodes['/form/settype5/'+ColEName+'/'].First then
                   Repeat
                     nodename := XT.SubNodes['/form/settype5/'+ColEName+'/'].NodeName;
@@ -10715,9 +10831,9 @@
                       RelaDocNo := XT.Node['/form/settype5/'+ColEName+'/'+nodename+'/'].Attributes['relaformid'];
                       RelaFile := DocNo2FileName(RelaDocNo,ContextList);
                       RelaDocName := XT.Node['/form/settype5/'+ColEName+'/'+nodename+'/'].Attributes['relaformname'];
-                      if RelaFile<>'' then //����   20130604�ݨ�(='')�諸(����)
+                      if RelaFile<>'' then //有附   20130604看到(='')改的(未測)
                       begin
-                        ErrStr:=Format(OMRErrInfo[6].Info,[ColCName,RelaDocName]);   //XX���XX����g��,�����XX���
+                        ErrStr:=Format(OMRErrInfo[6].Info,[ColCName,RelaDocName]);   //XX文件XX欄位填寫時,不能附XX文件
                         OMRErr2ini(CaseID,ErrStr,ImageSavePath+CaseID+'\upload\'+OMRFile,SiteRec,'','',Anchor,Anchor1,False,OMRErrInfo[6].Ignore,OMRErrInfo[6].Display);
                         if OMRErrInfo[6].Display then
                           CaseOk := false;
@@ -10727,10 +10843,10 @@
                 end;
               Until not XT.SubNodes['/form/settype5/'].Next ;
             end;
-              //*******���Ȥ������*******
+              //*******有值互斥文件*******
 
-              //*******���ȼg�Ƶ�*******
-            if ModeNeedCheck(OMRErrInfo[8].Mode,FMode) then //�O�_�n�ˮ�
+              //*******有值寫備註*******
+            if ModeNeedCheck(OMRErrInfo[8].Mode,FMode) then //是否要檢核
             begin
               if XT.SubNodes['/form/settype6/'].First then
               Repeat
@@ -10741,16 +10857,16 @@
                 Site := XT.Node['/form/settype6/'+ColEName+'/'].Attributes['colxy'];
                 Pixel := XT.Node['/form/settype6/'+ColEName+'/'].Attributes['pixel'];
 
-                if SiteRec= '' then   //�O����m
+                if SiteRec= '' then   //記錄位置
                   SiteRec := Site
                 else
                   SiteRec := SiteRec+'@'+Site;
                 if GetSiteOMR(ImageSavePath+CaseID+'\upload\'+OMRFile,Site,Bt) > (Pixel + SafePixel) then
                 begin
-                  ////����g////
+                  ////有填寫////
                   if not FileExists(ImageSavePath+CaseID+'ScanMemo.dat') then
                   begin
-                    ErrStr:=Format(OMRErrInfo[8].Info,[ColCName]);   //XX���XX����g��,�ݼg�Ƶ�
+                    ErrStr:=Format(OMRErrInfo[8].Info,[ColCName]);   //XX文件XX欄位填寫時,需寫備註
                     OMRErr2ini(CaseID,ErrStr,ImageSavePath+CaseID+'\upload\'+OMRFile,SiteRec,'','',Anchor,Anchor1,False,OMRErrInfo[8].Ignore,OMRErrInfo[8].Display);
                     if OMRErrInfo[8].Display then
                       CaseOk := false;
@@ -10758,13 +10874,13 @@
                 end;
               Until not XT.SubNodes['/form/settype6/'].Next ;
             end;
-              //*******���ȼg�Ƶ�*******
+              //*******有值寫備註*******
 
-              //*******OMR�a��********
+              //*******OMR帶值********
               if XT.SubNodes['/form/settype7/'].First then
               Repeat
                 ColEName := XT.SubNodes['/form/settype7/'].NodeName;
-                ValueXT['/content/'+ColEName+'/@savevalue'] := '';  //�����w�]�ť�
+                ValueXT['/content/'+ColEName+'/@savevalue'] := '';  //先給預設空白
                 if XT.SubNodes['/form/settype7/'+ColEName+'/'].First then
                 Repeat
                   nodename := XT.SubNodes['/form/settype7/'+ColEName+'/'].NodeName;
@@ -10774,17 +10890,17 @@
                     Site := XT.Node['/form/settype7/'+ColEName+'/'+nodename+'/'].Attributes['colxy'];
                     OMRValue := XT.Node['/form/settype7/'+ColEName+'/'+nodename+'/'].Attributes['getvalue'];
 
-                    //����Nok
+                    //有填就ok
                     if GetSiteOMR(ImageSavePath+CaseID+'\upload\'+OMRFile,Site,Bt) > (Pixel + SafePixel)  then
                     begin
-                      ValueXT['/content/'+ColEName+'/@savevalue'] := OMRValue;  //����N�����]�w����
+                      ValueXT['/content/'+ColEName+'/@savevalue'] := OMRValue;  //有填就換成設定的值
                       Break;
                     end;
                   end;
                 Until not XT.SubNodes['/form/settype7/'+ColEName+'/'].Next;
               Until not XT.SubNodes['/form/settype7/'].Next ;
 
-              //*******OMR�a��********
+              //*******OMR帶值********
             //end;
           Finally
           if (OMRValue <> '') then
@@ -10801,7 +10917,7 @@
   Result := CaseOk;
 end;
 
-Procedure TCB_IMGPSScanX.OMRErr2ini(CaseID,Reason,FileName,Site,RelaFileName,RelaSite,Anchor,Anchor1:String;Del,Ingnore,Display:Boolean); //OMR�ˮ֥��Ѽg�Jini
+Procedure TCB_IMGPSScanX.OMRErr2ini(CaseID,Reason,FileName,Site,RelaFileName,RelaSite,Anchor,Anchor1:String;Del,Ingnore,Display:Boolean); //OMR檢核失敗寫入ini
 var
   ini : Tinifile;
   Errcount : Integer;
@@ -10811,7 +10927,7 @@
   begin
     ini := Tinifile.Create(ImageSavePath + CaseID+'\upload\Checkerr.ini');
     try
-      Errcount := ini.ReadInteger('OMRCount','Count',0);  //�z�LErrcount�ӹ���
+      Errcount := ini.ReadInteger('OMRCount','Count',0);  //透過Errcount來對應
       inc(ErrCount);
       ini.WriteString(inttostr(ErrCount),'Reason',Reason);
       ini.WriteBool(inttostr(ErrCount),'Ingnore',Ingnore);
@@ -10841,7 +10957,7 @@
   end;
 end;
 
-Procedure TCB_IMGPSScanX.OMRErrini2List(CaseID:String;ErrlistForm:TErrlistForm); //OMR�ˮ֥��ѱqini�g�JListView
+Procedure TCB_IMGPSScanX.OMRErrini2List(CaseID:String;ErrlistForm:TErrlistForm); //OMR檢核失敗從ini寫入ListView
 var
   ini : Tinifile;
   Errcount : Integer;
@@ -10854,7 +10970,7 @@
 
     for i := 1 to ErrCount do
     begin
-      Del := ini.ReadBool(inttostr(i),'Del',False); //�O�_�Q�����F
+      Del := ini.ReadBool(inttostr(i),'Del',False); //是否被移除了
       if Not Del then
       begin
         With ErrlistForm.ErrListLV.Items.Add do
@@ -10871,32 +10987,32 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.DownLanguage:Boolean;  //�U���h��y����
+Function TCB_IMGPSScanX.DownLanguage:Boolean;  //下載多國語言檔
 begin
   Result := True;     // http://192.168.0.101:8080/fbnp/servlet/CWC01?act=getservertime
   //dnFile(HTTPSClient,FUrl+'Language.Lng','','',LngPath+'Language.Lng',FReWrite.Text,Memo1,False,DownImgStatus)
   If not dnFile_Get(HTTPSClient,FUrl+'Language.Lng','','',LngPath+'Language.Lng',FReWrite,Memo1,False,'') Then
   begin
-    HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+    HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
     Result := False;
     Exit;
   end;
   IF memo1.Lines.Strings[0] = '1' Then
   begin
-    HttpErrStr := _Msg('���~��]:')+memo1.Lines.Strings[1];
+    HttpErrStr := _Msg('錯誤原因:')+memo1.Lines.Strings[1];
     Result := False;
     Exit;
   end
   Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
   begin
-    HttpErrStr := _Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J');
+    HttpErrStr := _Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入');
     Result := False;
     Exit;
   end;
   
 end;
 
-procedure TCB_IMGPSScanX.view_image_FormCode(Path,FormCode:String;stpage,stview:integer); //��FormCode�ӧ�v��
+procedure TCB_IMGPSScanX.view_image_FormCode(Path,FormCode:String;stpage,stview:integer); //用FormCode來找影像
 var i,p:integer;
     ISB : TImageScrollBox;
     lb : TLabel;
@@ -10905,10 +11021,10 @@
     List_FormCode,Err_FormCode: String;
     iFormID : String;
 begin
-   ShowText := '�v����ܤ�,�еy��';
+   ShowText := '影像顯示中,請稍候';
    DataLoading(True,True);
 
-   IF FormCode = 'ShowAll' then  //��ܩҦ����v�� (�]������|�ǪŦr��,�ҥH��ShowAll)
+   IF FormCode = 'ShowAll' then  //顯示所有的影像 (因為附件會傳空字串,所以用ShowAll)
    begin
      ClearView(1);
      CreatePreViewISB(ContextList.Count);
@@ -10930,7 +11046,7 @@
 
        List_FormCode := FileName2FormCode(ContextList.Strings[i]);
        lb := TLabel(FindComponent('lb'+intToStr(stview)));
-       lb.Caption := Format(_Msg('��%s��'),[Add_Zoo(i+1,3)]);
+       lb.Caption := Format(_Msg('第%s頁'),[Add_Zoo(i+1,3)]);
        If List_FormCode = '' Then
          lb.Caption := lb.Caption+'('+FormCode2FormName(List_FormCode)+')'
        Else
@@ -10946,7 +11062,7 @@
      end;
      FitPreViewISB;
    end
-   Else  //��ܫ��wFormCode���v��
+   Else  //顯示指定FormCode的影像
    begin
      If (TreeView1.Selected <> nil) Then
      begin
@@ -10990,7 +11106,7 @@
            //MPSViewX.ImageZoomMode := zmFullpage;
            //MPSViewX.AntiAliased := True;
            lb := TLabel(FindComponent('lb'+intToStr(stview)));
-           lb.Caption := Format(_Msg('��%s��'),[Add_Zoo(i+1,3)]);
+           lb.Caption := Format(_Msg('第%s頁'),[Add_Zoo(i+1,3)]);
            If List_FormCode = '' Then
              lb.Caption := lb.Caption+'('+FormCode2FormName(NowCaseno,List_FormCode)+')'
            Else
@@ -11012,7 +11128,7 @@
    DataLoading(False,False);
 end;
 
-procedure TCB_IMGPSScanX.view_image_DocNo(Path,DocNo,FormID:String;Pages:integer); //��DocNo�ӧ�v��
+procedure TCB_IMGPSScanX.view_image_DocNo(Path,DocNo,FormID:String;Pages:integer); //用DocNo來找影像
 var i,n,p:integer;
     ISB : TImageScrollBox;
     lb : TLabel;
@@ -11021,9 +11137,9 @@
     iDocNo : String;
     iGroupNo,page,Ct : Integer;
 begin
-   ShowText := '�v����ܤ�,�еy��';
+   ShowText := '影像顯示中,請稍候';
    DataLoading(True,True);
-   IF DocNo = 'ShowAll' then  //��ܩҦ����v�� (�]������|�ǪŦr��,�ҥH��ShowAll)
+   IF DocNo = 'ShowAll' then  //顯示所有的影像 (因為附件會傳空字串,所以用ShowAll)
    begin
      ClearView(1);
      if GetCasePage(ImageSavePath,NowCaseno) > 30 then
@@ -11037,9 +11153,9 @@
      For i := 0 to CaseDocNoList.Count-1 do
      begin
        {iDocno := DocNoDir2DocNo(CaseDocNoList.Strings[i]);
-       if (((FIs_In_Wh  = 'Y') and (not DocNoIs_In_WH(iDocNo))) or   //�J�w���y���ݫD�J�w���
+       if (((FIs_In_Wh  = 'Y') and (not DocNoIs_In_WH(iDocNo))) or   //入庫掃描不看非入庫文件
           ((FIs_In_Wh  = 'N') and (DocNoIs_In_WH(iDocNo)))) and
-          ((iDocNo <> 'Attach') and (Copy(iDocNo,1,5)<>'ZZZZZ')) then     //�D�J�w���y���ݤJ�w���
+          ((iDocNo <> 'Attach') and (Copy(iDocNo,1,5)<>'ZZZZZ')) then     //非入庫掃描不看入庫文件
        begin
          Continue;
        end; }
@@ -11084,7 +11200,7 @@
      end;
      FitPreViewISB;
    end
-   Else if (DocNo <> '') and (FormID = '') then  //��ܫ��wDocNo+�էO���v��  ����� Attach
+   Else if (DocNo <> '') and (FormID = '') then  //顯示指定DocNo+組別的影像  附件傳 Attach
    begin
      iDocNo := DocNo;
      ContextList.Clear;
@@ -11103,7 +11219,7 @@
      end;
      FitPreViewISB;
    end
-   Else if (FormID <> '') {and (FormID <> 'Attach')} then  //��ܫ��wFormID���v��
+   Else if (FormID <> '') {and (FormID <> 'Attach')} then  //顯示指定FormID的影像
    begin
      If (TreeView1.Selected <> nil) Then
      begin
@@ -11133,7 +11249,7 @@
        FitPreViewISB;
      end;
    end;
-   {Else if (DocNo = 'Attach') and (FormID = 'Attach') then  //����� Attach
+   {Else if (DocNo = 'Attach') and (FormID = 'Attach') then  //附件傳 Attach
    begin
      If (TreeView1.Selected <> nil) Then
      begin
@@ -11173,7 +11289,7 @@
    DataLoading(False,False);
 end;
 
-Function TCB_IMGPSScanX.ShapeName2PreViewISBName(SP:TShape):String; //��X���wPreViewISBName
+Function TCB_IMGPSScanX.ShapeName2PreViewISBName(SP:TShape):String; //轉出指定PreViewISBName
 begin
   Result := ISBName+Copy(SP.Name,3,length(SP.Name)-2);
 end;
@@ -11385,7 +11501,7 @@
 
 end;
 
-Procedure TCB_IMGPSScanX.PaintShape(FromImg,ToImg:TImageScrollBox); //�e���Q������v��
+Procedure TCB_IMGPSScanX.PaintShape(FromImg,ToImg:TImageScrollBox); //畫有被選取的影像
 var
   i,F_No,T_No : Integer;
   SP : TShape;
@@ -11395,7 +11511,7 @@
     Result := strtoint(Copy(iISB.Name,length(ISBName)+1,length(iISB.Name)-length(ISBName))); //'PreViewISB'
   end;
 begin
-  IF ToImg = nil Then   //�u�e��@��
+  IF ToImg = nil Then   //只畫單一個
   begin
     ISB := TImageScrollBox(FindComponent(ISBName+inttostr(GetImgNo(FromImg))));
     if TShape(FindComponent('SP'+inttostr(GetImgNo(FromImg)))) = nil then
@@ -11445,7 +11561,7 @@
 var
   i : Integer;
 begin
-  IF SelectISB = nil then //��Free;
+  IF SelectISB = nil then //全Free;
   begin
     For i:= ComponentCount -1 downto 0 do
     begin
@@ -11456,7 +11572,7 @@
       end;
     end;
   end
-  Else  //�uFree���w��
+  Else  //只Free指定的
   begin
     TShape(FindComponent('SP'+Copy(SelectISB.Name,length(ISBName)+1,length(SelectISB.Name)-length(ISBName)))).Free;
   end;
@@ -11654,7 +11770,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.GetCaseFormID(Path:String):String;  //���ץ󪺥DFormID
+Function TCB_IMGPSScanX.GetCaseFormID(Path:String):String;  //取案件的主FormID
 var i,n : Integer;
     FileFormID : String;
 begin
@@ -11671,7 +11787,7 @@
   end;
 end;
 
-Procedure TCB_IMGPSScanX.CreateFormID_FormName(Path,CaseID:String);  //����FormID_FormName.dat
+Procedure TCB_IMGPSScanX.CreateFormID_FormName(Path,CaseID:String);  //產生FormID_FormName.dat
 var i : Integer;
     S : TStringlist;
     FormID : String;
@@ -11691,7 +11807,7 @@
   end;
 end;
 
-Procedure TCB_IMGPSScanX.CreateDocNo_DocName(Path,CaseID:String);  //����DocNo_DocName.dat
+Procedure TCB_IMGPSScanX.CreateDocNo_DocName(Path,CaseID:String);  //產生DocNo_DocName.dat
 var
   i : Integer;
   S : TStringlist;
@@ -11703,7 +11819,7 @@
     for i := 0 to CaseDocNoList.Count - 1 do
     begin
       Doc_Name := CaseDocNoList.Strings[i]+'_'+DocNo2DocName(CaseID,CaseDocNoList.Strings[i]);
-      if not DocnoNeedGroup(CaseDocNoList.Strings[i]) Then  //���Τ��ժ��[*��������
+      if not DocnoNeedGroup(CaseDocNoList.Strings[i]) Then  //不用分組的加*號給智豪
         Doc_Name := '*'+Doc_Name;
       S.Add(Doc_Name);
     end;
@@ -11713,7 +11829,7 @@
   end;
 end;
 
-Procedure TCB_IMGPSScanX.CreateIn_WH(CaseID:String);  //����In_WH.dat
+Procedure TCB_IMGPSScanX.CreateIn_WH(CaseID:String);  //產生In_WH.dat
 var
   i,n : Integer;
   DocDirList,In_WH_List : TStringlist;
@@ -11744,7 +11860,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.CreateDocNo_Info(CaseID:String):String; //���� DocNo[tab]����[tab]�`����[tab]�O�_����[����]DocNo[tab]����[tab]�`����[tab]�O�_����
+Function TCB_IMGPSScanX.CreateDocNo_Info(CaseID:String):String; //產生 DocNo[tab]份數[tab]總頁數[tab]是否異動[換行]DocNo[tab]份數[tab]總頁數[tab]是否異動
 var
   i,n : Integer;
   DocDirList,DocDir_CopiesList,FileList,C_DocNoList : TStringlist;
@@ -11760,13 +11876,18 @@
   try
     Str := '';
     if Not FileExists(ImageSavePath+CaseID+'\CaseDocNo.dat') then Exit;
+
     DocDirList.LoadFromFile(ImageSavePath+CaseID+'\CaseDocNo.dat');
+
+    if DocDirList.Count =0 then exit;//20170222 新加
+
+
     DocDir_CopiesList.LoadFromFile(ImageSavePath+CaseID+'\CaseDocNo_Copies.dat');
     while DocDirList.Count > 0 do
     begin
       iDocDir := DocDirList.Strings[0];
       DocNo := DocNoDir2DocNo(iDocDir);
-      if Copy(iDocDir,1,5) <> 'ZZZZZ' then   //�����۩w���
+      if Copy(iDocDir,1,5) <> 'ZZZZZ' then   //不為自定文件
       begin
         //icopys := 1;
         icopys := GetDocNoCount(CaseID,DocNo);
@@ -11823,7 +11944,7 @@
   end; }
 end;
 
-Function TCB_IMGPSScanX.CreateCustDocNo_Info(CaseID:String):String; //���ۭͦq��� DocName[tab]����[tab]�`����[tab]�O�_����[#13#10]DocName[tab]����[tab]�`����[tab]�O�_����
+Function TCB_IMGPSScanX.CreateCustDocNo_Info(CaseID:String):String; //產生自訂文件 DocName[tab]份數[tab]總頁數[tab]是否異動[#13#10]DocName[tab]份數[tab]總頁數[tab]是否異動
 var
   i,n : Integer;
   DocDirList,FileList : TStringlist;
@@ -11842,7 +11963,7 @@
     begin
       iDocDir := DocDirList.Strings[0];
       DocNo := DocNoDir2DocNo(iDocDir);
-      if Copy(iDocDir,1,5) = 'ZZZZZ' then   //�O�۩w���
+      if Copy(iDocDir,1,5) = 'ZZZZZ' then   //是自定文件
       begin
         //icopys := 1;
         DocName := GetCustomDocName(ImageSavePath+CaseID+'\',DocNo);
@@ -11875,7 +11996,7 @@
   Result := Str;
 end;
 
-Function TCB_IMGPSScanX.CreateDocnoFrom_Info(CaseID:String):String; //���ͳQ�޶i���O�޳U����T  Docno[tab]����[tab]�ץ�s��#13#10Docno[tab]����[tab]�ץ�s��
+Function TCB_IMGPSScanX.CreateDocnoFrom_Info(CaseID:String):String; //產生被引進的保管袋文件資訊  Docno[tab]份數[tab]案件編號#13#10Docno[tab]份數[tab]案件編號
 var
   i,n : Integer;
   DocDirList,DocDir_CopiesList,FileList : TStringlist;
@@ -11892,12 +12013,16 @@
     Str := '';
     if Not FileExists(ImageSavePath+CaseID+'\CaseDocNo.dat') then Exit;
     DocDirList.LoadFromFile(ImageSavePath+CaseID+'\CaseDocNo.dat');
+
+    if DocDirList.Count=0 then exit;//20170222 新加
+
+
     DocDir_CopiesList.LoadFromFile(ImageSavePath+CaseID+'\CaseDocNo_Copies.dat');
     while DocDirList.Count > 0 do
     begin
       iDocDir := DocDirList.Strings[0];
       DocNo := DocNoDir2DocNo(iDocDir);
-      if (Copy(iDocDir,1,5) <> 'ZZZZZ') then   //�����۩w���
+      if (Copy(iDocDir,1,5) <> 'ZZZZZ') then   //不為自定文件
       begin
         //icopys := 1;
         //icopys := GetDocNoCount(CaseID,DocNo);
@@ -11936,7 +12061,7 @@
   Result := Str;
 end;
 
-Function TCB_IMGPSScanX.CreateCustDocNoFrom_Info(CaseID:String):String; //���ͳQ�޶i���۩w����T  Docno[tab]����[tab]�ץ�s��#13#10Docno[tab]����[tab]�ץ�s��
+Function TCB_IMGPSScanX.CreateCustDocNoFrom_Info(CaseID:String):String; //產生被引進的自定文件資訊  Docno[tab]份數[tab]案件編號#13#10Docno[tab]份數[tab]案件編號
 var
   i,n : Integer;
   DocDirList,FileList : TStringlist;
@@ -11956,7 +12081,7 @@
     begin
       iDocDir := DocDirList.Strings[0];
       DocNo := DocNoDir2DocNo(iDocDir);
-      if Copy(iDocDir,1,5) = 'ZZZZZ' then   //�O�۩w���
+      if Copy(iDocDir,1,5) = 'ZZZZZ' then   //是自定文件
       begin
         //icopys := 1;
         //icopys := GetDocNoCount(CaseID,DocNo);
@@ -11994,14 +12119,14 @@
   Result := Str;
 end;
 
-Function TCB_IMGPSScanX.CreateAttach_Info(CaseID:String):String; //���ͬO�_��Attach Y:�� N:�S��
+Function TCB_IMGPSScanX.CreateAttach_Info(CaseID:String):String; //產生是否有Attach Y:有 N:沒有
 begin
   Result := 'N';
   if GetDocDir_Page(CaseID,AttName) > 0 Then
     Result := 'Y';
 end;
 
-Function TCB_IMGPSScanX.GetDocNoEdit(CaseID,DocNo,DocName:String):String; //���XDocNo�O�_�Q���� (Y/N)
+Function TCB_IMGPSScanX.GetDocNoEdit(CaseID,DocNo,DocName:String):String; //取出DocNo是否被異動 (Y/N)
 var
   i : Integer;
   EditedDocDirList : TStringlist;
@@ -12041,7 +12166,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.GetDocNo_Count(Path,DocNo:String):Integer;  //���X������
+Function TCB_IMGPSScanX.GetDocNo_Count(Path,DocNo:String):Integer;  //取出文件份數
 var
   i : Integer;
   iCopys : integer;
@@ -12081,7 +12206,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.GetDocNo_Page(Path,DocNo:String):Integer;  //���X����`����
+Function TCB_IMGPSScanX.GetDocNo_Page(Path,DocNo:String):Integer;  //取出文件總頁數
 var
   i : Integer;
   ipages : integer;
@@ -12108,21 +12233,21 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.FormIDExists(FormCode:String;CheckDate:Boolean;index:Integer):Boolean;  //�ˬdFormID�O�_�s�b
+Function TCB_IMGPSScanX.FormIDExists(FormCode:String;CheckDate:Boolean;index:Integer):Boolean;  //檢查FormID是否存在
 var
   STDate,SPDate : String;
   Docno,Version : String;
 begin
   Result := False;
-  If FormCode = '' then  //�����ˬd
+  If FormCode = '' then  //附件不檢查
   begin
     Result := True;
     Exit;
   end;
-  if CheckDate then  //�n�ˬd���
+  if CheckDate then  //要檢查日期
   begin
-    STDate := '00000000'; //�S�]�w
-    SPDate := '99999999'; //�S�]�w
+    STDate := '00000000'; //沒設定
+    SPDate := '99999999'; //沒設定
 
     IF FindSQLData(FORM_INF_List,'T1.FORM_ID,T1.DOC_NO','T1.FORM_ID',FormCode,index,FindResult) then
     begin
@@ -12133,8 +12258,8 @@
         Result := True;
         STDate := GetFindResult('START_DATE');
         SPDate := GetFindResult('STOP_DATE');
-        if STDate = '' then STDate := '00000000'; //�S�]�w
-        if SPDate = '' then SPDate := '99999999'; //�S�]�w
+        if STDate = '' then STDate := '00000000'; //沒設定
+        if SPDate = '' then SPDate := '99999999'; //沒設定
         if (ServerDate < STDate) or (ServerDate > SPDate) then
           Result := False;
       end;
@@ -12146,7 +12271,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.Case_DocNoExists(CaseID,Docno:String):Boolean; //Docno�O�_�s�b�ץ��
+Function TCB_IMGPSScanX.Case_DocNoExists(CaseID,Docno:String):Boolean; //Docno是否存在案件裡
 var
   i : Integer;
   S : TStringlist;
@@ -12176,7 +12301,7 @@
   TwainShowUI := CB1.Checked;
 end;
 
-Procedure TCB_IMGPSScanX.ReSortFileName(Path:String); //�ɦW���s�Ƨ�
+Procedure TCB_IMGPSScanX.ReSortFileName(Path:String); //檔名重新排序
 var
   i : Integer;
   OldName,NewName : String;
@@ -12203,7 +12328,7 @@
   end;
 end;
 
-Procedure TCB_IMGPSScanX.ReSortFileName_New(Path:String); //�ɦW���s�Ƨ�
+Procedure TCB_IMGPSScanX.ReSortFileName_New(Path:String); //檔名重新排序
 var
   i : Integer;
   OldName,NewName : String;
@@ -12230,7 +12355,7 @@
   end;
 end;
 
-Procedure TCB_IMGPSScanX.ReSortFileName2Scanlist(Path:String); //�ɦW���s�Ƨǵ�Scanlist.dat
+Procedure TCB_IMGPSScanX.ReSortFileName2Scanlist(Path:String); //檔名重新排序給Scanlist.dat
 var
   i : Integer;
   OldName,NewName : String;
@@ -12255,7 +12380,7 @@
 end;
 
 
-Function TCB_IMGPSScanX.GetOMRCheckSet : Boolean; //�U��OMR�ˮ�XML��
+Function TCB_IMGPSScanX.GetOMRCheckSet : Boolean; //下載OMR檢核XML檔
 var
   SendData : String;
   LastDateTime : String;
@@ -12277,11 +12402,11 @@
     SendData := 'settype=3&lastupdate='+LastDateTime;
     if not dnFile_Get(HTTPSClient,Furl,'service/imgpsc/IMGPSC01/settings',SendData,CheckXmlPath+'OMRSet.zip',FReWrite,Memo1,False,DownImgStatus) then
     begin
-      HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+      HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
       Result := False;
       Exit;
     end;
-    if FileExists(CheckXmlPath+'OMRSet.zip') then   //����s
+    if FileExists(CheckXmlPath+'OMRSet.zip') then   //有更新
     begin
       ExecuteUnZip(CheckXmlPath+'OMRSet.zip',CheckXmlPath,False);
       S.Clear;
@@ -12290,19 +12415,19 @@
     end
     Else
     begin
-      if (Memo1.Lines.Strings[0] = 'nodata') Then   //�S��s
+      if (Memo1.Lines.Strings[0] = 'nodata') Then   //沒更新
       begin
         Result := True;
       end
       Else if (Memo1.Lines.Strings[0] = '1') Then
       begin
-        HttpErrStr := _Msg('���~��]:')+memo1.Lines.Strings[1];
+        HttpErrStr := _Msg('錯誤原因:')+memo1.Lines.Strings[1];
         Result := False;
         Exit;
       end
       Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
       begin
-        HttpErrStr := _Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J');
+        HttpErrStr := _Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入');
         Result := False;
         Exit;
       end;
@@ -12314,7 +12439,7 @@
 
 end;
 
-Function TCB_IMGPSScanX.GetKeyinSet : Boolean; //���n���]�w
+Function TCB_IMGPSScanX.GetKeyinSet : Boolean; //取登打設定
 var
   SendData : String;
   LastDateTime : String;
@@ -12335,11 +12460,11 @@
     SendData := 'settype=2&lastupdate='+LastDateTime;
     if not dnFile_Get(HTTPSClient,Furl,'service/imgpsc/IMGPSC01/settings',SendData,SitePath+'KeyinSet.zip',FReWrite,Memo1,False,DownImgStatus) then
     begin
-      HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+      HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
       Result := False;
       Exit;
     end;
-    if FileExists(SitePath+'KeyinSet.zip') then  //����s
+    if FileExists(SitePath+'KeyinSet.zip') then  //有更新
     begin
       ExecuteUnZip(SitePath+'KeyinSet.zip',SitePath,False);
       S.Clear;
@@ -12348,19 +12473,19 @@
     end
     Else
     begin
-      if (Memo1.Lines.Strings[0] = 'nodata') Then   //�S��s
+      if (Memo1.Lines.Strings[0] = 'nodata') Then   //沒更新
       begin
         Result := True;
       end
       Else if (Memo1.Lines.Strings[0] = '1') Then
       begin
-        HttpErrStr := _Msg('���~��]:')+memo1.Lines.Strings[1];
+        HttpErrStr := _Msg('錯誤原因:')+memo1.Lines.Strings[1];
         Result := False;
         Exit;
       end
       Else if Pos('<script type="text/javascript" src="scripts/CW00/login.js"></script>',Memo1.Lines.Text) > 0 then
       begin
-        HttpErrStr := _Msg('���~��]:')+_Msg('���m�L�[�γQ�n�X,�Э��s�n�J');
+        HttpErrStr := _Msg('錯誤原因:')+_Msg('閒置過久或被登出,請重新登入');
         Result := False;
         Exit;
       end;
@@ -12382,7 +12507,7 @@
   begin
     If not ProcessServlet_Get(HTTPSClient,FURL+'service/imgpsc/IMGPSC05/isnew',SendData,FReWrite,Memo1,False) Then
     begin
-      HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+      HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
       Result := -1;
       Exit;
     end;
@@ -12390,7 +12515,7 @@
 
   IF memo1.Lines.Strings[0] <> '0' Then
   begin
-    HttpErrStr := _Msg('���~��]:')+memo1.Lines.Strings[1];
+    HttpErrStr := _Msg('錯誤原因:')+memo1.Lines.Strings[1];
     Result := -1;
     Exit;
   end
@@ -12398,7 +12523,7 @@
   begin
     if (memo1.Lines.Count < 2) then
     begin
-      HttpErrStr := _Msg('���~��]:')+'OCX:Index Count error';
+      HttpErrStr := _Msg('錯誤原因:')+'OCX:Index Count error';
       Result := -1;
       Exit;
     end
@@ -12412,7 +12537,7 @@
         Result := 1
       Else
       begin
-        HttpErrStr := _Msg('���~��]:')+'OCX:Value error';
+        HttpErrStr := _Msg('錯誤原因:')+'OCX:Value error';
         Result := -1;
         Exit;
       end;
@@ -12420,7 +12545,7 @@
   end;
 end;
 
-Function TCB_IMGPSScanX.CaseComplete(Path,CaseID:String;MainCase:Boolean):Boolean;  //�q���ǰe����
+Function TCB_IMGPSScanX.CaseComplete(Path,CaseID:String;MainCase:Boolean):Boolean;  //通知傳送完成
 var
   OMRValue,Batchnum,Usermemo,Checkmemo,UpformID,ReMoveMemo: String;
   Case_type,Handle_no,Format_id,Cen_Uid,Cen_Cliname,Cen_Platno,Cen_Apolyno,Case_priority : String;
@@ -12440,12 +12565,12 @@
 
 
     Case_type := '0';
-    if FileExists(Path+'Context.dat') then    //���y����
+    if FileExists(Path+'Context.dat') then    //掃描頁數
     begin
       S.LoadFromFile(Path+'Context.dat');
       Pages := S.Count;
     end;
-    if not FileExists(ImageSavePath+CaseID+'\CaseIndex.dat') then //�p�G�S�o���ɴN�����͹w�]��
+    if not FileExists(ImageSavePath+CaseID+'\CaseIndex.dat') then //如果沒這個檔就重產生預設值
     begin
       ClearCaseIndex;
       WriteCaseIndex(ImageSavePath+CaseID+'\');
@@ -12454,34 +12579,34 @@
     begin
       S.LoadFromFile(ImageSavePath+CaseID+'\CaseIndex.dat');
 
-      Handle_No := S.Strings[0];    //�g��N��
-      Cen_Uid := S.Strings[1];      //�Q�O�HID
-      Cen_Cliname := S.Strings[2];  //�Q�O�H�m�W
-      Cen_Platno := S.Strings[3];   //����
-      Case_Priority := S.Strings[4];//�ץ󵥯�
-      if FMode = 'SSCAN' then  //ñ�p���󪺮ɭԤ@�߶�Format_ID
+      Handle_No := S.Strings[0];    //經辦代號
+      Cen_Uid := S.Strings[1];      //被保人ID
+      Cen_Cliname := S.Strings[2];  //被保人姓名
+      Cen_Platno := S.Strings[3];   //車號
+      Case_Priority := S.Strings[4];//案件等級
+      if FMode = 'SSCAN' then  //簽署章件的時候一律傳Format_ID
       begin
-        Format_ID := S.Strings[5];    //�D��� (�����渹or��O�渹or�O�渹�Xor�O�I�Ҹ�)
+        Format_ID := S.Strings[5];    //主鍵值 (報價單號or續保單號or保單號碼or保險證號)
       end
       Else
       begin
         if (Length(UpformID) = 12) and (UpformID[2] = '-') then
-          Format_ID := S.Strings[5]    //�D��� (�����渹or��O�渹or�O�渹�Xor�O�I�Ҹ�)
+          Format_ID := S.Strings[5]    //主鍵值 (報價單號or續保單號or保單號碼or保險證號)
         else
-          Cen_Apolyno := S.Strings[5]; //�j���Ҹ�
+          Cen_Apolyno := S.Strings[5]; //強制證號
       end;
       if (FMode = 'MSCAN') and (length(Format_ID) = 16) and (Copy(Format_ID,1,2) = '05') then
       begin
-        Format_ID := Copy(Format_ID,3,14);   //20130606 yuu���ʲz���󪺥D��Ȭ�16�X�B�}�}��05���n�h��
+        Format_ID := Copy(Format_ID,3,14);   //20130606 yuu說監理站件的主鍵值為16碼且開開為05的要去掉
       end;
 
     end; }
-    if FileExists(ImageSavePath+CaseID+'\GetValue.xml') then    //���y�a��
+    if FileExists(ImageSavePath+CaseID+'\GetValue.xml') then    //掃描帶值
     begin
       S.LoadFromFile(ImageSavePath+CaseID+'\GetValue.xml');
       OMRValue := Trim(S.Text);
     end;
-    if MainCase then    //���D�����D�n�ץ�
+    if MainCase then    //雙主約的主要案件
     begin
       if FileExists(ImageSavePath+CaseID+'\Batchnum.dat') then
       begin
@@ -12489,7 +12614,7 @@
         Batchnum := Trim(S.Text);
       end;
     end
-    Else    //���D�����ĤG�ץ�
+    Else    //雙主約的第二案件
     begin
       if FileExists(ImageSavePath+CaseID+'\SecBatchnum.dat') then
       begin
@@ -12522,30 +12647,30 @@
   if (FMode = 'NSCAN') or (FMode = 'ASCAN') or (FMode = 'DSCAN') or (FMode = 'SSCAN') or (FMode = 'MSCAN') or (FMode = 'RI_SCAN') then
   begin
     SendData := 'checktime='+EnCodeDateTime
-                +'&work_no='+FWork_No                                  //�@�~�O
-                +'&case_id='+CaseID                                    //���z�s��
-                +'&form_id='+UpformID                                  //���N��
-                +'&scan_page='+inttostr(pages)                         //���y����
-                +'&scan_get_value='+HTTPEncode(UTF8Encode(OMRValue))   //���y�a��
-                +'&case_priority='+case_priority                       //�ץ󵥯�
-                +'&batch_no='+batchnum                                 //�����帹
-                +'&user_memo='+HTTPEncode(UTF8Encode(usermemo))        //�ϥΪ̵��O
-                +'&check_memo='+HTTPEncode(UTF8Encode(checkmemo))      //�ˮֵ��O
-                +'&remove_memo='+HTTPEncode(UTF8Encode(ReMoveMemo))    //�ˮֲ������O
-                +'&case_type='+Case_type                               //�i�����    �i��0 �k��1
-                +'&handle_no='+Handle_no                               //�g��N��
-                +'&format_id='+Format_id                               //�ץ�D���
-                +'&cen_uid='+Cen_Uid                                   //�Q�O�HID
-                +'&cen_cliname='+HTTPEncode(UTF8Encode(Cen_Cliname))   //�Q�O�H�m�W
-                +'&cen_platno='+Cen_Platno                             //���P
-                +'&cen_apolyno='+Cen_Apolyno                           //�j���Ҹ�
-                +'&has_authorize='+Has_Authorize;                      //�O�_�����v�Ѽv��
+                +'&work_no='+FWork_No                                  //作業別
+                +'&case_id='+CaseID                                    //受理編號
+                +'&form_id='+UpformID                                  //表單代號
+                +'&scan_page='+inttostr(pages)                         //掃描頁數
+                +'&scan_get_value='+HTTPEncode(UTF8Encode(OMRValue))   //掃描帶值
+                +'&case_priority='+case_priority                       //案件等級
+                +'&batch_no='+batchnum                                 //車隊批號
+                +'&user_memo='+HTTPEncode(UTF8Encode(usermemo))        //使用者註記
+                +'&check_memo='+HTTPEncode(UTF8Encode(checkmemo))      //檢核註記
+                +'&remove_memo='+HTTPEncode(UTF8Encode(ReMoveMemo))    //檢核移除註記
+                +'&case_type='+Case_type                               //進件種類    進件0 歸檔1
+                +'&handle_no='+Handle_no                               //經辦代號
+                +'&format_id='+Format_id                               //案件主鍵值
+                +'&cen_uid='+Cen_Uid                                   //被保人ID
+                +'&cen_cliname='+HTTPEncode(UTF8Encode(Cen_Cliname))   //被保人姓名
+                +'&cen_platno='+Cen_Platno                             //車牌
+                +'&cen_apolyno='+Cen_Apolyno                           //強制證號
+                +'&has_authorize='+Has_Authorize;                      //是否有授權書影像
                 Showmessage(SendData);
     if not RejectCase then
     begin
       If not ProcessServlet(HTTPSClient,FURL+'servlet/CWC05',SendData,FReWrite,Memo1,False) Then
       begin
-        HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+        HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
         Result := False;
         Exit;
       end;
@@ -12554,7 +12679,7 @@
     begin
       If not ProcessServlet(HTTPSClient,FURL+'servlet/CWC06',SendData,FReWrite,Memo1,False) Then
       begin
-        HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+        HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
         Result := False;
         Exit;
       end;
@@ -12573,11 +12698,11 @@
                 +'&user_memo='+HTTPEncode(UTF8Encode(usermemo))
                 +'&check_memo='+HTTPEncode(UTF8Encode(checkmemo))
                 +'&remove_memo='+HTTPEncode(UTF8Encode(ReMoveMemo))
-                +'&has_authorize='+Has_Authorize;    //�O�_�����v�Ѽv��
+                +'&has_authorize='+Has_Authorize;    //是否有授權書影像
     //Showmessage(SendData);
     If not ProcessServlet(HTTPSClient,FURL+'servlet/CWC08',SendData,FReWrite,Memo1,False) Then
     begin
-      HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+      HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
       Result := False;
       Exit;
     end;
@@ -12591,10 +12716,10 @@
                 +'&user_memo='+HTTPEncode(UTF8Encode(usermemo))
                 +'&check_memo='+HTTPEncode(UTF8Encode(checkmemo))
                 +'&remove_memo='+HTTPEncode(UTF8Encode(ReMoveMemo))
-                +'&has_authorize='+Has_Authorize;     //�O�_�����v�Ѽv��
+                +'&has_authorize='+Has_Authorize;     //是否有授權書影像
     If not ProcessServlet(HTTPSClient,FURL+'servlet/CWC09',SendData,FReWrite,Memo1,False) Then
     begin
-      HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+      HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
       Result := False;
       Exit;
     end;
@@ -12612,10 +12737,10 @@
                 +'&usermemo='+HTTPEncode(UTF8Encode(usermemo))
                 +'&checkmemo='+HTTPEncode(UTF8Encode(checkmemo))
                 +'&removememo='+HTTPEncode(UTF8Encode(ReMoveMemo))
-                +'&has_authorize='+Has_Authorize;        //�O�_�����v�Ѽv��
+                +'&has_authorize='+Has_Authorize;        //是否有授權書影像
     If not ProcessServlet(HTTPSClient,FURL+'servlet/CWC01',SendData,FReWrite,Memo1,False) Then
     begin
-      HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+      HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
       Result := False;
       Exit;
     end;
@@ -12632,10 +12757,10 @@
                     +'&usermemo='+HTTPEncode(UTF8Encode(usermemo))
                     +'&checkmemo='+HTTPEncode(UTF8Encode(checkmemo))
                     +'&removememo='+HTTPEncode(UTF8Encode(ReMoveMemo))
-                    +'&has_authorize='+Has_Authorize;      //�O�_�����v�Ѽv��
+                    +'&has_authorize='+Has_Authorize;      //是否有授權書影像
     If not ProcessServlet(HTTPSClient,FURL+'servlet/CWC01',SendData,FReWrite,Memo1,False) Then
     begin
-      HttpErrStr := _Msg('���~�N�X:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
+      HttpErrStr := _Msg('錯誤代碼:')+inttostr(HttpError.HttpErrorCode)+','+HttpError.HttpReason;
       Result := False;
       Exit;
     end;
@@ -12643,7 +12768,7 @@
 
   if Memo1.Lines.Strings[0] <> '0'then
   begin
-    HttpErrStr := _Msg('���~��]:')+Memo1.Lines.Strings[1];
+    HttpErrStr := _Msg('錯誤原因:')+Memo1.Lines.Strings[1];
     Result := False;
     Exit;
   end;
@@ -12659,11 +12784,13 @@
   //self.FIs_OldCase := 'Y';
   PageLVclear := True;
   InitialOk := False;
+
+  FMode := 'DSCAN' ;
   //FIs_In_Wh := 'Y';
   if FIs_In_Wh = 'Y' then
-    AttName := 'Attach'  //�J�w����
+    AttName := 'Attach'  //入庫附件
   else
-    AttName := 'S_Attach'; //Smartlending ����
+    AttName := 'S_Attach'; //Smartlending 附件
 //ShowMessage('1111111');
   if FMode = 'SAMPLESCAN' then
   begin
@@ -12677,7 +12804,7 @@
     SampleScanBtn.Visible := True;
     Panel1.Visible := True;
     Panel6.Visible := True;
-    ScanDuplexCB.Visible := False; //�������y
+    ScanDuplexCB.Visible := False; //雙面掃描
   end
   Else if (FMode = 'NSCAN') then
   begin
@@ -12686,7 +12813,7 @@
     Panel6.Visible := True;
     Panel21.Visible := True;
     Panel23.Visible := True;
-    ScanDuplexCB.Visible := True; //�������y
+    ScanDuplexCB.Visible := True; //雙面掃描
   end
   Else if FMode = 'FSCAN' then
   begin
@@ -12704,123 +12831,137 @@
   DisplayMode(1,1,1,Panel9);
   Application.ProcessMessages;
   StatusBar1.Panels[0].Text := 'Ver'+GetCurrentVersionNo;
-  StatusBar1.Panels[1].Text := _Msg('�n�J�H��:')+FUserName;
+  StatusBar1.Panels[1].Text := _Msg('登入人員:')+FUserName;
   if FPrintyn = 'Y' then
     PrtLB.Visible := True;
 
+  initParameter;  //20170222 針對新加的parameter 作初始化參數
   InitScrollRec;
   If FUrl = '' then
   begin
-    Showmessage(_Msg('URL���ର�ť�,�Ь��ߵ{���H��'));
+    Showmessage(_Msg('URL不能為空白,請洽詢程式人員'));
     Exit;
   end;
   if FUrl[length(FUrl)]<>'/' then
     FUrl := FUrl + '/';
-  //********�M���********
 
-  Doc_Inf_List := TStringList.Create;  //Doc_Inf �M��   Docno + ������key
-  DM_FORM_INF_List := TStringList.Create;  //DM_FORM_INF �M��   Docno + ������key
-  FORM_INF_List := TStringList.Create; //FORM_INF���M��
-  CHECK_RULE_INF_List := TStringList.Create;  //CHECK_RULE_INF  �M��
-  MEMO_INF_List := TStringList.Create;  //MEMO_INF �M��
-  WORK_INF_List := TStringList.Create;  //WORK_INF �M��
-  LASTEST_FORM_INF_List := TStringList.Create;  // LASTEST_FORM_INF �M��
-  FindResult := TStringlist.Create;  //��SQLData�����G
+  if FWork_no='' then
+  begin
+    Showmessage(_Msg('業務別不能為空白,請洽詢程式人員'));
+    Exit;
+  end;
 
-  OMRFileList := TStringList.Create; //�nOMR�ˮ֪����(�u�ˬd�C��Form���Ĥ@��)
-  FormCode_PageSize := TStringList.Create; //��󪺹w�]�j�p  FormCode_Height_Width
-  DocNo_NeedDoc := TStringList.Create; //��Docno�ɭn�̪ۨ����   DocNo_�̤ۨ��_�̤ۨ��
-  DocNo_NoDoc := TStringList.Create; //��Docno�ɤ��������   DocNo_�������_�������
-  DocNo_VerinCase := TStringList.Create; //�ץ�̪�DocNo+�������M��
-  CaseDocNoList := TStringlist.Create;  //�ץ�̪�DocNo�M��
-  CaseDocNo_CopiesList := TStringlist.Create; //�ץ�̪�DocNo���ƲM��
-  CaseList := TStringList.Create;    //�O�����ˮץ󪺶���
-  Context_DocnoList := TStringlist.Create; //�ץ�̪��ɮ�Docno�M��
-  ContextList := TStringlist.Create; //�ץ�̪��ɮײM��
-  NoSaveBarCodeList := TStringlist.Create; //���x�s�����X�M��
-  FormID_List := TStringlist.Create;  //FormID�M��
-  DocNo_List := TStringlist.Create; //DocNo�M��
-  NowShowFileList := TStringlist.Create;  //�ثe��ܪ��v���M��
-  NowSelectFileList := TStringlist.Create; //�ثe�Q�I�諸�v���M��
-  Cust_DocNoList := TStringlist.Create; //�ۦ�w�q�����W��
-  IN_WH_DocNoList := TStringlist.Create; //�J�w�����M��
-  GuideFormIDList := TStringlist.Create; //�n��ɤޭ����M��
-  //********�M���********
+  if CaseIDLength = 0 then
+  begin
+    Showmessage(_Msg('案件編號長度限制不能為空白,請洽詢程式人員'));
+    //Exit;  //測試時不退出
+  end;
 
-  ShowText := _Msg('��Ƹ��J��,�еy��');
+  //********清單區********
+
+  Doc_Inf_List := TStringList.Create;  //Doc_Inf 清單   Docno + 版本為key
+  DM_FORM_INF_List := TStringList.Create;  //DM_FORM_INF 清單   Docno + 版本為key
+  FORM_INF_List := TStringList.Create; //FORM_INF的清單
+  CHECK_RULE_INF_List := TStringList.Create;  //CHECK_RULE_INF  清單
+  MEMO_INF_List := TStringList.Create;  //MEMO_INF 清單
+  WORK_INF_List := TStringList.Create;  //WORK_INF 清單
+  LASTEST_FORM_INF_List := TStringList.Create;  // LASTEST_FORM_INF 清單
+  FindResult := TStringlist.Create;  //找SQLData的結果
+
+  OMRFileList := TStringList.Create; //要OMR檢核的文件(只檢查每種Form的第一頁)
+  FormCode_PageSize := TStringList.Create; //文件的預設大小  FormCode_Height_Width
+  DocNo_NeedDoc := TStringList.Create; //有Docno時要相依的文件   DocNo_相依文件_相依文件
+  DocNo_NoDoc := TStringList.Create; //有Docno時互斥的文件   DocNo_互斥文件_互斥文件
+  DocNo_VerinCase := TStringList.Create; //案件裡的DocNo+版本的清單
+  CaseDocNoList := TStringlist.Create;  //案件裡的DocNo清單
+  CaseDocNo_CopiesList := TStringlist.Create; //案件裡的DocNo份數清單
+  CaseList := TStringList.Create;    //記錄掃瞄案件的順序
+  Context_DocnoList := TStringlist.Create; //案件裡的檔案Docno清單
+  ContextList := TStringlist.Create; //案件裡的檔案清單
+  NoSaveBarCodeList := TStringlist.Create; //不儲存的條碼清單
+  FormID_List := TStringlist.Create;  //FormID清單
+  DocNo_List := TStringlist.Create; //DocNo清單
+  NowShowFileList := TStringlist.Create;  //目前顯示的影像清單
+  NowSelectFileList := TStringlist.Create; //目前被點選的影像清單
+  Cust_DocNoList := TStringlist.Create; //自行定義的文件名稱
+  IN_WH_DocNoList := TStringlist.Create; //入庫的文件清單
+  GuideFormIDList := TStringlist.Create; //要當導引頁表單清單
+  //********清單區********
+
+  ShowText := _Msg('資料載入中,請稍候');
   DataLoading(True,True);
 
   IF not GetServerDate Then
   begin
-    Showmessage(_Msg('���D���ɶ���,�����o�Ϳ��~!!')+HttpErrStr);
+    Showmessage(_Msg('取主機時間時,網路發生錯誤!!')+HttpErrStr);
     DataLoading(False,False);
     Exit;
   end;
 //ShowMessage('GetServerDate  '+ServerDate+' , '+ServerTime);
-  ////�U���t�θ�T////
-  IF not GetSetInf1 Then  //��DOC_INF  ����T
+  ////下載系統資訊////
+  IF not GetSetInf1 Then  //取DOC_INF  文件資訊
   begin
-    Showmessage(_Msg('������T��,�����o�Ϳ��~!!')+HttpErrStr);
+    Showmessage(_Msg('取文件資訊時,網路發生錯誤!!')+HttpErrStr);
     DataLoading(False,False);
     Exit;
   end;
 //ShowMessage('GetSetInf1');
   //showmessage(self.Doc_Inf_List.Text);
-  IF not GetSetInf2 Then  //��DM_FORM_INF     �̤ۨ�����T
+  IF not GetSetInf2 Then  //取DM_FORM_INF     相依互斥資訊
   begin
-    Showmessage(_Msg('���̤ۨ�����T��,�����o�Ϳ��~!!')+HttpErrStr);
+    Showmessage(_Msg('取相依互斥資訊時,網路發生錯誤!!')+HttpErrStr);
     DataLoading(False,False);
     Exit;
   end;
 //ShowMessage('GetSetInf2');
   //Showmessage(self.Doc_Inf_List.Text);
-  IF not GetSetInf3 Then   //��FORM_INF  ����T
+  IF not GetSetInf3 Then   //取FORM_INF  表單資訊
   begin
-    Showmessage(_Msg('������T��,�����o�Ϳ��~!!')+HttpErrStr);
+    Showmessage(_Msg('取表單資訊時,網路發生錯誤!!')+HttpErrStr);
     DataLoading(False,False);
     Exit;
   end;
 //ShowMessage('GetSetInf3');
-  IF not GetSetInf4 Then   //��CHECK_RULE_INF   �ˮֳW�h��T
+  IF not GetSetInf4 Then   //取CHECK_RULE_INF   檢核規則資訊
   begin
-    Showmessage(_Msg('���ˮֳW�h��T��,�����o�Ϳ��~!!')+HttpErrStr);
+    Showmessage(_Msg('取檢核規則資訊時,網路發生錯誤!!')+HttpErrStr);
     DataLoading(False,False);
     Exit;
   end;
   //showmessage(self.CHECK_RULE_INF_List.Text);
 //ShowMessage('GetSetInf4');
-  IF not GetSetInf5 Then   //��MEMO_INF   �`���y��T
+  IF not GetSetInf5 Then   //取MEMO_INF   常用片語資訊
   begin
-    Showmessage(_Msg('���`�Τ��y��T��,�����o�Ϳ��~!!')+HttpErrStr);
+    Showmessage(_Msg('取常用片語資訊時,網路發生錯誤!!')+HttpErrStr);
     DataLoading(False,False);
     Exit;
   end;
 //ShowMessage('GetSetInf5');
   //showmessage(self.MEMO_INF_List.Text);
-  IF not GetSetInf6 Then   //��WORK_INF   �t�ΰѼƸ�T
+  IF not GetSetInf6 Then   //取WORK_INF   系統參數資訊
   begin
-    Showmessage(_Msg('���t�ΰѼƸ�T��,�����o�Ϳ��~!!')+HttpErrStr);
+    Showmessage(_Msg('取系統參數資訊時,網路發生錯誤!!')+HttpErrStr);
     DataLoading(False,False);
     Exit;
   end;
 //ShowMessage('GetSetInf6');
   //showmessage(FORM_INF_List.Text);
-  IF not GetSetInf7 Then   //��LASTES_FORM_INF   �t�ΰѼƸ�T
+  IF not GetSetInf7 Then   //取LASTES_FORM_INF   系統參數資訊
   begin
-    Showmessage(_Msg('���̷s��FORMID�ѼƸ�T��,�����o�Ϳ��~!!')+HttpErrStr);
+    Showmessage(_Msg('取最新版FORMID參數資訊時,網路發生錯誤!!')+HttpErrStr);
     DataLoading(False,False);
     Exit;
   end;
 //ShowMessage('GetSetInf7');
   //Showmessage(LASTEST_FORM_INF_List.Text);
-  SetFormID_DocNo;  //�NFormID��Docno��X��JList��  20130403�W�[
-  SetIn_WH_DocNo; //�N�n�J�w��DocNo��X�ӥt�s�Jlist��
-  GetDefScanIni; //���o���y�w�]�Ȥά����]�w
+  SetFormID_DocNo;  //將FormID及Docno抽出塞入List裡  20130403增加
+  SetIn_WH_DocNo; //將要入庫的DocNo抽出來另存入list裡
+  GetDefScanIni; //取得掃描預設值及相關設定
 
-  ////�U���t�θ�T/////
+  ////下載系統資訊/////
   if ImagePath = '' then
   begin
-    Showmessage(_Msg('�����Ȧs���|���o���ť�'));
+    Showmessage(_Msg('本機暫存路徑不得為空白'));
     DataLoading(False,False);
     Panel1.Enabled := False;
     Panel2.Enabled := False;
@@ -12841,11 +12982,15 @@
   str2dir(SitePath);
   str2dir(ImagePath);
   str2dir(SamplePath);
-  Del_Sub_NothingPath(ImagePath);  //�M���ץ�ؿ��O�Ū�
-  ShowText := _Msg('��Ƹ��J��,�еy��');
+  Del_Sub_NothingPath(ImagePath);  //清掉案件目錄是空的
+
+
+
+
+  ShowText := _Msg('資料載入中,請稍候');
   DataLoading(True,True);
 
-//  if not CheckAvailable Then   //�ˬd���v  20170218 �����ΤF
+//  if not CheckAvailable Then   //檢查授權  20170218 說不用了
 //  begin
 //    DataLoading(False,False);
 //    Panel1.Enabled := False;
@@ -12853,12 +12998,12 @@
 //    Exit;
 //  end;
 
-
+//Button3Click(Self);
 //ShowMessage('CheckAvailable');
-  ShowText := _Msg('��Ƹ��J��,�еy��');
+  ShowText := _Msg('資料載入中,請稍候');
   DataLoading(True,True);
 
-   ////�U���y����/////  20170218 �����եH�K����
+   ////下載語言檔/////  20170218 先拿調以便測試
   If not DownLanguage Then
   begin
     Showmessage('Language File error!!'+HttpErrStr);
@@ -12866,9 +13011,12 @@
     Exit;
   end;
 
-  InitialLanguage(Self);  //���J�h��y��
-  ////�U���y����/////
-  if (FMode = 'RSCAN') or (FMode = 'ESCAN') or (FMode = 'FSCAN') then //������β��ʥ�n�u�౽���w�s������
+  InitialLanguage(Self);  //載入多國語言
+  //FCaseID:='20150302180133';//測試用
+  ////下載語言檔/////
+//ShowMessage('OOOO');
+
+  if (FMode = 'RSCAN')  or (FMode = 'DSCAN') or (FMode = 'ESCAN') or (FMode = 'FSCAN') then //重掃件及異動件要只能掃指定編號的件
   begin
     _Deltree(ImagePath);
     str2dir(ImagePath);
@@ -12877,66 +13025,67 @@
     MkDir(ImageSavePath+FCaseID);
     CreateEmptyCase(ImageSavePath,FCaseID);
     MkDir(ImageSavePath+FCaseID+'\Download');
-    IF (FMode = 'ESCAN') then  //���ʥ���U���v��
+    IF (FMode = 'ESCAN') then  //異動件先下載影像
     begin
-      ShowText := _Msg('�ץ�U����,�еy��');
+      ShowText := _Msg('案件下載中,請稍候');
       DataLoading(True,True);
       If not Down_Img(ImageSavePath+FCaseID+'\Download\',FCaseID) then
       begin
-        Showmessage(FCaseID+_msg('���J���ʼv����,�����o�Ϳ��~')+HttpErrStr);
+        Showmessage(FCaseID+_msg('載入異動影像時,網路發生錯誤')+HttpErrStr);
         DataLoading(False,False);
         Exit;
       end;
 //Showmessage(ImageSavePath+FCaseID+'\Download\'+#10#13+ImageSavePath+FCaseID+'\');
       Download2Case(ImageSavePath+FCaseID+'\Download\',ImageSavePath+FCaseID+'\');
 //Showmessage('aaa');
-      //Download2Case('C:\Users\Hong\Downloads\�S���A��\',ImageSavePath+FCaseID+'\');
+      //Download2Case('C:\Users\Hong\Downloads\沒有括號\',ImageSavePath+FCaseID+'\');
       if (FIs_OldCase = 'Y') then
       begin
         if (FWork_no='HLN') then
-          ErrFormtoCurrentForm(FCaseID,'10000001011112A','11000001011112A');  //��������FormID
-        //if not FileExists(ImageSavePath+FCaseID+'\CaseDocNo_Copies.dat') then   //�o�ӷ|�bDownload2Case�ɤ@�߲��ͩҥH���঳�o�� 20141013
+          ErrFormtoCurrentForm(FCaseID,'10000001011112A','11000001011112A');  //換掉錯的FormID
+        //if not FileExists(ImageSavePath+FCaseID+'\CaseDocNo_Copies.dat') then   //這個會在Download2Case時一律產生所以不能有這行 20141013
         OldCasetoNewCase(FCaseID);
-        //ErrFormtoCurrentForm(FCaseID,'11B00005011312A','11000001011112A');  //��������FormID
+        //ErrFormtoCurrentForm(FCaseID,'11B00005011312A','11000001011112A');  //換掉錯的FormID
         //LoadImgFile;
       end;
-      {if (FIs_OldCase = 'Y') and (FWork_no='HLN') then   //77����
-      begin
-        ErrFormtoCurrentForm(FCaseID,'10000001011112A','11000001011112A');  //��������FormID
-        if not FileExists(ImageSavePath+FCaseID+'\CaseDocNo_Copies.dat') then
-          OldCasetoNewCase(FCaseID);
-        //ErrFormtoCurrentForm(FCaseID,'11B00005011312A','11000001011112A');  //��������FormID
-        //LoadImgFile;
-      end;}
-      Create_Cust_DocDir(FCaseID); //���ͥ~���ǤJ�����
+//      if (FIs_OldCase = 'Y') and (FWork_no='HLN') then   //77版的
+//      begin
+//        ErrFormtoCurrentForm(FCaseID,'10000001011112A','11000001011112A');  //換掉錯的FormID
+//        if not FileExists(ImageSavePath+FCaseID+'\CaseDocNo_Copies.dat') then
+//          OldCasetoNewCase(FCaseID);
+//        //ErrFormtoCurrentForm(FCaseID,'11B00005011312A','11000001011112A');  //換掉錯的FormID
+//        //LoadImgFile;
+//      end;
+      Create_Cust_DocDir(FCaseID); //產生外面傳入的文件
     end;
   end;
-//ShowMessage('GetOMRCheckSet�e');
-  ////�U���ˮ�XML//////
+
+//ShowMessage('GetOMRCheckSet前');
+  ////下載檢核XML//////
   IF not GetOMRCheckSet Then
   begin
-    Showmessage(_Msg('�U���ˮ֩w���ɮ׮�,�����o�Ϳ��~!!')+HttpErrStr);
+    Showmessage(_Msg('下載檢核定位檔案時,網路發生錯誤!!')+HttpErrStr);
     DataLoading(False,False);
     Exit;
   end;
-  ////�U���ˮ�XML/////
-//ShowMessage('GetOMRCheckSet���');
-  ////�U���n���]�w/////
+  ////下載檢核XML/////
+//ShowMessage('GetOMRCheckSet後來');
+  ////下載登打設定/////
   IF not GetKeyinSet Then
   begin
-    Showmessage(_Msg('�U���n���w���ɮ׮�,�����o�Ϳ��~!!')+HttpErrStr);
+    Showmessage(_Msg('下載登打定位檔案時,網路發生錯誤!!')+HttpErrStr);
     DataLoading(False,False);
     Exit;
   end;
-  ////�U���n���]�w/////
+  ////下載登打設定/////
 //ShowMessage('GetKeyinSet');
-  if ScanDenialHint <> '' then   //���]�w���ܦr��N�q�b�k�W��
+  if ScanDenialHint <> '' then   //有設定提示字串就秀在右上角
   begin
     DenialTimeLb.Visible := True;
     DenialTimeLb.Caption := Format(ScanDenialHint,[ScanDenialTime]);
   end;
 
-  R_W_Scanini('R'); //���˳]�w��ini
+  R_W_Scanini('R'); //掃瞄設定的ini
   ScanDuplexCB.Checked := ScanDuplex;
   if FMode <> 'SAMPLESCAN' then
     LoadImgFile;
@@ -12950,13 +13099,13 @@
   end;
   InitialOk := True;
 
-  {AttFileGB.Visible := True; //���[�q�l�ɵ�  //20120207���ɻ����b�o�[�q�l�ɥ�����
+  {AttFileGB.Visible := True; //附加電子檔窗  //20120207楊玉說不在這加電子檔先拿掉
   Splitter2.Visible := True;
-  AttFileGB.Visible := False; //���[�q�l�ɵ�
+  AttFileGB.Visible := False; //附加電子檔窗
   Splitter2.Visible := False; }
 
   DataLoading(False,False);
-//ShowMessage('��l�ܰ��槹��');
+//ShowMessage('初始話執行完成');
 end;
 
 procedure TCB_IMGPSScanX.Timer2Timer(Sender: TObject);
@@ -12973,7 +13122,7 @@
   CaseID : String;
   i,n,v: Integer;
   ZipFileList : TStringlist;
-  CaseTrans : Integer; //-1:���� 0:�i 1:����
+  CaseTrans : Integer; //-1:失敗 0:可 1:不行
   SuccessCount,ReCasecount,CheckErrCount : Integer;
   TransMsg : String;
   AreaStr : String;
@@ -12982,7 +13131,7 @@
 begin
   IF not InitialOk Then
   begin
-    Showmessage(_msg('��T�|���U������,�еy�ԩέ��s�i�J'));
+    Showmessage(_msg('資訊尚未下載完成,請稍候或重新進入'));
     Exit;
   end;
   ClearView(1);
@@ -12991,14 +13140,14 @@
   ClearCaseIndex;
   RejectCase := False;
 
-  if not CheckCaseID_OK then  //�ˬd�O�_�����t�����ץ�
+  if not CheckCaseID_OK then  //檢查是否有未配號的案件
   begin
-    Showmessage(_Msg('�|�����t���ץ�,�L�k�W��'));
+    Showmessage(_Msg('尚有未配號案件,無法上傳'));
     Exit;
   end;
   if NewTreeNode.Count = 0  then
   begin
-    Showmessage(_Msg('�L�v���ݶǰe'));
+    Showmessage(_Msg('無影像需傳送'));
     Exit;
   end;
 
@@ -13007,31 +13156,30 @@
   CheckErrCount := 0;
   if (FMode = 'NSCAN') and (not CheckScanDenialTime) then
   begin
-    if Messagedlg(Format(_Msg('�v�W�L����ɶ�(%s),�w�w�@�~�鬰�U����~��,�O�_�~��W��??'),[ScanDenialTime]),mtConfirmation,[mbyes,mbcancel],0)=mrcancel then Exit;
+    if Messagedlg(Format(_Msg('己超過收件時間(%s),預定作業日為下個營業日,是否繼續上傳??'),[ScanDenialTime]),mtConfirmation,[mbyes,mbcancel],0)=mrcancel then Exit;
   end;
 
-  ShowText := _Msg('��ƤW�Ǥ�,�еy��');
+  ShowText := _Msg('資料上傳中,請稍候');
   DataLoading(True,True);
 
   For i := 0 to NewTreeNode.Count -1 do
   begin
     v := posend('-',NewTreenode.Item[i].Text);
     CaseID := Copy(NewTreenode.Item[i].Text,1,v-1);
-    ShowText := CaseID+_Msg('��ƤW�Ǥ�,�еy��');
+    ShowText := CaseID+_Msg('資料上傳中,請稍候');
     DataLoading(True,True);
-    CreateIn_WH(CaseID);    //���ͤJ�w����r�� In_Wh.dat
-    Case2upload(CaseID);   //���ͭ�v�����c
-
+    CreateIn_WH(CaseID);    //產生入庫文件文字檔 In_Wh.dat
+    Case2upload(CaseID);   //產生原影像結構
     TransPath := ImageSavePath+CaseID+'\Upload\';
 
-    {if FMode = 'ESCAN' then    //20140320 yuu���������ˬd
+    {if FMode = 'ESCAN' then    //20140320 yuu說拿掉此檢查
     begin
       S := TStringlist.Create;
       try
         S.LoadFromFile(TransPath + 'Context.dat');
         if S.Count = 0 then
         begin
-          Showmessage(_Msg('�L�v���ɵL�k�ǰe'));
+          Showmessage(_Msg('無影像檔無法傳送'));
           DataLoading(False,False);
           LoadImgFile;
           Exit;
@@ -13041,44 +13189,48 @@
       end;
     end;}
 
+    //*******DOC必要文件檢核應該寫在這邊 START 20170222 ************
+    //DocDir.dat 會含有DOC列表  所以上傳前要給檢查  有沒有少必要的DOC
+    //並檢查 DOC 中 有沒有影像
+
+    //*******DOC必要文件檢核應該寫在這邊 END************
     if (FMode = 'NSCAN') then
     begin
-      /////�T�ݬO�_�i�W��/////
+      /////訊問是否可上傳/////
       CaseTrans := CaseAsk(CaseID);
-      /////�T�ݬO�_�i�W��////
+      /////訊問是否可上傳////
     end
-    Else  ///���O�s��B������B���ʥ󪺤��d
+    Else  ///不是新件、重掃件、異動件的不查
     begin
       CaseTrans := 0;
     end;
-    if CaseTrans = -1 then  //����
+    if CaseTrans = -1 then  //失敗
     begin
-      Showmessage(_Msg('�߰ݮץ�i�_�ǰe��,�����o�Ϳ��~!!')+HttpErrStr);
+      Showmessage(_Msg('詢問案件可否傳送時,網路發生錯誤!!')+HttpErrStr);
       DataLoading(False,False);
       LoadImgFile;
       Exit;
     end;
     if CaseTrans = 1 then
     begin
-      ////���ƳB�z/////
+      ////重複處理/////
       Inc(ReCasecount);
-      ////���ƳB�z/////
+      ////重複處理/////
       Continue;
     end
-    Else if CaseTrans = 0 then   //�i�H�ǰe
+    Else if CaseTrans = 0 then   //可以傳送
     begin
-      ///////�ˮ�//////  20100927 User�אּ�h�ܥ~����  ///20101019 User�S��^�W�ǭn��
-      //if FMode = 'NSCAN' then  //20101019�令Ū�]�w���ǼҦ��n�������ˮ�
+      ///////檢核//////  20100927 User改為搬至外面做  ///20101019 User又改回上傳要做
+      //if FMode = 'NSCAN' then  //20101019改成讀設定那些模式要做那些檢核
       //begin
-
-       ///�̤Q�r�w���I�Y��////
-       CaseReSize(CaseID);   //�ҥH�v���A���@���Y��
-       ////�̤Q�r�w���I�Y��///////   }
+       ///依十字定位點縮放////
+       CaseReSize(CaseID);   //所以影像再做一次縮放
+       ////依十字定位點縮放///////   }
         if (FMode <> 'FSCAN') then
         begin
-          if (NewTreenode.Item[i].ImageIndex <> 7) and (NewTreenode.Item[i].ImageIndex <> 5) then  //�ˮ֧��������A�ˮ�
+          if (NewTreenode.Item[i].ImageIndex <> 7) and (NewTreenode.Item[i].ImageIndex <> 5) then  //檢核完成的不再檢核
           begin
-            ShowText := CaseID+_Msg('�ˮ֤�,�еy��');
+            ShowText := CaseID+_Msg('檢核中,請稍候');
             DataLoading(True,True);
             If not OMRCheckCase(CaseID) then
             begin
@@ -13093,10 +13245,11 @@
           end;
         end;
       //end;
-      ///////�ˮ�//////
-      ShowText := CaseID+_Msg('��ƤW�Ǥ�,�еy��');
+      ///////檢核//////
+      ShowText := CaseID+_Msg('資料上傳中,請稍候');
       DataLoading(True,True);
-      If Not TransCaseID(TransPath,CaseID,True) Then  //�ǰe�ץ�
+//ShowMessage('NNNNN');
+      If Not TransCaseID(TransPath,CaseID,True) Then  //傳送案件
       begin
         DataLoading(False,False);
         LoadImgFile;
@@ -13106,13 +13259,13 @@
     end;
   end;
   DataLoading(False,False);
-  TransMsg := Format(_Msg('���\��%d��'),[SuccessCount]);
+  TransMsg := Format(_Msg('成功件%d件'),[SuccessCount]);
   if ReCasecount > 0 then
-    TransMsg := TransMsg + #13#10 + Format(_Msg('�L�k�W�ǥ�%d��'),[ReCasecount]);
+    TransMsg := TransMsg + #13#10 + Format(_Msg('無法上傳件%d件'),[ReCasecount]);
   if CheckErrCount > 0 then
-    TransMsg := TransMsg + #13#10 + Format(_Msg('�ˮ֥��ѥ�%d��'),[CheckErrCount]);
+    TransMsg := TransMsg + #13#10 + Format(_Msg('檢核失敗件%d件'),[CheckErrCount]);
 
-  Showmessage(_Msg('�ǰe����')+#13#10+TransMsg);
+  Showmessage(_Msg('傳送完成')+#13#10+TransMsg);
 
   LoadImgFile;
   if (FMode = 'ESCAN') and (SuccessCount = 1) then
@@ -13145,21 +13298,21 @@
   NowShowFileList.Clear;
   StatusBar1.Panels[2].Text := '';
   ClearCaseIndex;
-  PageLv.Items.Clear;  //���ƲM��
+  PageLv.Items.Clear;  //頁數清單
   //Panel18.Enabled:= False;
   UseOldCaseLb.Visible := False;
-  PM107.Visible := False; //�Ƶ��\��
-  CaseHelpBtn.Visible := False; //�ˮ֥��ѭ�]�s
+  PM107.Visible := False; //備註功能
+  CaseHelpBtn.Visible := False; //檢核失敗原因鈕
   Panel5.Visible := True;
   ContextList.Clear;
   SortMode := false;
   ISB1.ZoomMode := zmFullPage;
   IF TreeView1.Selected.Parent <> nil Then
   begin
-    if TreeView1.Selected.Parent = NewTreenode then  //�I�b�ץ�W
+    if TreeView1.Selected.Parent = NewTreenode then  //點在案件上
     begin
       //Panel18.Enabled := True;
-      PM107.Visible := True; //�Ƶ��\��
+      PM107.Visible := True; //備註功能
       MyTreeNode1 := TreeView1.Selected;
       MyTreeNode2 := nil;
       MyTreeNode3 := nil;
@@ -13200,7 +13353,7 @@
         ScrollBar1.Max := page;
       MyTreeNode1.Expand(True);
     end
-    Else If TreeView1.Selected.Parent.Parent  = NewTreenode Then    //�I�b���W
+    Else If TreeView1.Selected.Parent.Parent  = NewTreenode Then    //點在文件上
     begin
 
       MyTreeNode1 := TreeView1.Selected.Parent;
@@ -13222,9 +13375,9 @@
       DisplayPath := ImageSavePath+NowCaseNo+'\';
 
       if GetUseCase('F',DisplayPath,NowDocDir) <> '' then
-        StatusBar1.Panels[2].Text := Format('�q%s�ޥ�',[GetUseCase('F',DisplayPath,NowDocDir)]);
+        StatusBar1.Panels[2].Text := Format('從%s引用',[GetUseCase('F',DisplayPath,NowDocDir)]);
       if GetUseCase('T',DisplayPath,NowDocDir) <> '' then
-        StatusBar1.Panels[2].Text := Format('�Q%s�ޥ�',[GetUseCase('T',DisplayPath,NowDocDir)]);
+        StatusBar1.Panels[2].Text := Format('被%s引用',[GetUseCase('T',DisplayPath,NowDocDir)]);
       if FLoanDoc_Enable = 'Y' then
       begin
         AddCredit1RG.Enabled := True;
@@ -13254,12 +13407,12 @@
         Cust_DocNoList.LoadFromFile(DisplayPath+'CustomDocNo.dat');
        MyTreeNode1.Expand(True);
     end
-    Else If (NewTreenode <> nil) and (TreeView1.Selected.Parent.Parent.Parent  = NewTreenode) Then //�I�b���W
+    Else If (NewTreenode <> nil) and (TreeView1.Selected.Parent.Parent.Parent  = NewTreenode) Then //點在表單上
     begin
-      //NoteBtn.Visible := True; //�Ƶ��\��
+      //NoteBtn.Visible := True; //備註功能
       //Panel18.Enabled := True;
       ClearView(1);
-      PM107.Visible := True; //�Ƶ��\��
+      PM107.Visible := True; //備註功能
       MyTreeNode1 := TreeView1.Selected.Parent.Parent;
       MyTreeNode2 := TreeView1.Selected.Parent;
       MyTreeNode3 := TreeView1.Selected;
@@ -13289,7 +13442,7 @@
         NowFormName := Copy(MyTreeNode3.Text,v+1,v1-v-1);
         page := strtoint(Copy(MyTreeNode3.Text,v2+1,ln-v2-1));
       end
-      Else  //�I�b���󪺭���
+      Else  //點在附件的頁數
       begin
         NowFormCode := '';
         page := 1;
@@ -13298,9 +13451,9 @@
       DisplayPath := ImageSavePath+NowCaseNo+'\';
 
       if GetUseCase('F',DisplayPath,NowDocDir) <> '' then
-        StatusBar1.Panels[2].Text := Format('�q%s�ޥ�',[GetUseCase('F',DisplayPath,NowDocDir)]);
+        StatusBar1.Panels[2].Text := Format('從%s引用',[GetUseCase('F',DisplayPath,NowDocDir)]);
       if GetUseCase('T',DisplayPath,NowDocDir) <> '' then
-        StatusBar1.Panels[2].Text := Format('�Q%s�ޥ�',[GetUseCase('T',DisplayPath,NowDocDir)]);
+        StatusBar1.Panels[2].Text := Format('被%s引用',[GetUseCase('T',DisplayPath,NowDocDir)]);
 
       if FLoanDoc_Enable = 'Y' then
       begin
@@ -13329,7 +13482,7 @@
     end;
      MyTreeNode1.Expand(True);
   end
-  Else     //�I�bNewTreenode or MyTreenode1 �W
+  Else     //點在NewTreenode or MyTreenode1 上
   begin
     ClearView(1);
     MyTreeNode1 := nil;
@@ -13380,7 +13533,7 @@
     NewDocNo := Copy(iTreeNode2.Text,v+1,v1-v-1);
     NewPath := ImagePath+NewCaseNo+'\';
     OldFileName := ExtractFileName(DisplayISB.FileName);
-    if Copy(NewDocNo,1,5) = 'ZZZZZ' then  //�ۭq���
+    if Copy(NewDocNo,1,5) = 'ZZZZZ' then  //自訂文件
     begin
       NewFileName := Add_Zoo(FileName2ScanPage(OldFileName),3)+'_'+NewDocNo+'0000000'+ExtractFileExt(OldFileName);
       NewFormCode := NewDocNo+'0000000';
@@ -13415,7 +13568,7 @@
       NewFormName := Copy(iTreeNode3.Text,1,v1-1);
     end;
     NewPath := ImagePath+NewCaseNo+'\'+NewDocDir+'\';
-    if NewPath = DisplayPath Then  //�P�ץ�
+    if NewPath = DisplayPath Then  //同案件
     begin
       if NewFormCode <> '' then
         //NewFileName := Copy(OldFileName,1,3)+'_'+NewFormCode+ExtractFileExt(OldFileName)
@@ -13424,7 +13577,7 @@
         //NewFileName := Copy(OldFileName,1,3)+ExtractFileExt(OldFileName)
         NewFileName := Add_Zoo(GetDocDir_Page(NewCaseNo,NewDocDir),3)+ExtractFileExt(OldFileName);
     end
-    else   //���P�ץ�
+    else   //不同案件
     begin
       if NewFormCode <> '' then
         //NewFileName := Copy(OldFileName,1,3)+'_'+NewFormCode+ExtractFileExt(OldFileName)
@@ -13445,7 +13598,7 @@
       //NewFileName := Copy(OldFileName,1,3)+ExtractFileExt(OldFileName)
       NewFileName := Add_Zoo(GetDocDir_Page(NewCaseNo,NewDocDir)+1,3)+ExtractFileExt(OldFileName);
 
-    if NewCaseNo = NowCaseNo then  //�P�ץ󤣧ﶶ��
+    if NewCaseNo = NowCaseNo then  //同案件不改順序
     begin
       CopyFile(PWideChar(OldFileName),PwideChar(NewPath+NewFileName),False);
       SetContextList('A',-1,NewCaseNo,NewDocDir,NewFileName);
@@ -13462,17 +13615,17 @@
       ContextList.LoadFromFile(DisplayPath+'Context.dat');
       if (ContextList.Count = 1) and ((FMode = 'NSCAN') or (FMode = 'ASCAN') or (FMode = 'DSCAN') or (FMode = 'SSCAN') or (FMode = 'MSCAN') or (FMode = 'RI_SCAN') or (FMode = 'ISCAN')) then
       begin
-        if Messagedlg(Format(_Msg('���ʫ�(%s)�ץ�L�v��,�N�R�����ץ�,�O�_�T�w����?'),[NowCaseno]),mtconfirmation,[mbyes,mbcancel],0) = mrCancel then Exit;
+        if Messagedlg(Format(_Msg('移動後(%s)案件無影像,將刪除此案件,是否確定移動?'),[NowCaseno]),mtconfirmation,[mbyes,mbcancel],0) = mrCancel then Exit;
       end;
       CopyFile(PWideChar(DisplayISB.FileName),PWideChar(NewPath+NewFileName),False);
       ContextList.LoadFromFile(NewPath+'Context.dat');
       ContextList.Add(NewFileName);
       ContextList.SaveToFile(NewPath+'Context.dat');
       //Showmessage('1');
-      iTreeNode2.Text := Format(_Msg('%s-%d��'),[NewCaseNo,GetCasePage(ImagePath,NewCaseNo)]);
+      iTreeNode2.Text := Format(_Msg('%s-%d頁'),[NewCaseNo,GetCasePage(ImagePath,NewCaseNo)]);
       //Showmessage('2');
       //DrawDocItem(iTreeNode1,FORM_INF_List,NewCaseNo);
-      //DrawDocItem1(MytreeNode1,Doc_Inf_List,NewCaseno);   20140820��
+      //DrawDocItem1(MytreeNode1,Doc_Inf_List,NewCaseno);   20140820改
       DrawDocItem2(MytreeNode1,NewCaseno);
       //Showmessage('3');
       ClearErrini(NewCaseNo,iTreeNode1);
@@ -13513,7 +13666,7 @@
     ReSortFileName(ExtractFilePath(OldFileName));
   end;
   DrawDocItem2(MytreeNode1,NowCaseno);
-  ClearErrini(NowCaseno,MyTreeNode1);  //�M���ˮְO��
+  ClearErrini(NowCaseno,MyTreeNode1);  //清掉檢核記錄
   if GoAtt then
   begin
     GotoAttach(AttLv);
@@ -13552,7 +13705,7 @@
     or((NewNode.Level <>2) and (NewNode.Level<>3))
     or((NewNode.Level =2) and ((ImgDocNo = Node2DocNo(NewNode))or(Node2DocNo(NewNode)='')or (copy(Node2DocNo(NewNode),1,5)<>'ZZZZZ')))
     or((NewNode.Level =3) and ((ImgFormCode=Node3FormID(NewNode)) or (ImgDocNo = Node3DocNo(NewNode)) or (Node3DocNo(NewNode)='')))
-    or(Pos(_Msg('�����U���'),Newnode.Text)>0)
+    or(Pos(_Msg('未註冊文件'),Newnode.Text)>0)
      Then
       Accept := False;}
 end;
@@ -13631,9 +13784,13 @@
 procedure TCB_IMGPSScanX.Set_language(const Value: WideString);
 begin
   FLanguage := lowercase(Value);
+  if FLanguage='zh-tw' then
+  begin
+    FLanguage:='zh_tw'
+  end;
   if FileExists(LngPath+'Language.lng') then
   begin
-    InitialLanguage(Self);  //���J�h��y��
+    InitialLanguage(Self);  //載入多國語言
   end;
 end;
 
@@ -13673,7 +13830,7 @@
 begin
   FUseProxy := UpperCase(Value);
   if FUseProxy = 'Y' then
-    UseProxy := True;  //�n���n��Proxy
+    UseProxy := True;  //要不要用Proxy
 
 end;
 
@@ -13832,6 +13989,106 @@
   FCustDocYN := UpperCase(Value);
 end;
 
+function TCB_IMGPSScanX.Get_casenolength: WideString;
+begin
+
+end;
+
+function TCB_IMGPSScanX.Get_filesizelimit: WideString;
+begin
+
+end;
+
+function TCB_IMGPSScanX.Get_imgdpi: WideString;
+begin
+
+end;
+
+function TCB_IMGPSScanX.Get_scancolor: WideString;
+begin
+
+end;
+
+procedure TCB_IMGPSScanX.Set_casenolength(const Value: WideString);
+begin
+  if Value ='' then
+  begin
+    FCaseNoLength := 0 ;
+    CaseIDLength := FCaseNoLength;
+  end
+  else
+  begin
+    FCaseNoLength := StrToInt(Value) ;
+    CaseIDLength := FCaseNoLength;
+  end;
+
+end;
+
+procedure TCB_IMGPSScanX.Set_filesizelimit(const Value: WideString);
+begin
+//ShowMessage(Value);
+  if Value ='' then
+  begin
+    FFileSizeLimit := 5*1024;
+  end
+  else
+  begin
+    FFileSizeLimit := StrToInt(Value);
+  end;
+
+end;
+
+procedure TCB_IMGPSScanX.Set_imgdpi(const Value: WideString);
+begin
+  if Value ='' then
+  begin
+    FImgDPI := 300;
+    ScanDpi := FImgDPI;
+  end
+  else
+  begin
+    FImgDPI := StrToInt(Value);
+    ScanDpi := FImgDPI;
+    Def_ScanDpi := FImgDPI;
+  end;
+
+end;
+
+procedure TCB_IMGPSScanX.Set_scancolor(const Value: WideString);
+begin
+  if value='' then
+  begin
+    FScanColor := 0;
+    ScanColor := ifBlackWhite;
+  end
+  else
+  begin
+    FScanColor := StrToInt(Value);
+    ScanColor := ifBlackWhite;
+  end;
+
+  if FScanColor = 1 then
+  begin
+    ScanColor := ifGray256 ;
+  end;
+
+  if FScanColor = 2 then
+  begin
+    ScanColor := ifTrueColor ;
+  end;
+
+end;
+
+function TCB_IMGPSScanX.Get_imgdelete: WideString;
+begin
+
+end;
+
+procedure TCB_IMGPSScanX.Set_imgdelete(const Value: WideString);
+begin
+
+end;
+
 initialization
   TActiveFormFactory.Create(
     ComServer,

--
Gitblit v1.8.0