From 524eea3312ebc07fd6e1dc94594d33c6a69d5ef5 Mon Sep 17 00:00:00 2001
From: curtis <curtis@i-mps.com>
Date: 星期二, 31 三月 2026 09:32:51 +0800
Subject: [PATCH] fix: 型別更新 1) 新增 TShape, TMemo, TMenuItem, TImageScrollBox 2) 理清 Delphi 相依使用: IISUnit, MPSBarcode, IISImageProcess 3) 方法說明/Mermaid 生成
---
ErrList.pas | 210 ++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 185 insertions(+), 25 deletions(-)
diff --git a/ErrList.pas b/ErrList.pas
index 1c6a7e6..9e60021 100644
--- a/ErrList.pas
+++ b/ErrList.pas
@@ -5,7 +5,8 @@
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, Menus, StdCtrls, Buttons, ComCtrls, ExtCtrls,inifiles,
- iisUnit,iis_ImageProcess, EnImgScr,mpsBarco,BarcodesFinder;
+ iisUnit,iis_ImageProcess, EnImgScr,mpsBarco,BarcodesFinder, EnMisc, EnDiGrph,
+ LogFile;
type
TErrlistForm = class(TForm)
@@ -38,6 +39,8 @@
ImageScrollBox1: TImageScrollBox;
ImageScrollBox2: TImageScrollBox;
ImageScrollBox3: TImageScrollBox;
+ Button1: TButton;
+ LogFile1: TLogFile;
procedure ExitBtClick(Sender: TObject);
procedure ImmediateBtClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
@@ -60,6 +63,7 @@
procedure Timer1Timer(Sender: TObject);
procedure RejectBtClick(Sender: TObject);
procedure EnforceBtClick(Sender: TObject);
+ procedure Button1Click(Sender: TObject);
private
{ Private declarations }
Siteidx : Integer;
@@ -86,11 +90,24 @@
DownRPoint_Rela : Tpoint; //�k�U�誺�Q�r�I
//********�Q�r�w���I��T********
+ ISB_BW: TImageScrollBox;
+ {SP1:TShape;//20170630 �s�[
+ SP2:TShape;//20170630 �s�[
+ SP3:TShape;//20170630 �s�[
+ SP4:TShape;//20170630 �s�[
+ SP5:TShape;//20170630 �s�[
+ SP6:TShape;//20170630 �s�[
+ SP7:TShape;//20170630 �s�[
+ SP8:TShape;//20170630 �s�[ }
+ SP : TShape;
+
procedure WMHotKey(var Msg: TWMHotKey); message WM_HOTKEY;
Procedure ShowOMRErr(Idx:Integer); //�e���W�q�XOMR�ˮ֥���
Procedure ShowRelaOMRErr(Relaidx:Integer); //�e���W�q�X���YOMR�ˮ֥���
Procedure GetOMRErrini(Index:String); //���ˮ֥���ini
- Procedure InitialData; //��_����������A
+ Procedure InitialData;
+ procedure ImageScrollBox1NewGraphic(const Graphic: TDibGraphic);
+ function logTimeString: String; //��_����������A
public
{ Public declarations }
iniPath : String;
@@ -149,6 +166,14 @@
ModalResult := mrOK;
end;
+procedure TErrlistForm.Button1Click(Sender: TObject);
+begin
+ShowMessage('UpLPoint='+IntToStr(UpLPoint.X)+','+IntToStr(UpLPoint.Y)+#10#13+
+'UpRPoint='+IntToStr(UpRPoint.X)+','+IntToStr(UpRPoint.Y)+#10#13+
+'DownLPoint='+IntToStr(DownLPoint.X)+','+IntToStr(DownLPoint.Y)+#10#13+
+'DownRPoint='+IntToStr(DownRPoint.X)+','+IntToStr(DownRPoint.Y));
+end;
+
procedure TErrlistForm.DeleteBtClick(Sender: TObject);
var
ini : TiniFile;
@@ -159,27 +184,37 @@
S := TStringlist.Create;
S1 := TStringlist.Create;
ini := Tinifile.Create(iniPath+'Checkerr.ini');
+
try
if FileExists(iniPath+'RemoveMemo.dat') then
S.LoadFromFile(iniPath+'RemoveMemo.dat');
- ini.WriteBool(NowIndex,'Del',True);
- S.Add(ini.ReadString(NowIndex,'Reason',''));
- S.SaveToFile(iniPath+'RemoveMemo.dat');
- i := ErrListLV.ItemIndex;
- ErrListLV.Items.Delete(ErrListLV.ItemIndex);
- if ErrListLV.Items.Count = 0 then
+
+ Ingnore := ini.ReadBool(NowIndex,'Ingnore',False);
+ if True then
begin
- ImmediateBt.Enabled := True;
- S1.Add('Y');
- S1.SaveToFile(iniPath+'OMRCheckOk.dat');
+ ini.WriteBool(NowIndex,'Del',True);
+ S.Add(ini.ReadString(NowIndex,'Reason',''));
+ S.SaveToFile(iniPath+'RemoveMemo.dat');
+ i := ErrListLV.ItemIndex;
+ ErrListLV.Items.Delete(ErrListLV.ItemIndex);
+ if ErrListLV.Items.Count = 0 then
+ begin
+ ImmediateBt.Enabled := True;
+ S1.Add('Y');
+ S1.SaveToFile(iniPath+'OMRCheckOk.dat');
+ end
+ else
+ begin
+ if i <= ErrListLV.Items.Count -1 then
+ begin
+ ErrListLV.ItemIndex := i;
+ ErrListLVclick(nil);
+ end;
+ end;
end
else
begin
- if i <= ErrListLV.Items.Count -1 then
- begin
- ErrListLV.ItemIndex := i;
- ErrListLVclick(nil);
- end;
+ Showmessage(Format(_msg('%s�����i�������صL�k�j���e��'),['']));
end;
finally
@@ -218,7 +253,7 @@
ErrListLV.Items.Delete(i);
if ErrListLV.Items.Count = 0 then
begin
- //ImmediateBt.Enabled := True;
+ ImmediateBt.Enabled := True;
S1.Add('Y');
S1.SaveToFile(iniPath+'OMRCheckOk.dat');
end;
@@ -274,23 +309,77 @@
end;
procedure TErrlistForm.FormCreate(Sender: TObject);
+var
+ i : Integer;
begin
MyHotkeyid1 := GlobalAddAtom('MyHotkeyid1')- $C000;
RegisterHotKey(Handle, MyHotkeyid1,MOD_CONTROL,Ord('D'));
PostMessage(Handle,WM_ACTIVATE,WA_CLICKACTIVE,0);
SiteList := TStringlist.Create;
RelaSiteList := TStringlist.Create;
+ ISB_BW:=TImageScrollBox.Create(Self);
+ for i := 1 to 30 do
+ begin
+ Sp := TShape.Create(self);
+ Sp.Name := 'SP'+inttostr(i);
+ end;
+ for i := 1 to 30 do
+ begin
+ Sp := TShape.Create(self);
+ Sp.Name := 'SP_R'+inttostr(i);
+ end;
+ {SP1:= TShape.Create(self);
+ SP1.Name := 'SP1';
+ SP2:= TShape.Create(self);
+ SP2.Name := 'SP2';
+ SP3:= TShape.Create(self);
+ SP3.Name := 'SP3';
+ SP4:= TShape.Create(self);
+ SP4.Name := 'SP4';
+ SP5:= TShape.Create(self);
+ SP5.Name := 'SP5';
+ SP6:= TShape.Create(self);
+ SP6.Name := 'SP6';
+ SP7:= TShape.Create(self);
+ SP7.Name := 'SP7';
+ SP8:= TShape.Create(self);
+ SP8.Name := 'SP8'; }
end;
procedure TErrlistForm.FormDestroy(Sender: TObject);
+var
+ i : Integer;
begin
SiteList.Free;
RelaSiteList.Free;
+ ISB_BW.Free;
+ for i := 1 to 30 do
+ begin
+ TShape(FindComponent('SP'+inttostr(i))).Free;
+ end;
+ for i := 1 to 30 do
+ begin
+ TShape(FindComponent('SP_R'+inttostr(i))).Free;
+ end;
+ {SP1.Free;
+ SP2.Free;
+ SP3.Free;
+ SP4.Free;
+ SP5.Free;
+ SP6.Free;
+ SP7.Free;
+ SP8.Free;}
end;
procedure TErrlistForm.ImmediateBtClick(Sender: TObject);
begin
ModalResult := mrOK;
+ LogFile1.LogToFile(logTimeString+'�ߧY�e��');
+end;
+
+function TErrlistForm.logTimeString: String;
+begin
+Result:=FormatDateTime('yyyymmdd hh:mm:ss',now)+' ';
end;
procedure TErrlistForm.RelaNextBtClick(Sender: TObject);
@@ -316,6 +405,8 @@
end;
Procedure TErrlistForm.InitialData; //��_����������A
+var
+ i : Integer;
begin
SitePreBt.Enabled := False;
SiteNextBt.Enabled := False;
@@ -331,6 +422,14 @@
Siteidx := 1;
RelaSiteidx := 1;
DeleteBt.Enabled := False;
+ for i := 1 to 30 do
+ begin
+ TShape(FindComponent('SP'+inttostr(i))).Parent := nil;
+ end;
+ for i := 1 to 30 do
+ begin
+ TShape(FindComponent('SP_R'+inttostr(i))).Parent := nil;
+ end;
end;
Procedure TErrlistForm.GetOMRErrini(Index:String); //���ˮ֥���ini
@@ -339,6 +438,10 @@
FileName,Site : String;
RelaFileName,RelaSite : String;
Anchor,Anchor1 : String;
+
+
+ SizeStr : String;
+ NowW,NowH : Integer;
begin
ini := Tinifile.Create(iniPath+'Checkerr.ini');
try
@@ -379,11 +482,23 @@
if FileName <> '' then //���n��ܼv��
begin
- //if MpsViewX1.FileName <> FileName then
- //begin
- ImageScrollBox1.LoadFromFile(FileName,1);
- FindPoint(ImageScrollBox1.Graphic,UpLPoint,UpRPoint,DownLPoint,'');
- //end;
+ ImageScrollBox1.LoadFromFile(FileName,1);
+
+ //FindPoint(ImageScrollBox1.Graphic,UpLPoint,UpRPoint,DownLPoint,'NONE');
+
+ //======================
+ ImageScrollBox1.LoadFromFile(FileName,1);
+ ImageScrollBox1NewGraphic(ImageScrollBox1.Graphic);
+ FindPoint(ISB_BW.Graphic,UpLPoint,UpRPoint,DownLPoint,NowW,NowH,ANCHOR);
+ ImageResize(ImageScrollBox1.Graphic,ISB_BW.Graphic.Width,ISB_BW.Graphic.Height);
+ FindPoint(ISB_BW.Graphic,UpLPoint,UpRPoint,DownLPoint,NowW,NowH,ANCHOR);
+ //==========================
+
+{ShowMessage('UpLPoint='+IntToStr(UpLPoint.X)+','+IntToStr(UpLPoint.Y)+#10#13+
+'UpRPoint='+IntToStr(UpRPoint.X)+','+IntToStr(UpRPoint.Y)+#10#13+
+'DownLPoint='+IntToStr(DownLPoint.X)+','+IntToStr(DownLPoint.Y)+#10#13+
+'DownRPoint='+IntToStr(DownRPoint.X)+','+IntToStr(DownRPoint.Y)); }
+
ShowOMRErr(Siteidx);
end;
if (RelaFileName <> '') and FileExists(RelaFileName) then //�����Y�v��
@@ -391,7 +506,8 @@
//if MpsViewX2.FileName <> RelaFileName then
//begin
ImageScrollBox2.LoadFromFile(RelaFileName,1);
- FindPoint(ImageScrollBox2.Graphic,UpLPoint_Rela,UpRPoint_Rela,DownLPoint_Rela,'');
+ //FindPoint(ImageScrollBox2.Graphic,UpLPoint_Rela,UpRPoint_Rela,DownLPoint_Rela,'');
+ FindPoint(ImageScrollBox2.Graphic,UpLPoint,UpRPoint,DownLPoint,NowW,NowH,ANCHOR);
//GetFFPoint(MpsViewX2,RelaFileName); //��FreeForm���Q�r�I���
//end;
@@ -407,24 +523,68 @@
var
Site : String;
iRect : TRect;
+ SP:TShape;
begin
if Idx > SiteList.Count then Exit;
Site := SiteList.Strings[Idx-1];
+//ShowMessage('Site'+Site);
//Site := TranslationRect(Site,MpsViewX1.GetImageDpi,'VIEW');
iRect := CM_Str2Rect(Site,ImageScrollBox1.Graphic.XDotsPerInch,UpLPoint);
- ShowKeyinRect(ImageScrollBox1,iRect);
+//ShowMessage('Idx='+IntToStr(Idx));
+//ShowMessage(IntToStr(iRect.Left)+','+IntToStr(iRect.Top)+','+IntToStr(iRect.Right)+','+IntToStr(iRect.Bottom));
+ SP := TShape(FindComponent('SP'+inttostr(Idx))); //20170327 �b�j�餤�n�ϥΦh�վB�n
+
+ SP.Brush.Color :=$00FEFAAD;
+ SP.Parent := ImageScrollBox1;
+ SP.Pen.Style := psSolid;
+ SP.Pen.Color := $00FEFAAD;
+ SP.Pen.Width := 1;
+ SP.Pen.Mode := pmMask;
+ SP.Left := iRect.Left;
+ SP.Top := iRect.Top;
+ SP.Width := iRect.Right-iRect.Left;
+ SP.Height := iRect.Bottom-iRect.Top;
+ //ImageScrollBox1.Redraw(True);
+
+ //ShowKeyinRect(ImageScrollBox1,iRect);
+ SetKeyinRect_New(ImageScrollBox1,Site,'','',UpLPoint,UpRPoint,sp);
+end;
+
+procedure TErrlistForm.ImageScrollBox1NewGraphic(const Graphic: TDibGraphic);
+begin
+ IF ImageScrollBox1.Graphic.Empty Then Exit;
+ ISB_BW.Graphic.Assign(ImageScrollBox1.Graphic);
+ If ImageScrollBox1.Graphic.ImageFormat <> ifBlackWhite Then
+ begin
+ ConvertToBW(ISB_BW.Graphic);
+ end;
end;
Procedure TErrlistForm.ShowRelaOMRErr(RelaIdx:Integer); //�e���W�q�X���YOMR�ˮ֥���
var
Site : String;
iRect : TRect;
+ SP:TShape;
begin
if RelaIdx > RelaSiteList.Count then Exit;
+ //SP := TShape(FindComponent('SP'+inttostr(RelaIdx+1))); //20170327 �b�j�餤�n�ϥΦh�վB�n
+ SP := TShape(FindComponent('SP_R'+inttostr(RelaIdx))); //20240314 Hong �令�o��
+ SP.Brush.Color :=$00FEFAAD;
+ SP.Parent := ImageScrollBox2;
+ SP.Pen.Style := psSolid;
+ SP.Pen.Color := $00FEFAAD;
+ SP.Pen.Width := 1;
+ SP.Pen.Mode := pmMask;
+ SP.Left := iRect.Left;
+ SP.Top := iRect.Top;
+ SP.Width := iRect.Right-iRect.Left;
+ SP.Height := iRect.Bottom-iRect.Top;
+
Site := RelaSiteList.Strings[RelaIdx-1];
iRect := CM_Str2Rect(Site,ImageScrollBox1.Graphic.XDotsPerInch,UpLPoint_Rela);
- ShowKeyinRect(ImageScrollBox2,iRect);
+ //ShowKeyinRect(ImageScrollBox2,iRect);
+ SetKeyinRect_New(ImageScrollBox2,Site,'','',UpLPoint,UpRPoint,sp);
end;
procedure TErrlistForm.SiteNextBtClick(Sender: TObject);
--
Gitblit v1.8.0