From 8d5b6c3efaab21b205be0300bf679bac82eed523 Mon Sep 17 00:00:00 2001
From: doom4ster <doom4ster@gmail.com>
Date: 星期五, 22 十二月 2017 10:49:57 +0800
Subject: [PATCH] CB_IMGPSScan.cab ver2.0.1.61  修正放大鏡的問題

---
 CB_IMGPSScanImp.dfm |    2 
 CB_IMGPSScanImp.dcu |    0 
 CB_IMGPSScan.ocx    |    0 
 CB_IMGPSScan.dproj  |    4 
 CB_IMGPSScan.res    |    0 
 CB_IMGPSScanImp.pas |  184 +++++++++++++++++++++++++++++++++++++---------
 6 files changed, 152 insertions(+), 38 deletions(-)

diff --git a/CB_IMGPSScan.dproj b/CB_IMGPSScan.dproj
index 4e58c1d..fc60efe 100644
--- a/CB_IMGPSScan.dproj
+++ b/CB_IMGPSScan.dproj
@@ -95,7 +95,7 @@
 						<VersionInfo Name="MajorVer">2</VersionInfo>
 						<VersionInfo Name="MinorVer">0</VersionInfo>
 						<VersionInfo Name="Release">1</VersionInfo>
-						<VersionInfo Name="Build">60</VersionInfo>
+						<VersionInfo Name="Build">61</VersionInfo>
 						<VersionInfo Name="Debug">False</VersionInfo>
 						<VersionInfo Name="PreRelease">False</VersionInfo>
 						<VersionInfo Name="Special">False</VersionInfo>
@@ -107,7 +107,7 @@
 					<VersionInfoKeys>
 						<VersionInfoKeys Name="CompanyName"/>
 						<VersionInfoKeys Name="FileDescription"/>
-						<VersionInfoKeys Name="FileVersion">2.0.1.60</VersionInfoKeys>
+						<VersionInfoKeys Name="FileVersion">2.0.1.61</VersionInfoKeys>
 						<VersionInfoKeys Name="InternalName"/>
 						<VersionInfoKeys Name="LegalCopyright"/>
 						<VersionInfoKeys Name="LegalTrademarks"/>
diff --git a/CB_IMGPSScan.ocx b/CB_IMGPSScan.ocx
index 83bc18b..d9a1e72 100644
--- a/CB_IMGPSScan.ocx
+++ b/CB_IMGPSScan.ocx
Binary files differ
diff --git a/CB_IMGPSScan.res b/CB_IMGPSScan.res
index ff10cd6..dc510e5 100644
--- a/CB_IMGPSScan.res
+++ b/CB_IMGPSScan.res
Binary files differ
diff --git a/CB_IMGPSScanImp.dcu b/CB_IMGPSScanImp.dcu
index 538f36c..a06cf30 100644
--- a/CB_IMGPSScanImp.dcu
+++ b/CB_IMGPSScanImp.dcu
Binary files differ
diff --git a/CB_IMGPSScanImp.dfm b/CB_IMGPSScanImp.dfm
index 47ec0ed..2766b7b 100644
--- a/CB_IMGPSScanImp.dfm
+++ b/CB_IMGPSScanImp.dfm
@@ -1028,6 +1028,7 @@
           OnDragDrop = TreeView1DragDrop
           OnDragOver = TreeView1DragOver
           OnKeyUp = TreeView1KeyUp
+          OnMouseEnter = TreeView1MouseEnter
           OnMouseMove = TreeView1MouseMove
           OnMouseUp = TreeView1MouseUp
         end
@@ -5551,6 +5552,7 @@
               Height = 460
               Align = alClient
               TabOrder = 0
+              OnMouseEnter = ScrollBox1MouseEnter
             end
           end
         end
diff --git a/CB_IMGPSScanImp.pas b/CB_IMGPSScanImp.pas
index f30b15c..4cc7328 100644
--- a/CB_IMGPSScanImp.pas
+++ b/CB_IMGPSScanImp.pas
@@ -372,6 +372,8 @@
     procedure ImageScrollBox1NewGraphic(const Graphic: TDibGraphic);
     procedure SmoothCBClick(Sender: TObject);
     procedure N1Click(Sender: TObject);
+    procedure TreeView1MouseEnter(Sender: TObject);
+    procedure ScrollBox1MouseEnter(Sender: TObject);
   private
     { Private declarations }
     HotKeyId1,HotKeyId2,HotKeyId3,HotKeyId4 :Integer;
@@ -1026,32 +1028,89 @@
 end;
 
 procedure TCB_IMGPSScanX.WMMOUSEWHEEL(var message: TWMMouseWheel);
+var
+  I: Integer;
+  iISB : TImageScrollBox;
 begin
     inherited;
+    //lb1.Caption:=IntToStr(message.Keys);
+    if (message.WheelDelta = WHEEL_DELTA) Then
+    begin
 
-    if (message.WheelDelta = WHEEL_DELTA) Then begin
-     if Edit1.Focused then
-     begin
-       ScrollBox1.VertScrollBar.Increment := 50;
-       ScrollBox1.Perform(WM_VSCROLL, SB_LINEUP, 0);
-     end
-     else if DisplayISB.Focused then
-     begin
-       DisplayISB.VertScrollBar.Increment := 50;
-       DisplayISB.Perform(WM_VSCROLL, SB_LINEUP, 0);
-     end;
-     end else if (message.WheelDelta = -WHEEL_DELTA) then begin
-     if Edit1.Focused then
-     begin
-       ScrollBox1.VertScrollBar.Increment := 50;
-       ScrollBox1.Perform(WM_VSCROLL, SB_LINEDOWN, 0);
-     end
-     else if DisplayISB.Focused then
-     begin
-       DisplayISB.VertScrollBar.Increment := 50;
-       DisplayISB.Perform(WM_VSCROLL, SB_LINEDOWN, 0);
-     end;
+      if ScrollBox1.Focused then
+      begin
+        ScrollBox1.VertScrollBar.Increment := 50;
+        ScrollBox1.Perform(WM_VSCROLL,SB_Lineup,0);
+      end;
+      if DisplayISB <> nil then
+      begin
+        if (DisplayISB.Focused) and (message.Keys=0) then
+        begin
+           DisplayISB.VertScrollBar.Increment := 50;
+           DisplayISB.Perform(WM_VSCROLL,SB_Lineup,0);
+        end;
+
+        if (DisplayISB.Focused) and (message.Keys=50) then
+        begin
+          DisplayISB.ZoomMode := zmPercent;
+          if DisplayISB.ZoomPercent < 90 then
+            DisplayISB.ZoomPercent := DisplayISB.ZoomPercent+10;
+        end;
+
+      end;
+      i:=0;
+      while FindComponent(ISBName+inttostr(i)) <> nil do
+      begin
+        iISB := TImageScrollBox(FindComponent(ISBName+inttostr(i)));
+        if iISB.Focused then
+        begin
+          ScrollBox1.VertScrollBar.Increment := 50;
+          ScrollBox1.Perform(WM_VSCROLL,SB_Lineup,0);
+        end;
+        inc(i);
+      end;
+
+    end
+    else if (message.WheelDelta = -WHEEL_DELTA) then
+    begin
+
+      if ScrollBox1.Focused then
+      begin
+        ScrollBox1.VertScrollBar.Increment := 50;
+        ScrollBox1.Perform(WM_VSCROLL, SB_LINEDOWN, 0);
+      end;
+      if DisplayISB <> nil then
+      begin
+        if (DisplayISB.Focused) and (message.Keys=0) then
+        begin
+           DisplayISB.VertScrollBar.Increment := 50;
+           DisplayISB.Perform(WM_VSCROLL,SB_LINEDOWN,0);
+        end;
+        if (DisplayISB.Focused) and (message.Keys=50) then
+        begin
+          DisplayISB.ZoomMode := zmPercent;
+          if DisplayISB.ZoomPercent > 10 then
+            DisplayISB.ZoomPercent := DisplayISB.ZoomPercent-10;
+        end;
+
+
+      end;
+
+      i:=0;
+      while FindComponent(ISBName+inttostr(i)) <> nil do
+      begin
+        iISB := TImageScrollBox(FindComponent(ISBName+inttostr(i)));
+        if iISB.Focused then
+        begin
+          ScrollBox1.VertScrollBar.Increment := 50;
+          ScrollBox1.Perform(WM_VSCROLL,SB_Lineup,0);
+        end;
+        inc(i);
+      end;
+
     end;
+
+
 end;
 
 procedure TCB_IMGPSScanX.WNoteBtnClick(Sender: TObject);
@@ -1306,7 +1365,7 @@
 
 procedure TCB_IMGPSScanX.ISB1Enter(Sender: TObject);
 begin
-  //ISB1.SetFocus;
+  ISB1.SetFocus;
 end;
 
 procedure TCB_IMGPSScanX.ISB1ImageMouseDown(Sender: TObject; Button: TMouseButton;
@@ -1315,7 +1374,8 @@
   p : Integer;
 begin
   DisplayISB := TImageScrollBox(Sender);
-  DisplayISB.SetFocus;
+  if NowClick<>0 then
+    DisplayISB.SetFocus;
   Shape1.Left := TPanel(TImageScrollBox(Sender).Parent).Left - Seg;
   Shape1.Top := TPanel(TImageScrollBox(Sender).Parent).Top - Seg;
   P := strtoint(copy(DisplayISB.Name,4,1)) + ScrollBar1.Position-2;
@@ -1350,17 +1410,25 @@
 begin
    //Edit1.SetFocus;
   //TImageScrollBox(Sender).SetFocus;
+
   if TImageScrollBox(Sender).FileName = '' then
-  begin
-//ShowMessage('AAA');
-Label3.Caption:='FileName='+TImageScrollBox(Sender).FileName+'  time='+FormatDateTime('yyyy/mm/dd HH:MM:SS', now);
     TImageScrollBox(Sender).MouseMode := mmUser
-  end
   Else
-  begin
-Label3.Caption:='FileName='+TImageScrollBox(Sender).FileName;
     ViewMouseMode(NowClick);
-  end;
+
+  ISB1.AlwaysShowAnnotations := False;
+
+//  if TImageScrollBox(Sender).FileName = '' then
+//  begin
+////ShowMessage('AAA');
+//Label3.Caption:='FileName='+TImageScrollBox(Sender).FileName+'  time='+FormatDateTime('yyyy/mm/dd HH:MM:SS', now);
+//    TImageScrollBox(Sender).MouseMode := mmUser
+//  end
+//  Else
+//  begin
+//Label3.Caption:='FileName='+TImageScrollBox(Sender).FileName;
+//    ViewMouseMode(NowClick);
+//  end;
 end;
 
 procedure TCB_IMGPSScanX.ISB1ImageMouseUp(Sender: TObject; Button: TMouseButton;
@@ -3160,7 +3228,7 @@
         end;
         ShowText := _Msg('歸類中,請稍侯');
         DataLoading(True,True);
-
+//ShowMessage('NowDocDir='+NowDocDir);
         FormIDReplace(NowCaseNo,NowDocDir,NowFormCode,NewFormID);
 
       end;
@@ -3880,6 +3948,11 @@
     view_image_FormCode(DisplayPath,NowFormCode,ScrollBar1.Position,1);
   end;
 
+end;
+
+procedure TCB_IMGPSScanX.ScrollBox1MouseEnter(Sender: TObject);
+begin
+ScrollBox1.SetFocus;
 end;
 
 procedure TCB_IMGPSScanX.SelectScanBtnClick(Sender: TObject);
@@ -5875,13 +5948,19 @@
 Function TCB_IMGPSScanX.CheckCaseDocNoPage(CaseID,DocNo,Version:String;Pages:Integer):Integer; //取案件裡的文件_版本頁數
 var
   i,n,Count : integer;
-  S : TStringlist;
+  S, S2 : TStringlist;
   FormCode,iPage : String;
+  docInt,tempInt:integer;
+  v,v2:integer;
 begin
   Count := 0;
+  docInt:=0;
+  tempInt:=0;
   S := TStringlist.Create;
+  S2 := TStringlist.Create;
   try
     S.LoadFromFile(ImageSavePath+CaseID+'\upload\Context.dat');
+    S2.LoadFromFile(ImageSavePath+CaseID+'\upload\DocDir.dat'); //2017 1220 改成只承認第一份的
     for I := 1 to pages do //從0到pages-1  改成 1到pages 20170316 這樣可以修改檢核的頁數問題
     begin
       iPage := Add_Zoo(i,2);
@@ -5895,6 +5974,23 @@
             Continue;
           end;
         end;
+        if Length(S2.Strings[n])>8 then //2017 1220 改成只承認第一份的
+        begin
+          v:=Pos('(',S2.Strings[n]);
+          v2:=Pos(')',S2.Strings[n]);
+          tempInt:=StrToInt(Copy(S2.Strings[n],v+1,v2-v-1));
+
+          if docInt=0 then
+          begin
+            docInt:=tempInt;
+          end;
+
+          if docInt<>tempInt then
+          begin
+            Break
+          end;
+        end;
+
         FormCode := FileName2FormCode(S.Strings[n]);
 //Showmessage('1:'+version+','+FormCode2Version(FormCode)+','+DocNo+','+FormCode2DocNo(FormCode)+','+iPage+','+FormCode2Page(FormCode));
 LogFile1.LogToFile(logTimeString+'CheckCaseDocNoPage caseno='+CaseID+','+version+','+FormCode2Version(FormCode)+','+DocNo+','+FormCode2DocNo(FormCode)+','+iPage+','+FormCode2Page(FormCode));
@@ -5910,6 +6006,7 @@
     end;
   finally
   S.Free;
+  S2.free;
   end;
   Result := Count;
 end;
@@ -7235,7 +7332,16 @@
     NewDocNo := FormCode2DocNo(NewFormID);
     NewDocDir := FindLastestDocDir(CaseID,NewDocNo);
     if NewDocDir = '' then
-      NewDocDir := NewDocNo;
+    begin
+      if DocNoNeedDiv(NewDocNo) then
+      begin
+        NewDocDir:=DocNo2DocNoDir(ImageSavePath + NowCaseno+'\',NewDocNo);
+      end
+      else
+      begin
+        NewDocDir := NewDocNo;
+      end;
+    end;
 //ShowMessage('NewDocDir='+NewDocDir);
     if DocNoNeedDiv(NewDocNo) and (FormCode2Page(NewFormID)='01') then
     begin
@@ -11501,6 +11607,7 @@
               MainFormPage := GetDataDocNoPage(MainDocNo,MainVersion); //資料庫記錄主文件頁數
               CaseFormPage := CheckCaseDocNoPage(CaseID,MainDocNo,MainVersion,MainFormPage); //案件主文件的頁數
 LogFile1.LogToFile(logTimeString+CaseID+',MainDocNo='+MainDocNo+',MainVersion='+MainVersion+',MainFormPage='+IntToStr(MainFormPage)+',CaseFormPage='+IntToStr(CaseFormPage));
+              //CheckFirstDocNoPage
               IF (MainFormPage > 0) and (MainFormPage <> CaseFormPage) then
               begin
                 ErrStr:=MainDocNo+Format(OMRErrInfo[1].Info,[Inttostr(MainFormPage),Inttostr(CaseFormPage)]); //主要文件需有XX頁僅附XX頁
@@ -12853,7 +12960,7 @@
 Procedure TCB_IMGPSScanX.ISBMouseMove(Sender: TObject; Shift: TShiftState;
   X, Y: Integer);
 begin
-  Edit1.SetFocus;
+  //Edit1.SetFocus;
   if Draging then
   begin
     if not (TShape(FindComponent('SP'+Copy(TImageScrollBox(Sender).Name,length(ISBName)+1,length(TImageScrollBox(Sender).Name)-length(ISBName)))) = nil) then
@@ -15069,10 +15176,15 @@
 
 end;
 
+procedure TCB_IMGPSScanX.TreeView1MouseEnter(Sender: TObject);
+begin
+TreeView1.SetFocus;
+end;
+
 procedure TCB_IMGPSScanX.TreeView1MouseMove(Sender: TObject; Shift: TShiftState;
   X, Y: Integer);
 begin
-  TreeView1.SetFocus;
+  //TreeView1.SetFocus;
   {UnRegisterHotKey(Handle, HotKeyId1);
   UnRegisterHotKey(Handle, HotKeyId2); }
 end;

--
Gitblit v1.8.0